具有参数化连接的逻辑应用程序(消耗)的 CI/CD 管道

问题描述 投票:0回答:1

我想问是否可以通过参数化连接将LogicApp消费部署到azure, 目前我正在使用任务:

                - task: AzureResourceManagerTemplateDeployment@3
                  displayName: "Deploy ARM template"
                  inputs:
                    azureResourceManagerConnection: $(connectionName)
                    subscriptionName: $(subscriptionId)
                    resourceGroupName: $(resourceGroupName)
                    location: $(location)
                    csmFile: $(Pipeline.Workspace)/armtemplate/**/workflow.json
                    csmParametersFile: $(Pipeline.Workspace)/armtemplate/**/parameters.json
                    deploymentMode: "Incremental"
                    overrideParameters: -subscriptionId $(subscriptionId) -resourceGroupName $(resourceGroupName) -location $(locationParameter)

此任务正确部署我的逻辑应用,但没有参数 我的工作流程.json 如下所示: 我收到这种错误: #[error]LinkedAuthorizationFailed:客户端有权在范围“/subscriptions/xxxxx/resourcegroups/xxxx/providers/Microsoft.Logic/workflows/LogicAppTestDeploy2”上执行操作“Microsoft.Web/connections/join/action”,但是链接的找不到订阅“[parameters('subscriptionId')]”。

我做错了什么吗?或者甚至可以使连接参数化吗?

谢谢您的回答

azure continuous-integration azure-logic-apps
1个回答
0
投票

ARM 模板正在引用名为“sharepointonline-01”的 API 连接资源,该资源应该预先存在,您也可以将其与逻辑应用工作流程一起部署 (https://learn.microsoft.com/en-us/azure/templates/microsoft.web/connections?pivots=deployment-language-arm-template)。

您收到此错误是因为您的参数化字符串“id”不是有效的 ARM。要获得所需的结果,您可以使用 concat 函数。

但是,由于您引用的是现有资源,因此请使用 ARM 中可用的资源函数之一来引用资源:(https://learn.microsoft.com/en-us/azure/azure-resource-manager/templates/模板函数资源#subscriptionresourceid)

要得到这样的东西:

"sharepointonline": {
   "connectionId": "[resourceId('Microsoft.Web/connections', 'sharepointonline-1')]",
   "id": "[subscriptionResourceId('Microsoft.Web/locations/managedApis', parameters('location'), 'sharepointonline')]",
 }
© www.soinside.com 2019 - 2024. All rights reserved.