使用AzureDevops在两次预订之间移动资源

时间:2018-10-29 04:32:09

标签: azure azure-devops azure-cli

当前,我正在尝试通过AzureDevops创建动态环境。

实现此目标的步骤之一是获取生产数据库的副本并将其放置在临时资源组(生产订阅)中,然后将sql服务器和关联的数据库移至我们的非生产订阅中。然后,我们从此处创建Web应用程序并部署代码。

当我通过Az Cli运行此程序时,我可以使用以下内容

SQLSERVERID=$(az resource show -g $RSGNAMETEMP  -n $SQLSERVERNAME --resource-type "Microsoft.Sql/servers" --query id --output tsv)

az resource move --destination-group $RSGNAME --ids $SQLSERVERID --destination-subscription-id $SANDBOXSUBSCRIPTIONID

但是,当我通过AzureDevops运行此程序时,出现以下错误

 ERROR: The client (...) with object id (...)  has permission to perform action  on scope  however, it does not have permission to perform action (...) on the linked scope(s).

我相信当您在AzureDevops中配置AZ Cli步骤并从下拉列表中选择“订阅”时,就会发生此问题。帐户/服务主体仅具有对该特定订阅的访问权限,而没有多个访问权限。是否可以配置可以连接到多个订阅的服务主体(可以在AzureDevops中使用)?

1 个答案:

答案 0 :(得分:1)

是的,只需转到Azure门户,导航到所需的订阅刀片,转到访问控制,在顶部按下+,然后将主体作为订阅者添加。

要找到服务主体名称,请使用此:

单击VSTS作业中“ Azure订阅”字段中的“管理”链接,它将导航您到新刀片服务器。单击那里的管理服务主体。它将带您到Azure AD中的应用程序页面。之后,您可以在“本地目录”中“托管应用程序”下复制名称,并使用该名称向其授予Key Vault权限。