我正在尝试使用CI/CD管道将我的逻辑应用程序部署到多个环境。我收到错误消息,对象id为“”guid“”的-The客户端“”guid“”有权对作用域“”测试资源组“”执行操作“”Microsoft.Logic/ 'Microsoft.Logic/integrationAccounts/join/action‘/write“”;但是,它无权对链接的作用域“”开发资源组集成帐户“”执行操作Microsoft.Logic,或者链接的作用域无效。“”
为测试资源组创建另一个集成帐户不属于自由层。有没有办法在多个资源组之间共享集成帐户
发布于 2020-11-07 03:41:19
不确定权限问题是什么,但您可能需要提供有关此问题的更多信息。
但首先在你的管道中尝试下面的方法。我们可以使用3个不同的资源组和两个集成帐户
"parameters": {
"IntegrationAccountName": {
"type": "string",
"minLength": 1,
"defaultValue": "inter-account-name"
},
"Environment": {
"type": "string",
"minLength": 1,
"defaultValue": "dev"
}
},
"variables": {
"resourceGroupName": "[if(equals(parameters('Environment'), 'prd'),'rg-resources-production','rg-resources-staging')]",
"LogicAppIntegrationAccount": "[concat('/subscriptions/3fxxx4de-xxxx-xxxx-xxxx-88ccxxxfbab4/resourceGroups/',variables('resourceGroupName'),'/providers/Microsoft.Logic/integrationAccounts/',parameters('IntegrationAccount'))]",
},
在上面的示例中,我们有两个不同的集成帐户,一个用于测试,另一个用于生产。这就是我将集成帐户名设置为参数的原因,因为它在不同的环境之间会发生变化。
我已经创建了一个变量"resourceGroupName“,这一点很重要,因为这个url设置了一个直接链接到存储在已知资源组中的集成帐户。在此示例中,我包含了一条if语句,该语句使用在"environment“参数中设置的值。这有助于选择要使用的资源组。
然后,我创建另一个存储新URL的变量。将订阅guid替换为您自己的:3fxxx4de-xxxx-88ccxxxxfbab4。
创建完成后,您需要更改ARM模板以使用刚刚创建的变量。要设置它,请将其放置在属性对象中。
"properties": {
"state": "Enabled",
"integrationAccount": {
"id": "[variables('LogicAppIntegrationAccount')]"
},
所以对于你的管道来说,它应该只是一个普通的arm模板,但是上面的两个参数已经设置好了。
如果你对此有更多的问题,请告诉我。
https://stackoverflow.com/questions/64720085
复制相似问题