【问题标题】:New-AzureRmKeyVault : 'vaultName' does not match expected patternNew-AzureRmKeyVault:“vaultName”与预期模式不匹配
【发布时间】:2022-03-23 08:11:08
【问题描述】:

我正在尝试按照本教程为我的应用程序设置 Azure Key Vault:https://blogs.technet.microsoft.com/kv/2015/06/02/azure-key-vault-step-by-step/

在教程的创建和配置密钥保管库部分中,在完成这两个步骤之后:

我无法执行此步骤:

它在我的 PowerShell 中显示错误消息:

New-AzureRmKeyVault:“vaultName”与预期模式“^[a-zA-Z0-9-]{3,24}$”不匹配。 在行:1 字符:1 + 新 AzureRmKeyVault -VaultName ProfileKeyVault -ResourceGro ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : CloseError: (:) [New-AzureRmKeyVault], ValidationException + FullyQualifiedErrorId : Microsoft.Azure.Commands.KeyVault.NewAzureKeyVault

【问题讨论】:

  • 您可能应该屏蔽您的订阅 ID
  • vaultName 可能已经在使用中,请尝试其他的
  • 在我的情况下,当我尝试使用“_”添加 KV 机密名称时收到此错误消息。示例:Set-AzKeyVaultSecret -VaultName "kvName" -Name "Cert_ToResource" -SecretValue $variable

标签: azure powershell azure-powershell azure-keyvault


【解决方案1】:

尝试将保管库名称放在引号中。

New-AzureRmKeyVault -VaultName 'Contoso03Vault' -ResourceGroupName 'Group14' -Location 'East US'

【讨论】:

    【解决方案2】:

    当我得到错误时

    'vaultName' 与预期模式不匹配

    我发现将 Powershell 与原始 Az CLI 命令一起使用,您必须使用双引号来创建 KeyVault。

    az keyvault create --name "vault-Name-01" --resource-group $resourceGroupName --location $location --sku Standard --enabled-for-disk-encryption true
    

    在 Powershell 脚本中,您传入用双引号括起来的变量

    [string]$vaultName = "vault-Name-01"
    az keyvault create --name $vaultName --resource-group $resourceGroupName --location $location -sku Standard --enabled-for-disk-encryption true
    

    然后,当您想设置一个值时,请删除双引号:

    az keyvault secret set --vault-name $vaultName.Replace("`"","") --name $_.name  --value  $_.value
    

    进一步调查发现问题适用于列出显示保险库秘密,我遇到了臭名昭著的错误:

    尝试连接到保管库的重试次数已超过上限。保管库可能不存在,或者您可能需要刷新 DNS 缓存并稍后重试。

    存在 KeyVault,因为我可以使用不带引号的 VaultName 列出保管库机密:

    $secretNames = az keyvault secret list --vault-name $sourceVaultName.Replace("`"","") -o json --query "[].name"  | ConvertFrom-Json
    

    但是,如果您在尝试显示秘密时不包含引用的 $sourceVaultName,则会收到 Max Retires 错误:

    $secrets = $secretNames | % {
        $secret = az keyvault secret show --name $_ --vault-name $sourceVaultName -o json | ConvertFrom-Json
        [PSCustomObject]@{
            name  = $_;
            value = $secret.value;
        }
    }
    

    如果这些调用中的任何一个超时并且结果为空白,请参阅此解决方案:https://stackoverflow.com/a/67472219/495455

    这几乎就像两个开发人员在编写代码并且有不同的意见......https://github.com/Azure/azure-cli/issues/13952

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-30
      相关资源
      最近更新 更多