我们的订阅有一项政策,禁止任何人在不同时为其提供标签的情况下创建资源组。
Failed to create the resource group. Error: "Resource 'my-new-resource-group' was disallowed by policy. Policy identifiers: '[{"policyAssignment":{"name":"Require a tag on resource groups" etc...
在 ARM 模板中,我可以在创建资源时指定标签。我似乎无法使用实际的资源组来做到这一点...
我正在使用的任务如下:
- task: AzureResourceManagerTemplateDeployment@3
displayName: Deploy ARM Template
inputs:
deploymentScope: 'Resource Group'
azureResourceManagerConnection: '<<SERVICE CONNECTION>>'
subscriptionId: '<<SUBSCRIPTIONID>>'
action: 'Create Or Update Resource Group'
resourceGroupName: "rg-$(resourcePrefix)-$(environmentShortName)"
location: 'North Europe'
templateLocation: 'Linked artifact'
csmFile: '$(Pipeline.Workspace)/drop-iac/webapi.json'
csmParametersFile: '$(Pipeline.Workspace)/drop-iac/webapi.parameters.json'
deploymentMode: 'Incremental'
有没有办法在此任务期间指定标签?搜索文档没有产生任何有用的信息
最佳答案
无法使用 AzureResourceManagerTemplateDeployment@3
任务设置标签,并将 deploymentScope
设置为 资源组
,如文档 here 所示。没有参数可以做到这一点。但是,如果您将 deploymentScope
更改为 Subscription
也是可能的,但这需要您将模板重构为订阅模板。这将允许您在模板内定义资源组及其标签,而不是依赖 AzureResourceManagerTemplateDeployment@3
任务来创建它。
有关于订阅模板的文档 here但简而言之,您需要:
- 将资源添加到您的模板中以定义 Resource Group
- 将模板中当前定义的资源移至 linked templates并将其替换为 Deployment部署这些链接模板的资源
如果您的 ARM 模板存储在公共(public)存储库中,这应该很简单,否则您需要以某种方式通过 https 访问它们。过去,我使用过 Azure 存储帐户并使用 SAS token 授予对文件的访问权限,但还有许多其他方法可以解决该问题。
关于azure - 是否可以在 YAML 管道中创建带有标签的 Azure 资源组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67923644/