将消耗型工作流导出到标准逻辑应用
在单租户 Azure 逻辑应用中运行的标准逻辑应用工作流提供了许多新功能和改进功能。 例如,你可以获得计算隔离、虚拟网络集成和专用端点以及应用服务环境托管、使用 Visual Studio Code 的本地开发和调试、无状态工作流的低延迟等等。
如果希望从标准版工作流中获益,但你的工作流在多租户 Azure 逻辑应用中运行,则现在可以将消耗工作流移动到单租户 Azure 逻辑应用。 如果需要一些标准版功能(例如隔离和网络集成、更低的延迟或更好的成本可预测性),则此切换非常有用。
现在可以将消耗版逻辑应用导出到标准版逻辑应用了。 使用 Visual Studio Code 和最新的 Azure 逻辑应用(标准)扩展,你可以将逻辑应用作为有状态的工作流导出到标准逻辑应用项目。 然后,你可以在本地更新、测试和调试你的工作流,为重新部署做好准备。 准备就绪后,你可以直接从 Visual Studio Code 或通过你自己的 DevOps 流程进行部署。
注意
导出功能不会迁移你的工作流。 相反,此工具会复制项目,例如工作流定义、连接、集成帐户工件等。 你的源逻辑应用资源、工作流、触发历史、运行历史和其他数据保持不变。
可以控制导出过程和迁移过程。 可以测试和验证导出的工作流,以使你对目标环境感到满意。 可以选择何时禁用或删除源逻辑应用。
本文将介绍导出过程,并演示如何在 Visual Studio Code 中将逻辑应用工作流从消耗工作流导出到本地标准逻辑应用项目。
已知问题和限制
导出工具不会导出任何基础架构信息,例如集成帐户设置。
导出工具可以使用具有并发设置的触发器导出逻辑应用工作流。 但是,单租户 Azure 逻辑应用会忽略这些设置。
如果要在同一标准版逻辑应用项目中导出逻辑应用,则逻辑应用必须位于同一区域中。
默认情况下,不会从源逻辑应用工作流克隆连接凭据。 在你的逻辑应用工作流可以运行之前,你必须在导出后重新对这些连接进行身份验证。
默认情况下,如果 Azure 连接器具有内置连接器版本,则导出工具会自动将 Azure 连接器转换为内置连接器。 不存在用于选择退出此行为的选项。
可导出的操作类型
操作 | JSON 类型 |
---|---|
触发器 | 内置:Http 、HttpWebhook 、Recurrence 、manual (请求)托管: ApiConnection ApiConnectionNotification 、ApiConnectionWebhook |
操作 | 内置:AppendToArrayVariable 、AppendToStringVariable 、Compose 、DecrementVariable 、Foreach 、Http 、HttpWebhook 、If 、IncrementVariable 、InitializeVariable 、JavaScriptCode 、Join 、ParseJson 、Response 、Scope 、Select 、SetVariable 、Switch 、Table 、Terminate 、Until 和 Wait - 托管: ApiConnection 、ApiConnectionWebhook |
先决条件
要部署到同一订阅和 Azure 区域(例如“中国北部 2”)的一个或多个逻辑应用。
Azure 读者需要对当前部署了逻辑应用的订阅具有订阅级访问权限。
如果选择“部署托管连接器”选项,Azure 参与者需要具有资源组级别访问权限。
注意
确保为 Visual Studio Code 的 Azure 逻辑应用(标准版)扩展安装 2.0.16 或更高版本。 一些转换方案需要使用随此版本提供的最新工作流设计器。
对要导出的逻辑应用进行分组
借助 Azure 逻辑应用(标准版)扩展,可以将多个消耗版逻辑应用工作流组合到一个标准版逻辑应用项目中。 在单租户 Azure 逻辑应用中,一个标准逻辑应用资源可以有多个工作流。 使用这种方法,你可以预先验证你的工作流程,以便在选择逻辑应用进行导出时不会遗漏任何依赖项。
选择逻辑应用进行导出时,请考虑以下建议:
工作流共享相同资源的分组逻辑应用,例如集成帐户项目、映射和架构,或通过一系列流程使用资源。
对于每个逻辑应用的工作流的组织和数量,请查看最佳实践和建议。
将消耗版工作流导出到本地项目
选择要导出的逻辑应用
在 Visual Studio Code 中,登录 Azure(如果尚未登录)。
在 Visual Studio Code 的活动栏上,选择“Azure”来打开 Azure 窗口 (Shift + Alt + A)。
在“工作区”部分工具栏上的“Azure 逻辑应用”菜单中,选择“导出逻辑应用”。
在“导出”选项卡打开后,选择你的 Azure 订阅和区域,然后选择“下一步”。
选择要导出的逻辑应用。 每个选定的逻辑应用都显示在左侧的“所选逻辑应用”列表中。
提示
还可以搜索逻辑应用并过滤资源组。
导出工具开始验证你选择的逻辑应用是否符合导出条件。
在“高级选项”部分中,可以选择以下选项:
选项 默认 说明 生成基础结构模板 开 导出过程将创建基础结构模板,其中包括一个标准逻辑应用的 ARM 模板,以及适用于每个导出的 Azure 托管连接的一个 ARM 模板。 克隆连接凭据 关 在部署过程中,导出过程会将凭据从原始 Azure 托管连接克隆到在 Azure 中创建的新 Azure 托管连接。 仅在导出的连接仍为 Azure 托管连接的情况下工作,例如 Office 365 Outlook 连接。
重要说明:请谨慎使用此选项。 默认情况下,两个新连接将指向同一资源,这可能会创建争用条件。默认将集成帐户用作转换和验证的源 关 在本地或集成帐户中引用映射和架构文件。 如果已启用,请不要将映射和架构复制到目标项目。 要求在逻辑应用的应用设置中添加对集成帐户的引用。 默认情况下,转换 XML 和 XML 验证操作使用集成帐户作为源。 将自定义连接器导出为 API 管理操作 关 如果启用,则自定义连接器将创建为 API 管理操作,而不是 HTTP 操作,以便可以将自定义操作实现为 API 管理中的 API 操作。 有关详细信息,请参阅 用于连接到客户服务或 API 的 Azure 逻辑应用标准选项。 完成后,选择下一步。
查看导出验证结果
导出验证完成后,通过展开每个逻辑应用的条目来查看结果。
有错误的逻辑应用不符合导出条件。 你必须从导出列表中删除这些逻辑应用,直到你在源头解决方法它们。 要从列表中删除逻辑应用,请选择“后退”。
例如,SourceLogicApp2 有错误,在修复之前无法导出:
通过验证(有警告或没有警告)的逻辑应用仍然有资格导出。 要继续,请在所有应用验证成功时选择“导出”,或在应用有警告时选择“带警告的导出”。
比如 SourceLogicApp3 有警告,但你仍然可以继续导出:
下表提供了有关每个验证图标和状态的更多信息:
验证图标 验证状态 项目已通过验证,因此可以继续导出而没有问题需要解决。 项目验证失败,因此无法继续导出。
失败项目的验证条目会自动展开并提供有关验证失败的信息。项目通过验证但出现警告,但导出可以继续执行所需的导出后解析。
带有警告的项目的验证条目会自动显示为展开状态,并提供有关警告和所需的导出后修复的信息。在出现“完成导出”部分后,对于“导出位置”,浏览并选择一个本地文件夹来保存你的新标准逻辑应用项目。
如果你的工作流具有你想要部署的托管连接(仅建议用于非生产环境),请选择“部署托管连接”,这会显示你的 Azure 订阅中的现有资源组。 选择要在其中部署托管连接的资源组。
在“导出后步骤”下面,查看所有必需的导出后步骤,例如:
根据方案,选择“导出并完成”或“带警告导出并完成”。
导出工具会将你的项目下载到你选择的文件夹位置,在 Visual Studio Code 中展开项目,并部署任何托管连接(如果你选择了该选项)。
此过程完成后,Visual Studio Code 将打开一个新工作区。 你现在可以安全地关闭导出窗口。
从你的标准逻辑应用项目中,打开并查看 README.md 文件以了解所需的导出后步骤。
导出后步骤
修正步骤
一些导出的逻辑应用工作流需要导出后修复步骤才能在标准平台上运行。
从你的标准逻辑应用项目中,打开 README.md 文件,然后查看导出工作流的修复步骤。 导出工具会生成 README.md 文件,其中包含所有必需的导出后步骤。
在对源逻辑应用工作流进行任何更改之前,请确保测试新的标准逻辑应用资源和工作流。
集成帐户操作和设置
如果你导出依赖于集成帐户的操作,则必须手动设置标准逻辑应用,并使用指向包含所需工件的集成帐户的参考链接。 有关更多信息,请查看将集成帐户链接到标准逻辑应用。
批处理操作和设置
如果使用存储在集成帐户中的多个配置导出使用 Batch 操作的操作,则必须在导出后使用正确的值手动配置 Batch 操作。 有关详细信息,请参阅在 Azure 逻辑应用中发送、接收和批处理消息。
项目文件夹结构
导出过程完成后,你的标准逻辑应用项目包含新文件夹和文件以及典型标准逻辑应用项目中的大多数其他文件夹和文件。
下表描述了导出过程添加的这些新文件夹和文件:
Folder | 文件 | 说明 |
---|---|---|
.development\deployment | LogicAppStandardConnections.parameters.json | 用于部署托管连接器的 Azure 资源管理器模板参数文件 |
LogicAppStandardConnections.template.json | 用于部署托管连接器的 Azure 资源管理器模板定义 | |
LogicAppStandardInfrastructure.parameters.json | 用于部署标准逻辑应用资源的 Azure 资源管理器模板参数文件 | |
LogicAppStandardInfrastructure.template.json | 用于部署标准逻辑应用资源的 Azure 资源管理器模板定义 | |
.logs\export | exportReport.json | 导出报告摘要原始文件,其中包括导出后修复所需的所有步骤 |
exportValidation.json | 验证报告原始文件,其中包括每个导出逻辑的验证结果应用 | |
README.md | 带有导出结果摘要的 Markdown 文件,包括创建的逻辑应用和所有必需的后续步骤 |