Итак, вот сценарий:
Я создал проект облачной службы (расширенная поддержка). Как инженеру Devops, мне нужно создать конвейер в Azure Devops для отправки пакета в Azure.
Я следовал официальному руководству Публикация облачных сервисов по публикации облачных сервисов. Итак, для задачи «Развертывание шаблона ARM: область действия группы ресурсов» я использую параметры переопределения следующим образом:
-servicename worker -packageSasUri https://mystorageaccount.blob.core.windows.net/mypackage/202405181456/service.cspkg?<sas-token> -configurationSasUri https://mystorageaccount.blob.core.windows.net/mypackage/202405181456/ServiceConfiguration.Cloud.cscfg?<sas-token> -location 'Australia Southeast' -certificateName AccelerusLightWorker -keyVaultName worker-vault -keyVaultResourceGroup rg-worker
Развертывание шаблона ARM только в формате YAML:
steps:
- task: AzureResourceManagerTemplateDeployment@3
displayName: 'ARM Template deployment: Resource Group scope'
inputs:
azureResourceManagerConnection: netsynergy
subscriptionId: 'id'
resourceGroupName: 'rg-worker'
location: 'location'
csmFile: 'build/bicep/worker.bicep'
overrideParameters: <above mentioned>
Я использую шаблон бицепса:
param location string
param servicename string
@secure()
param packageSasUri string
@secure()
param configurationSasUri string
param keyVaultName string
param certificateName string
param keyVaultResourceGroup string
# there are other resources as well
resource cloudService 'Microsoft.Compute/cloudServices@2020-10-01-preview' = {
name: '${servicename}-worker-${suffix}'
location: location
tags: {
DeployFromVisualStudio: 'true'
}
properties: {
osProfile: <secret>
packageUrl: packageSasUri
configurationUrl: configurationSasUri
upgradeMode: 'Auto'
}
}
Итак, при запуске конвейера я получаю следующую ошибку:
При переопределении параметра «» произошла ошибка из-за «Ошибка типа: невозможно прочитать свойства неопределенного типа (чтение «типа»)», убедитесь, что он соответствует нотации объектов JavaScript (JSON). Запускаем проверку шаблона. (узел: 6460) [DEP0005] Предупреждение об устаревании: Buffer() устарел из-за проблем с безопасностью и удобством использования. Вместо этого используйте методы Buffer.alloc(), Buffer.allocUnsafe() или Buffer.from(). Имя развертывания — Accelerus-20240519-032042-6d1e. (Используйте
node --trace-deprecation ..., чтобы указать, где было создано предупреждение) В вашем развертывании возникли ошибки. Код ошибки: Инвалиддеплойментпараметркэй.
Да, проблема была в расположении, спасибо. Понятно, что.
Привет @Сундар Сингх, спасибо за подтверждение. Приятно осознавать, что проблема решена. Чтобы помочь другим, у кого возникла аналогичная проблема, я обновил решение в своем ответе ниже.


Судя по сообщению об ошибке, похоже, есть некоторые проблемы с параметрами вашего шаблона Bicep. Чтобы убедиться в этом, попробуйте использовать Azure CLI для развертывания шаблона на локальном компьютере. Дополнительные сведения см. в разделе Как использовать шаблоны развертывания Azure Resource Manager (ARM) с Azure CLI.
az deployment group create --name ExampleDeployment --resource-group ExampleGroup --template-file <path-to-template> --parameters storageAccountType=Standard_GRS
Если возникла та же ошибка, проверьте свой шаблон.
Обновлять
Решение: переопределите местоположение с помощью -location australiasoutheast.
Да, я пробовал развертывание с помощью развертывания как из командной строки, так и из портала, и это работает. Проблема связана с параметром overrideParameters.
В качестве обходного пути используйте задачу AzureCLI@2 в своем конвейере для развертывания облачной службы Azure. У меня нет вашего полного шаблона, и я проверю его дальше, чтобы увидеть, смогу ли я воспроизвести ошибку.
Я не могу воспроизвести ошибку, используя предоставленный вами шаблон. В вашем overrideParameters вы переопределяете местоположение через -location 'Australia Southeast', что недопустимо. Попробуйте с -location australiasoutheast. Тестирую с overrideParameters: '-servicename zycloudservice -packageSasUri $(packagesasurl) -configurationSasUri $(configurationSasUrl) -location eastasia', работает нормально.
Я не уверен, что вы поделились полной информацией overrideParameters. Конвейер не сможет пройти проверку и запуститься, если вы используете -location 'Australia Southeast'. Вы увидите Encountered error(s) while parsing pipeline YAML, когда нажмете «Выполнить».
Привет @Сундар Сингх, каково последнее состояние проблемы после попытки с
-location australiasoutheast?