【问题标题】:Terraform azure automation fails after the first deploymentTerraform azure 自动化在第一次部署后失败
【发布时间】:2021-12-23 22:38:00
【问题描述】:

我有一个愚蠢的问题。 我正在尝试使用 terraform 部署一个 azure web 应用程序。我的任务是构建代码并将其作为人工制品丢弃,这很好用。所以我转到发布过程如下

我的代码有一个后端配置,我在其中保存了我的terraform.tfstate 以便能够访问它我创建了一个azure resource manager 服务原则

现在这对我的所有阶段都非常有效。我能够创建资源组和 Web 应用程序,并且 terraform.tfstate 保存在 azure resource manager 下的容器中

但这是我的问题。如果我在本地更新我的代码并将其推送到 GitHub,则管道会构建工件和发布触发器,但在 plan 阶段它会失败并出现以下错误。

reading resource group: resources.GroupsClient#Get: Failure responding to request: StatusCode=403 -- Original Error: autorest/azure: Service returned an error. Status=403 Code="AuthorizationFailed" Message="The client 'XXXX' with object id 'XXX' does not have authorization to perform action 'Microsoft.Resources/subscriptions/resourcegroups/read' over scope '/subscriptions/XXXX/resourcegroups/rg-hri-stg-eur-configurations' or the scope is invalid. If access was recently granted, please refresh your credentials."[0m

我明白,一旦资源组存在,我无权对其执行任何操作,例如plan、apply 或Destroy。

我想知道如何为这些管道设置一个 azure 资源管理器,以便在创建此特定资源组后访问它?

非常感谢您为我提供的任何建议或帮助。

【问题讨论】:

  • 您好@NaydenVan,错误中为客户端分配了哪些角色?我猜客户需要订阅范围内的贡献者访问权限,这样每当创建新的资源组时,新创建的资源组的角色也会自动继承。

标签: azure terraform-provider-azure


【解决方案1】:

我发现了问题。说实话很傻。我的 ARM 资源针对的是一个特定的资源组(我在其中保留 terraform 状态的那个),因此在尝试更新资源时它不起作用。我将 ARM 资源的范围更改为订阅级别,现在一切正常。非常感谢你们的帮助

【讨论】:

    猜你喜欢
    • 2018-05-12
    • 2012-12-28
    • 2017-06-07
    • 2017-03-31
    • 2020-11-02
    • 2020-01-06
    • 2020-03-07
    • 1970-01-01
    相关资源
    最近更新 更多