我想覆盖 Arm 模板中对象或数组的参数。如何从任务将新值传递给模板?
我使用以下任务:
- task: AzureResourceManagerTemplateDeployment@3
displayName: "Create Container App"
inputs:
deploymentScope: 'Resource Group'
azureResourceManagerConnection: '$(serviceConnection)'
subscriptionId: '$(SubscriptionID)'
action: 'Create Or Update Resource Group'
resourceGroupName: '$(ResourceGroup)'
location: 'West Europe'
templateLocation: 'Linked artifact'
csmFile: '$(Pipeline.Workspace)/drop/armtemplates/container_deployment.json'
csmParametersFile: '$(Pipeline.Workspace)/drop/armtemplates/container_parameters.json'
deploymentMode: 'Incremental'
overrideParameters: '-SubscriptionId $(SubscriptionID) -containers $(ContainerAppName) -ResourceGroup $(ResourceGroup) -BuildID $($(Build.BuildId)) -RegistriesServer $(RegistriesServer) -RepositoryAppName $(RepositoryAppName) -ContainerAppEnvironment $(ContainerAppEnvironment) -UserIdentityName $(UserIdentityName)'
continueOnError: false
在上面的示例任务中,我不知道如何将新值传递给具有参数(作为对象)容器的parameter.json文件中的参数(容器->值->名称)(见下文)。我需要更改名称和图像值。我如何覆盖这些参数?我如何传递新值?
"containers": {
"value": [
{
"name": "$(ContainerAppName)",
"image": "$(containerAppImageName)",
"command": [],
"args": [],
"resources": {
"cpu": 0.5,
"memory": "1Gi"
}
}
]
}
我无法找到正确的解决方案。
我正在使用 AzureResourceManagerTemplateDeployment@3 作为部署任务。
关于如何传递 Azure 管道变量的帖子与我的问题不同。我需要知道如何在对象或数组中覆盖参数。我希望这很清楚。
请查看任务文档以了解以下 overrideParamters:
诀窍是您可以使用经典的 UI 任务来帮助找到正确的定义。
选择template.json和paramter.json,然后您可以点击
...
按钮来覆盖参数,它将弹出参数和它的默认值,您可以使用变量作为值。您可以通过单击按钮查看 yaml
View Yaml
,然后将 overrideParamters 复制到您的真实 yaml 中。