我最近尝试建立到第二次订阅的服务连接,我让它处理第一次订阅罚款,并且已经工作了七个月,并且仍然在工作。但是,当我授予服务主体应用程序对新订阅的访问权限时,管道将失败,并说它无法查看资源组。这是在Terraform初始化步骤上。
我已经允许贡献者在订阅级别上访问服务主体,而且为了更好的措施,我还允许贡献者访问实际资源组中的服务主体。
这是我正在犯的错误:
Initializing the backend...
Successfully configured the backend "azurerm"! Terraform will automatically
use this backend unless the backend configuration changes.
╷
│ Error: Failed to get existing workspaces: Error retrieving keys for Storage Account "nsterraformstatestorage": storage.AccountsClient#ListKeys: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="ResourceGroupNotFound" Message="Resource group 'TerraformBackendForCICTesting' could not be found."
│
│
╵
##[error]Error: The process '/opt/hostedtoolcache/terraform/1.0.4/x64/terraform' failed with exit code 1
我过去一直跟随这个帖子来设置服务连接:https://sabirmohamed.com/how-to-create-a-service-connection-in-the-azure-devops/
我确实相信两个订阅都在同一个租户中。
我肯定缺少了什么,因为我确信一个服务主体可以跨多个订阅工作。
发布于 2022-01-09 15:30:23
如果在订阅范围级别(在链接之后完成)创建服务连接,则服务连接将绑定到创建时输入的订阅。
如果您创建一个管理组,该管理组包含两个订阅,并使用该管理组作为作用域创建服务连接,则该管理组应同时处理两个订阅。
就我个人而言,我不喜欢给服务主体和服务连接太广泛的访问,所以我通常创建至少一个每个订阅。
编辑(由于注释中格式错误)
如果任务需要服务连接,则可以在任务级别设置服务连接:
steps:
- task: AzureKeyVault@1
displayName: KeyVault
inputs:
azureSubscription: ${{ parameters.serviceConnectionName }}
KeyVaultName: ${{ parameters.keyVaultName }}
编辑2:
在Terraform任务中,服务连接设置如下:
environmentServiceNameAzureRM: 'YourServiceConnectionName'
https://stackoverflow.com/questions/70631245
复制相似问题