You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Bicep/YAML部署已禁用的标准Logic App工作流遇问题

解决Logic App工作流部署后无法停用及不显示的问题

问题根源分析

  • 你使用的Microsoft.Web/sites/workflows@2015-08-01是老旧API版本,已不适用于当前Stateful Logic App部署,这是工作流未出现在Logic App功能中的核心原因。
  • Microsoft.Web/sites@2022-03-01的state属性确实为只读,无法直接通过资源定义设置容器状态,但可通过其他方式实现停用需求。

修正后的Bicep部署方案

1. 用正确API版本部署Stateful工作流

改用适配Stateful Logic App的最新稳定API版本(如Microsoft.Logic/workflows@2022-09-01),直接通过state属性设置工作流为停用状态:

// 部署Logic App容器
resource logicContainer 'Microsoft.Web/sites@2022-03-01' = {
  name: logicAppName
  location: location
  kind: 'functionapp,workflowapp'
  properties: {
    serverFarmId: appServicePlanId
    siteConfig: {
      appSettings: [
        {
          name: 'FUNCTIONS_EXTENSION_VERSION'
          value: '~4'
        }
        {
          name: 'WORKFLOWS_EXTENSION_VERSION'
          value: '~1'
        }
        // 补充其他必要配置
      ]
    }
  }
}

// 部署Stateful工作流并设置为停用
resource workflow 'Microsoft.Logic/workflows@2022-09-01' = {
  name: workflowName
  parent: logicContainer
  location: location
  properties: {
    state: 'Disabled'
    definition: {
      // 填入你的工作流定义内容
    }
    kind: 'Stateful'
  }
}

2. 停用整个Logic App容器

若需停用整个容器而非单个工作流,可在部署后通过Azure CLI命令触发状态变更,将脚本嵌入Bicep部署中:

resource stopLogicAppScript 'Microsoft.Resources/deploymentScripts@2020-10-01' = {
  name: 'StopLogicAppScript'
  location: location
  kind: 'AzureCLI'
  properties: {
    azCliVersion: '2.45.0'
    scriptContent: 'az webapp stop --name ${logicContainer.name} --resource-group ${resourceGroup().name}'
    cleanupPreference: 'OnSuccess'
    timeout: 'PT5M'
  }
}

关键注意事项

  • Stateful/Stateless工作流对应的标准资源类型是Microsoft.Logic/workflows,而非旧版的Microsoft.Web/sites/workflows,务必使用匹配的API版本。
  • 单个工作流的状态优先级高于容器状态,即使容器处于运行状态,设置为Disabled的工作流也不会执行。

内容的提问来源于stack exchange,提问作者MintyOwl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 10:13:30