Почему не удается выполнить команду "az vm secret format" при подготовке SSL-сертификата для развертывания виртуальной машины Linux?
Я пытаюсь подготовить сертификат SSL для развертывания на виртуальной машине Linux, размещенной в Azure, следуя инструкциям, приведенным на странице:
HTTPS-доступ к виртуальной машине Ubuntu Azure
Первая строка:
$secret=$(az keyvault secret list-versions --vault-name myVaultName --name myCertName --query "[?attributes.enabled].id" --output tsv)
выполняется нормально, а $secret содержит ожидаемое значение. Однако, когда я выполняю вторую строку:
$vm_secret=$(az vm secret format --secret "$secret")
Я получаю ошибку:
unable to find vault 'myVaultName' in current subscription.
Я дважды проверил формат команды и параметры и не могу найти ничего плохого. Что происходит?
1 ответ
Странная вещь Раньше команда CLI работала нормально, но теперь ей нужно добавить параметр --keyvault
с именем хранилища ключей и -g
с именем группы ресурсов вот так:
$vm_secret=$(az vm secret format --secret "$secret" -g groupName --keyvault keyvaultName)
Или просто добавьте параметр --keyvault
с идентификатором хранилища ключей:
$vm_secret=$(az vm secret format --secret "$secret" --keyvault keyvault_resourceId)
Так что это может работать нормально, не давая ошибку.
Примечание: если вы используете старое хранилище ключей, созданное несколько месяцев назад, команда CLI, которая выдает ошибку, также будет работать в моем тесте. Так что это немного странно. И я обнаружил, что в свойствах по умолчанию есть что-то другое.
РЕДАКТИРОВАТЬ
Я думаю, что лучше запускать команду CLI в среде Linux, есть нечто иное, чем CLI rin в Windows и Linux, возможно возникновение ошибки. И скрипт в Linux будет выглядеть так:
az keyvault certificate create --vault-name keyvault_name --name cert_name --policy "$(az keyvault certificate get-default-policy)"
secret=$(az keyvault secret list-versions --vault-name keyvault_name --name cert_name --query "[?attributes.enabled].id" --output tsv)
vm_secret=$(az vm secret format --secrets "$secret" --resource-group group_name --keyvault keyvault_name)
az vm update -g charles -n azureUbuntu18 --set osProfile.secrets="$vm_secret"