【发布时间】:2021-01-18 10:33:35
【问题描述】:
问题
我有一个 azure 管道 YAML 文件。它能够通过服务连接运行,该服务连接访问具有所有适当权限的服务主体等。
但我现在正在尝试清理代码;我们有多个服务主体在多个订阅和资源组上运行。他们需要创建存储帐户,这些帐户必须是唯一的。
所以我正在尝试创建一个存储帐户,该帐户部分从创建存储帐户的服务主体的关联订阅和资源组构建。
示例解决方案
对于订阅,这相当容易。我可以在管道内调用的 PowerShell 脚本中执行类似的操作:
$subscriptionId = $(az account show --query 'id' -o tsv)
Write-Output "##vso[task.setvariable variable=AZURE_SUBSCRIPTION_ID;isoutput=true;issecret=true]$subscriptionId"
现在我设置了变量$subscription ID 和AZURE_SUBSCRIPTION_ID,并且可以访问管道本身内的订阅信息。
问题
但是我怎样才能对资源组做类似的事情呢?
在不知道资源组名称本身的情况下,没有与 az account show 等效的资源组。 (例如,我必须输入 az group show -name <RG-name>,但这正是我想要获得的名称。)
再次明确地说,我在一个特定的资源组和订阅中运行,它是与服务连接相关联的那些。现在我只希望管道可以使用这些信息。
【问题讨论】:
-
我不确定您所说的
am running inside of a particular resource group是什么意思 使用 SP 的服务连接仅限于订阅或管理组 -
az group list 命令是否满足您的需求?
-
不,@WalterQian-MSFT,我正在管道内完成所有这些工作。 (1)
az group list给了我一个列表,我不确定该列表是确定性的(例如,我想要的组总是列表中的#2),并且 (2) 这似乎是一种非常脆弱的方式建立管道:列表上的数字每次都会不同。 -
@silent 很抱歉有任何混淆:服务连接 提供可以是scoped by resource group 的服务主体,我想从管道中知道该资源组的名称.
-
@MikeWilliamson 不是“范围界定”。那只是让 SP 访问一个 RG。但它总是可以访问多个 RGs
标签: azure azure-pipelines azure-service-principal