如何使用ARM模板在已创建的标准Logic App中部署工作流
标准Logic App下创建工作流的ARM模板方案
核心问题是消耗型与标准型Logic App的ARM资源类型完全不同:
- 消耗型工作流资源类型:
Microsoft.Logic/workflows - 标准型工作流资源类型:
Microsoft.Web/sites/workflows(因为标准Logic App本质是App Service站点)
以下是直接可行的ARM模板,用于在已存在的标准Logic App下创建工作流:
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "logicAppName": { "type": "string", "metadata": { "description": "已创建的标准Logic App站点名称" } }, "workflowName": { "type": "string", "metadata": { "description": "要创建的工作流名称" } }, "location": { "type": "string", "defaultValue": "[resourceGroup().location]", "metadata": { "description": "资源位置,需与标准Logic App一致" } }, "workflowDefinition": { "type": "object", "defaultValue": { "definition": { "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#", "actions": {}, "triggers": { "Recurrence": { "type": "Recurrence", "recurrence": { "frequency": "Hour", "interval": 1 } } }, "contentVersion": "1.0.0.0", "outputs": {} }, "kind": "Stateful" // 可选:Stateful/Stateless,根据需求选择 } } }, "resources": [ { "type": "Microsoft.Web/sites/workflows", "apiVersion": "2021-03-01", "name": "[concat(parameters('logicAppName'), '/', parameters('workflowName'))]", "location": "[parameters('location')]", "dependsOn": [], // 若标准Logic App在同一模板中创建,需添加其资源ID;已存在则留空 "properties": { "state": "Enabled", // 可选:Enabled/Disabled "definition": "[parameters('workflowDefinition').definition]", "kind": "[parameters('workflowDefinition').kind]" } } ] }
关键注意事项
- 资源类型匹配:必须使用
Microsoft.Web/sites/workflows而非Microsoft.Logic/workflows,这是避免生成消耗型资源的核心 - 位置一致性:工作流位置必须与标准Logic App站点所在位置完全一致
- 工作流类型:标准Logic App支持
Stateful(有状态)和Stateless(无状态)两种工作流类型,根据业务需求选择 - 部署验证:部署前确认目标标准Logic App已存在,且当前部署账号拥有该站点的写入权限
内容的提问来源于stack exchange,提问作者Kaustubh Pandey
相关产品推荐
相关产品推荐

