同一Visual Studio Code项目中不同Logic Apps的映射文件存放路径咨询
针对Logic Apps独立映射文件的部署结构设置
方案1:按工作流拆分映射目录
直接为每个Logic App的工作流目录创建专属的映射文件存放路径,项目结构示例如下:
项目根目录/ ├── workflows/ │ ├── LogicApp1/ # 第一个逻辑应用的工作流目录 │ │ ├── artifacts/ │ │ │ └── maps/ # 仅属于LogicApp1的XSLT映射文件 │ │ │ ├── MapForLA1.xslt │ │ │ └── AnotherMapLA1.xslt │ │ ├── logicapp.json │ │ └── ... │ ├── LogicApp2/ # 第二个逻辑应用的工作流目录 │ │ ├── artifacts/ │ │ │ └── maps/ # 仅属于LogicApp2的XSLT映射文件 │ │ │ ├── MapForLA2.xslt │ │ │ └── AnotherMapLA2.xslt │ │ ├── logicapp.json │ │ └── ... │ └── Artifacts/ # 可选:存放多个Logic App共用的映射文件 │ └── maps/ ├── host.json └── ...
部署时,每个工作流会自动加载自身目录下的映射文件,不会与其他Logic App的资源混淆。需要注意在对应Logic App的logicapp.json中,使用相对路径引用映射,比如LogicApp1里写./artifacts/maps/MapForLA1.xslt。
方案2:通过ARM模板/Bicep精确控制部署范围
如果使用ARM模板或Bicep进行部署,可以统一存放所有映射文件,再在模板中指定每个Logic App要部署的资源:
- 把所有映射文件放在项目的统一目录(比如
shared-maps/) - 在LogicApp1的资源定义中,仅声明属于它的映射文件
- 对LogicApp2做同样的针对性配置
以Bicep为例,LogicApp1的资源定义片段:
resource logicApp1 'Microsoft.Logic/workflows@2019-05-01' = { name: 'LogicApp1' location: resourceGroup().location properties: { definition: loadJsonContent('workflows/LogicApp1/logicapp.json') parameters: { '$connections': { value: ... } } artifacts: { maps: [ { name: 'MapForLA1' type: 'Microsoft.Logic/workflows/artifacts/maps' properties: { contentType: 'application/xml' content: loadTextContent('shared-maps/MapForLA1.xslt') } } ] } } }
这种方式能精准控制每个Logic App的部署资源,适合需要灵活调整部署策略的场景。
关键注意事项
- 无论采用哪种方案,都要确保Logic App定义中的映射文件路径正确,避免出现文件找不到的部署错误
- 使用VS Code的Azure Logic Apps扩展部署时,扩展会自动识别每个工作流目录下的Artifacts内容,无需额外配置
内容的提问来源于stack exchange,提问作者Vydai
相关产品推荐
相关产品推荐

