你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

创建和发布 Azure 逻辑应用工作流模板(预览版)

重要

此功能为预览版,受 Microsoft Azure 预览版补充使用条款限制。

适用于:Azure 逻辑应用(标准)

Azure 逻辑应用提供预生成的集成工作流模板,可用于加速生成集成应用程序的过程。 这些模板遵循常用的模式,通过提供具有预定义业务逻辑和配置的起点或基线来帮助简化开发。

不仅可以使用工作流模板启动开发,还可以创建工作流模板供自己使用或与他人共享。 模板可以包括架构、映射和自定义程序集等项目。 若要将模板添加到 Azure 门户中的模板库,请使用本操作指南创建模板包。 完成后,请访问 GitHub 中的 Azure 逻辑应用工作流模板存储库,你可在其中为模板包创建拉取请求,并让 Azure 逻辑应用团队查看模板。

限制

工作流模板目前仅支持标准逻辑应用和单个工作流。

模板包包含哪些内容?

下表介绍了模板包中的必需和可选文件:

文件名 必须 说明
workflow.json 包含工作流定义的 JSON 文件。
manifest.json 包含有关工作流和相关组件的信息的 JSON 文件。
<image-name>-dark.png .png 格式将工作流用作只读屏幕截图的图像文件,适用于浏览器的深色主题。
<image-name>-light.png .png 格式将工作流用作只读屏幕截图的图像文件,适用于浏览器的浅色主题。
<map-name>.json.xml.xslt 支持工作流模板的任何项目,例如映射和架构。
<custom-assembly>.dll 支持工作流模板的任何自定义程序集。
readme.md Markdown 文件,其中包含工作流模板的说明、流程或其他信息。

还可以添加任何其他文件来维护和支持模板,例如包含测试数据或示例数据的文件。

创建模板包文件夹

创建 workflow.json 文件

workflow.json 文件包含 JSON 格式工作流的基础定义。 若要创建 workflow.json 文件,需要复制工作流定义并将其保存为名为 workflow.json 的文件。

若要以最简单和最佳方法获取工作流定义的,请使用设计器创建工作流。 请务必查看工作流最佳做法以及名称和样式约定。 或者,一开始可以在 Azure 门户中使用模板库中的预生成工作流模板。

生成工作流时,设计器会自动添加对基础工作流定义中任何已添加的内置项、服务提供商连接、托管 API 连接或库的引用。

完成后,将基础工作流定义复制到空 workflow.json 文件。

工作流最佳做法

  • 尽可能多使用内置操作。 例如,Azure Blob 存储连接器的以下版本可用于标准工作流:

    • 内置服务提供程序版本,该版本显示在连接器库中并带有“应用内”标签。 此版本通过单租户 Azure 逻辑应用运行时托管并运行,可提供更好的性能、吞吐量和其他优势。

    • Microsoft 托管的 API 版本,该版本显示在具有“共享”标签的连接器库中。 此版本使用共享全局资源在多租户 Azure 中托管和运行。

  • 请勿在触发器和操作定义中使用硬编码属性及其值。

  • 通过添加描述性和有用的注释,提供有关触发器和操作定义的更多上下文。

复制基础工作流定义

  1. 在 Azure 门户中,在工作流菜单中的“开发人员”下,选择“代码”

  2. 从代码视图窗口中复制整个工作流定义,例如:

    屏幕截图显示了 Azure 门户、代码视图窗口和请求-响应工作流定义。

  3. 在名为 workflow.json 的空文件中,保存工作流定义。

workflow.json 中的参数引用

workflow.json 文件中引用参数时,必须通过以下方式反映使用后缀 _#workflowname# 的参数名称:

"name": "@parameters('<parameter-name>_#workflowname#')"

例如:

"name": "@parameters('sharepoint-folder-path_#workflowname#')"

workflow.json 中的连接引用

workflow.json 文件中引用连接时,必须通过以下方式反映使用后缀 _#workflowname# 的连接名称:

"referenceName": "<connector-ID>_#workflowname#",
"connectionName": "<connector-ID>_#workflowname#"

例如:

"referenceName": "azureaisearch_#workflowname#",
"connectionName": "azureaisearch_#workflowname#"

有关连接器 ID 的详细信息,请参阅查找连接器 ID

创建工作流模板映像

在 Azure 门户中,每个工作流模板在工作流模板库中都有一个概述窗格。 此窗格包含模板创建的工作流和其他模板信息的只读预览图像。

若要创建此预览图像,请执行以下步骤:

  1. 在设计器中,设置用于创建两个屏幕截图的工作流。

    需要为每个浏览器浅色主题和深色主题各创建一个版本。

  2. 使用首选的屏幕截图工具创建工作流屏幕截图。 不要在工作流周围包含太多空白。

  3. 按照名称和样式约定,使用 .png 文件扩展名和所需的任何名称保存每个图像。

  4. 在工作流模板包的 manifest.json 文件中,将相同的映像名称添加到 images 部分,而不使用 .png 文件扩展名,例如:

    "images": {
        "dark": "workflow-dark",
        "light": "workflow-light"
    }
    

创建 manifest.json 文件

manifest.json 文件描述工作流与相关组件之间的关系。 目前,需要手动创建此文件,你也可以从 GitHub 中的 Azure 逻辑应用工作流模板存储库中的现有预生成模板重新调整 manifest.json 文件。 创建 manifest.json 文件时,请确保查看名称和样式约定

下表描述了 manifest.json 文件中的属性:

特性名 必须 描述
title <template-title> 模板库中出现的标题,将在你从 Azure 门户中的模板中添加工作流时打开。
description <template-description> 模板说明,显示在模板库的模板概述窗格中。
prerequisites <template-prerequisites> 使用模板时需要满足的任何先决条件。 显示在模板的概述窗格中。 可以链接到本部分中的其他文档。
tags <template-tags-array> 用于搜索或筛选模板的模板标记。
skus standardconsumption 模板支持的逻辑应用工作流类型。 如果不确定,请使用 standard
kinds statefulstateless 工作流模式,用于确定是否存储运行历史记录和操作状态。

默认情况下,所有工作流在有状态和无状态模式下都可用。 如果工作流仅在有状态模式下运行,请使用此属性明确此要求。
detailsDescription 请参阅说明。 模板的任何其他详细说明信息。
details 请参阅说明。 用于筛选模板库的模板信息。

- By:模板发布者,例如 Microsoft

- TypeWorkflow

- Trigger:触发器类型,例如,RecurrenceEventRequest
artifacts <artifacts-array> 模板包中的所有相关文件,包括以下属性:

- type:文件类型,用于确定文件复制位置的相应位置,例如 workflow

- file:文件名和扩展名,例如 workflow.json
images 请参阅说明。 浏览器浅色和深色主题的工作流图像文件名:

- light:浅色主题的图像名称,例如 workflow-light

- dark:深色主题的图像名称,例如 workflow-dark
parameters 是,但如果不存在,则可以为空 <workflow-parameters-array> 工作流模板中操作的参数。 对于每个参数,需要指定以下属性:

- name:参数名称必须具有后缀 _#workflowname#。 仅使用字母数字字符、连字符或下划线,并遵循以下格式:

<parameter-name>_#workflowname#

- displayName:参数的友好显示名称。 请参阅名称和样式约定

- type:参数的数据类型,例如 StringInt

- default:参数的默认值(如果有)。 如果没有,请将此值保留为空字符串。

- description:参数的详细信息和其他重要或有用的信息。

- requiredtruefalse
connections 是,但如果不存在,则可以为空。 <connections-array> 使用工作流模板创建的连接。 每个连接具有以下属性:

-connectorId:连接器 ID 必须具有后缀 _#workflowname#。 仅使用字母数字字符、连字符或下划线,并遵循以下格式:

<connector-ID>_#workflowname#

若要查找连接器 ID,请参阅查找连接器 ID

- kind:连接器的运行时主机类型,要么是适用于内置操作和服务提供商连接器的 inapp,要么是用于托管的 Azure 托管连接器的 shared。 在连接器库中,内置操作和服务提供商连接器标记为“应用内”,而托管连接器则标记为“共享”
featuredConnections <featured-connections-array> 默认情况下,模板库显示每个模板使用的 Azure 逻辑应用中预生成的操作和连接器的图标。 若要包含任何其他操作的图标,可以使用 featuredConnections 属性。 每个操作必须具有以下属性:

- kind:操作种类

- type:操作类型

若要查找这些值,请参阅查找 featuredConnections 部分的操作种类和类型

查找连接器 ID

若要查找连接器 ID 以用于 manifest.json 文件中的连接或 workflow.json 文件中的连接引用,请执行以下步骤:

  1. Azure 门户中,打开你的逻辑应用资源。

  2. 在逻辑应用菜单上的“工作流”下,选择“连接”

  3. 选择“JSON 视图”选项卡。

  4. 根据连接类型,请执行以下步骤:

    • 托管的“共享”API 连接托管并运行在 Azure 中:

      1. 找到 managedApiConnections 节。

      2. connection 属性中,复制并保存 id 值,但请将任何个人或敏感数据(如订阅 ID、资源组名称等)替换为 #<item>#

        /subscriptions/#subscription#/providers/Microsoft.Web/locations/#location#/managedApis/<connection-name>

        例如,以下文本显示 SharePoint 连接器的连接器 ID:

        /subscriptions/#subscription#/providers/Microsoft.Web/locations/#location#/managedApis/sharepointonline

    • 对于托管在单租户 Azure 逻辑应用运行时上的服务提供商连接:

      1. 找到 serviceProviderConnections 节。

      2. 对于每个连接,请查找 serviceProvider 属性中的 id 属性。

      3. 复制并保存以下值:

        /serviceProviders/<connection-name>

        例如,以下文本显示 Azure AI Search 连接器的连接器 ID:

        /serviceProviders/azureaisearch

查找 featuredConnections 的操作“种类”和“类型”属性

manifest.json 文件中,featuredConnections 部分可以包含要包含在 Azure 门户中模板库的任何其他操作的图标。 此部分是一个数组,需要为每个操作提供 kindtype 属性。

若要获取这些属性值,请使用打开的工作流在 Azure 门户中执行以下步骤:

  1. 在工作流菜单的“开发人员”下,选择“代码”

  2. 在代码视图窗口中的 actions 部分中,找到所需的操作,然后查找 kindtype 值。

将模板包添加到 GitHub 存储库

若要在 Azure 门户中将模板发布到模板库,请设置 GitHub,并使用模板包创建拉取请求进行验证和查看:

  1. 创建免费的 GitHub 帐户(如果没有帐户)。

    有关详细信息,请参阅开始使用 GitHub 帐户

  2. 转到 GitHub 中 Azure 逻辑应用名为 LogicAppsTemplates 的工作流模板存储库

  3. 创建自己的分支,这是 GitHub 中 LogicAppsTemplates 存储库的远程副本。

    有关详细信息,请参阅为存储库创建分支

  4. 若要在本地运行,请将分支克隆到计算机上。

    1. 按照以下步骤下载、安装和设置 Git

    2. 转到具有以下 URL 的分支:

      https://github.com/<your-username>/LogicAppsTemplates

    3. 在本地计算机上,创建名为 GitHub 的文件夹(如果还没有)。 不要克隆到 OneDrive 同步的文件夹。

    4. 按照以下步骤克隆你的分支,而不是生产存储库

    5. 在本地存储库中,按照以下步骤创建工作分支

    6. 签出工作分支后,转到本地存储库中的根级别,并创建模板包文件夹。

    7. 将模板文件添加到模板包文件夹,并使用文件夹名称更新根级 manifest.json 文件。

    8. 准备好将更改提交到本地存储库(例如保存快照)时,请使用 Git 命令行工具或其他工具运行以下命令:

      git add .

      git commit -m "<commit-short-description>"

    9. 若要将快照上传到远程分支,请运行以下命令:

      git push origin <your-working-branch>

  5. 在 GitHub 中,创建拉取请求以将<你的工作分支>LogicAppsTemplates 存储库中的分支进行比较。

    1. 转到存储库的“拉取请求”页,然后选择“新建拉取请求”

    2. 在“比较更改”下,选择“跨分支比较”

    3. 请确保拉取请求具有以下设置,然后选择“创建拉取请求”

      基本存储库 Base 头存储库 比较
      Azure/LogicAppsTemplates <user-name>/LogicAppsTemplates <your-working-branch>

      屏幕截图显示了 GitHub 和拉取请求设置。

    4. 为拉取请求输入标题和说明。 若要完成,请选择“创建拉取请求”

    5. 等待 Azure 逻辑应用团队审核拉取请求。

    有关详细信息,请参阅从分支创建拉取请求

名称和样式约定

区域 约定
敏感数据 不要在模板文件、屏幕截图、说明或测试数据中添加或上传个人数据和敏感数据。 例如,此数据包括订阅 ID、用户名、密码等。
文件夹名称 为便于阅读,请尽可能使用小写和连字符。 请参阅大写 - Microsoft 风格指南
图像文件名称 使用 .png 作为文件扩展名,并使用小写和连字符,例如 workflow-light.png
产品、服务、技术和品牌名称 遵循官方拼写和大写。 例如:

- 引用服务名称或平台时,请使用“Azure 逻辑应用”,而不是“逻辑应用”。

- 引用资源或实例时,请使用“逻辑应用”。

- 引用触发器和操作序列时,请使用“逻辑应用工作流”或“工作流”。
缩写和首字母缩略词 对产品、服务、技术、品牌名称和不常见的技术术语使用全称,而非缩写或首字母缩略词。 常见的首字母缩略词(如“HTTP”和“URL”)是可接受的。 例如,使用“Visual Studio Code”,而不是“VS Code”。 请参阅首字母缩略词 - Microsoft 风格指南
其他文本 - 对标题和正文内容使用句子大小写,这意味着仅大写首字母,除非其中有产品、服务、技术或品牌名称。

- 不要将普通名词和冠词等大写,如“a”、“an”、“and”、“or”、“the”等。
语音 - 使用第二人称(你和你的),而不是第三人(用户、开发人员、客户),除非需要提到特定岗位。 请参阅人员 - Microsoft 风格指南

- 尽可能使用主动、直接但友好的语气。 主动语态侧重于文本中的主语和谓词,而被动语态侧重于文本中的对象。
词汇 - 使用简单、常见、日常的单词,例如“使用”,而不是“行使”或“施用”。

- 不要使用难以跨语言翻译的单词、短语、行话、口语、习语或俚语。

- 仅针对特定情况使用“请”。 请参阅请 - Microsoft 风格指南

- 使用“例如”或“比如”,而不是“例”或“譬如”。

- 不要使用方向术语,如“这里”、“上方”、“下方”、“右”和“左”,这不利于无障碍服务。
标点 - 对于一系列项,请在连词前包括最后一个逗号,例如“以及”。 例如,“苹果、橙子,以及香蕉”。 请参阅逗号 - Microsoft 风格指南

- 使用适当的标点结束完整句子。 不要使用感叹号。 请参阅标点符号 - Microsoft 风格指南
格式化 - 对于代码,请遵循该代码语言的风格约定。

- 不要使用硬编码链接,如果 URL 发生更改,这种链接会中断。 在 PR 请求中,要求改用重定向链接。

- 对于链接,请使用以下格式:

For more information, see [descriptive-link-text](URL)].”。

- 使用描述性链接文本,而不是宽泛或模糊的链接文本,如“See [here](URL).”

- 对过程中的步骤仅使用数字,不对没有特定顺序的列表使用数字。 请参阅列表 - Microsoft 风格指南

- 在标点符号后仅使用一个空格,除非要缩进代码。

有关更多指导,请参阅 Microsoft 风格指南通用写作提示

从预生成模板创建逻辑应用工作流