azure - 是否可以在 YAML 管道中创建带有标签的 Azure 资源组?

标签 azure yaml devops azure-resource-manager

我们的订阅有一项政策,禁止任何人在不同时为其提供标签的情况下创建资源组。

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但简而言之,您需要:

如果您的 ARM 模板存储在公共(public)存储库中,这应该很简单,否则您需要以某种方式通过 https 访问它们。过去,我使用过 Azure 存储帐户并使用 SAS token 授予对文件的访问权限,但还有许多其他方法可以解决该问题。

关于azure - 是否可以在 YAML 管道中创建带有标签的 Azure 资源组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67923644/

相关文章:

azure - 获取 Azure Active Directory 的对象总数

php - 如何保护 symfony2 中除登录页面之外的整个页面?

amazon-web-services - 迭代模板中的 AWS cloudformation 资源数组

docker - .env文件通过DevOps CD管道部署时标记为不是对象

azure - 使用 Azure SQL 数据库为每个客户端创建数据库的推荐方法是什么?

azure - 是否可以将 Azure Kubernetes 中的共享 Azure 磁盘挂载到多个 POD/节点?

c - Azure物联网中心: HTTP Device-to-Cloud Messages without SDK?

regex - 如何正则表达式匹配包含 AWS 安全组 ID 的逗号分隔列表?

linux - 我如何知道我当前的 npm 项目链接到哪些其他 npm 项目?

azure - 在Azure中为kubernetes配置两个环境