使用 Azure 门户创建示例标准逻辑应用工作流
适用于:Azure 逻辑应用(标准)
本操作指南演示如何创建在单租户 Azure 逻辑应用中运行的示例工作流。 工作流等待入站 Web 请求,然后将消息发送到电子邮件帐户。 具体而言,请创建标准逻辑应用资源和工作流,其中包含以下项:
- “请求”触发器创建可调用的终结点,该终结点可处理任何调用方的入站请求。
- Office 365 Outlook 连接器,提供发送电子邮件的操作。
完成后,你的工作流类似于以下概括示例:
标准逻辑应用中可以有多个工作流。 同一逻辑应用和租户中的工作流的运行过程与 Azure 逻辑应用运行时相同,因此它们共享相同的资源并提供更好的性能。
提示
若要了解详细信息,可以向 Azure Copilot 提出以下问题:
- 什么是 Azure 逻辑应用?
- 什么是标准逻辑应用工作流?
- 什么是请求触发器?
- 什么是 Office 365 Outlook 连接器?
若要查找 Azure Copilot,请在 Azure 门户 工具栏上,选择 Copilot。
本示例中的操作来自 1000 多个连接器中可以在工作流中使用的两个连接器。 尽管此示例是基于云的,但你可以创建跨云、本地和混合环境集成大量应用、数据、服务和系统的工作流。
有关详细信息,请参阅以下文档:
若要使用其他工具创建和管理标准逻辑应用工作流,请参阅使用 Visual Studio Code 创建标准工作流。 借助 Visual Studio Code,你可以在本地开发环境中开发、测试和运行工作流。
先决条件
Azure 帐户和订阅。 如果没有订阅,可以注册 Azure 帐户。
Azure 存储帐户。 如果没有,可以提前创建一个存储帐户或在逻辑应用创建期间创建一个存储帐户。
注意
标准逻辑应用资源类型由 Azure Functions 提供支持,其 存储要求与函数应用类似。 有状态工作流执行存储事务,例如,使用队列在表和 blob 中计划和存储工作流状态。 这些事务会产生存储费用。 若要详细了解有状态工作流如何将数据存储在外部存储中,请参阅有状态工作流和无状态工作流。
安装或使用可发送 HTTP 请求以测试解决方案的工具,例如:
- Visual Studio Code,具有来自 Visual Studio Marketplace 的扩展
- PowerShell Invoke-RestMethod
- Microsoft Edge - 网络控制台工具
- Bruno
- Curl
注意
对于具有敏感数据(例如凭据、机密、访问令牌、API 密钥和其他类似信息)的情况,请务必使用具有必要安全功能可保护数据的工具,该工具可脱机或本地工作,不会将数据同步到云,并且不需要登录联机帐户。 这样可以降低向公众公开敏感数据的风险。
要将标准逻辑应用资源部署到 应用服务环境 v3 (ASEv3) - 仅限 Windows 计划 中,必须先创建此环境资源。 然后在创建逻辑应用时选择此环境作为部署位置。 有关详细信息,请参阅资源类型和环境和创建应用服务环境。
如果在逻辑应用上启用 Application Insights,可以选择启用诊断日志记录和跟踪。 你可以在创建逻辑应用时或在部署后执行此操作。 你需要有一个 Application Insights 实例,但你可以在创建逻辑应用时提前创建此资源,或在部署后创建此资源。
最佳做法和建议
为了获得最佳设计器的响应能力和性能,请查看并遵循以下准则:
每个工作流使用不超过 50 个操作。 超过此数量的操作可能会降低设计器的性能。
考虑在必要时将业务逻辑拆分为多个工作流。
每个逻辑应用资源的工作流不超过 10-15 个。
逻辑应用中的工作流越多,加载时间就可能会越长,这可能会导致性能下降。 如果任务关键型逻辑应用需要零停机部署,请考虑设置部署槽位。
创建标准逻辑应用资源
在 Azure 门户中,使用 Azure 帐户登录。
在 Azure 门户搜索框中输入“逻辑应用”,然后选择“逻辑应用”。
在“逻辑应用”页工具栏上,选择“添加”。
在“创建逻辑应用”页上,选择“标准(工作流服务计划)”。
在“创建逻辑应用”页中的“基本信息”选项卡上,提供有关你的逻辑应用的以下基本信息:
属性 需要 值 说明 订阅 是 <Azure-subscription-name> Azure 订阅名称。 资源组 是 <Azure-resource-group-name> 你在其中创建逻辑应用和相关资源的 Azure 资源组。 此名称在各个区域中必须是唯一的,并且只能包含字母、数字、连字符 (-)、下划线 (_)、括号 (()) 和句点 (.)。
此示例创建一个名为 Fabrikam-Workflows-RG 的资源组。逻辑应用名称 是 <logic-app-name> 逻辑应用资源名称在各个区域中必须唯一,且只能包含字母、数字、连字符(-)、下划线(_)、括号(())和句点(.)。
注意:逻辑应用的名称会自动获取后缀 .chinacloudsites.cn,因为标准逻辑应用资源由单租户 Azure 逻辑应用运行时提供支持,该运行时使用 Azure Functions 扩展性模型,并作为扩展托管在 Azure Functions 运行时上。 Azure Functions 使用相同的应用命名约定。
此示例创建一个名为 Fabrikam-Workflows 的逻辑应用资源。区域 是 <Azure-region> 逻辑应用的 Azure 数据中心区域。
此示例使用“中国北部”。Windows 计划 是 <plan-name> 要使用的计划名称。 选择一个现有计划名称或为新计划提供一个名称。
此示例使用的名称为“My-App-Service-Plan”。
注意:请勿使用基于 Linux 的应用服务计划。 仅支持基于 Windows 的应用服务计划。定价计划 是 <pricing-tier> 用于逻辑应用和工作流的 定价层。 你的选择会影响逻辑应用和工作流使用的定价、计算、内存和存储。
有关详细信息,请查看托管计划和定价层。注意
如果选择支持可用性区域冗余的 Azure 区域,则会启用“区域冗余”部分。 此部分提供了为逻辑应用启用可用性区域冗余的选项。 但是,当前支持的 Azure 区域不包括中国北部,因此可以忽略本示例的此部分。 有关详细信息,请参阅通过区域冗余和可用性区域保护逻辑应用免受区域故障的影响。
完成后,设置应如以下示例所示:
注意
默认情况下,标准逻辑应用的语言辅助角色运行时值为
dotnet
。 在此之前,node
是默认值。 但是,dotnet
现在是所有新的和现有的已部署标准逻辑应用的默认值,即使对于具有不同值的应用也是如此。 此更改不会影响工作流的运行时,并且一切都应和以前一样。 有关详细信息,请参阅 FUNCTIONS_WORKER_RUNTIME 应用设置。标准逻辑应用的 APP_KIND 应用设置已设置为 workflowApp,但在某些情况下(例如使用 Azure 资源管理器模板进行自动化,和其他未包含该设置的情况)会缺少此应用设置。 如果某些操作不起作用(如执行 JavaScript 代码操作或工作流停止工作),请检查 APP_KIND 应用设置是否存在且设置为 workflowApp。 有关详细信息,请参阅 APP_KIND 应用设置。
完成后,选择“下一步: 存储”。
在“存储”选项卡上,提供以下有关要用于逻辑应用的存储解决方案和托管计划的信息。
properties 需要 值 说明 存储类型 是 - Azure 存储
- SQL(预览版)和 Azure 存储要用于工作流相关的项目和数据的存储类型。
- 若要仅部署到 Azure,请选择“Azure 存储”。
- 若要将 SQL 用作主存储,并将 Azure 存储用作辅助存储,请选择“SQL(预览版)和 Azure 存储”,并参阅在单租户 Azure 逻辑应用中为标准逻辑应用设置 SQL 数据库存储。
注意:如果要部署到 Azure 区域,则仍然需要 Azure 存储帐户,该帐户用于在 Azure 逻辑应用平台上完成对逻辑应用配置的一次托管。 工作流状态、运行历史记录和其他运行时项目均存储在 SQL 数据库中。
若要部署到托管在 Azure Arc 群集上的自定义位置,将 SQL 用作存储提供程序即可。存储帐户 是 <Azure-storage-account-name> 要用于存储事务的 Azure 存储帐户。
此资源名称在各个区域中必须唯一,长度为 3-24 个字符,并且仅包含数字和小写字母。 选择一个现有的帐户,或者创建一个新帐户。
此示例创建了名为 mystorageacct 的存储帐户。在“网络”选项卡上,可以保留此示例的默认选项。
对于具体的实际场景,请确保查看并选择合适的选项。 还可以在部署逻辑应用资源后更改此配置。 更多信息请参阅 使用专用终结点保护标准逻辑应用与 Azure 虚拟网络之间的流量。
启用公共访问 行为 开 逻辑应用具有公共终结点,其中包含对 Internet 开放且无法访问 Azure 虚拟网络的入站地址。 关闭 逻辑应用没有公共终结点,但有专用终结点,用于在 Azure 虚拟网络内进行通信,且与该虚拟网络隔离。 专用终结点可以与虚拟网络中的终结点通信,但只能从该网络内的客户端通信。 此配置还意味着逻辑应用流量可由网络安全组治理或受虚拟网络路由影响。 要使逻辑应用能够访问虚拟网络中的终结点,请确保选择适当的选项:
启用网络注入 行为 开 逻辑应用工作流可以以私密方式安全地与虚拟网络中的终结点通信。 关闭 逻辑应用工作流无法与虚拟网络中的终结点通信。 如果创建和部署设置支持使用 Application Insights,可以通过以下步骤选择为逻辑应用工作流启用诊断日志记录和跟踪:
在“监视”选项卡上的“Application Insights”下,将“启用 Application Insights”设置为“是”。
对于“Application Insights”设置,请选择一个现有 Application Insights 实例,如果要创建新的实例,请选择“新建”并提供要使用的名称。
在 Azure 验证你的逻辑应用设置后,在“查看 + 创建”选项卡上选择“创建”,例如:
注意
如果在此步骤中收到验证错误,请打开并查看错误详细信息。 例如,如果所选区域达到了你要尝试创建的资源的配额,则你可能必须尝试另一个区域。
Azure 完成部署后,你的逻辑应用资源将自动处于活动状态,但不会执行任何操作,因为资源为空,并且尚未添加任何工作流。
在部署完成页上,选择“转到资源”,以便可以添加空白工作流。
添加空白工作流
创建空逻辑应用资源后,必须添加第一个工作流。
在 Azure 打开资源后,在逻辑应用资源菜单的“工作流”下,选择“工作流”。 在“工作流”工具栏上,选择“添加”。
在“新建工作流”窗格打开后,为工作流提供一个名称,并选择“有状态”或“无状态”工作流类型。 完成后,选择“创建”。
此示例添加了名为 Stateful-Workflow 的空白有状态工作流。 默认情况下,工作流处于启用状态,但在你添加触发器和操作之前,它不会执行任何操作。
从工作流列表中,选择该空白有状态工作流。
在工作流菜单上的“开发人员”下,选择“设计器” 。
设计器界面显示了选择触发操作的提示。 默认情况下,提示已选择,以便具有可用触发器的窗格已显示打开。
现在,添加用于启动工作流的触发器。
添加触发器
此示例工作流从名为“收到 HTTP 请求时”的内置请求触发器开始。 此触发器会创建一个终结点,其他服务或逻辑应用工作流可以调用该终结点,并等待这些入站调用或请求到达。 内置操作以本机方式运行,直接在 Azure 逻辑应用运行时中运行。
在工作流设计器中,确保空白工作流处于打开状态,并且在设计器界面上选中了“添加触发器”提示。
使用“请求”作为搜索词,按照以下步骤将名为“收到 HTTP 请求时”的内置请求触发器添加到工作流。
当触发器出现在设计器上时,触发器的信息窗格会打开,显示触发器的属性、设置和其他操作。
保存工作流。 在设计器工具栏上选择“保存”。
首次保存工作流时,如果工作流是通过请求触发器启动的,则 Azure 逻辑应用会自动为请求触发器创建的终结点生成 URL。 稍后,在你测试工作流时,将向此 URL 发送请求,这会激发触发器并启动工作流运行。
添加操作
此示例工作流继续使用名为“发送电子邮件”的 Office 365 Outlook 托管连接器操作。 托管连接器操作在 Azure 中运行,而不是在本机运行,它直接在 Azure 逻辑应用运行时上运行。
在设计器上已添加的触发器下,选择加号 (+) >“添加操作”。
此时会打开“添加操作”窗格,供你选择下一个操作。
通过使用 office 发送电子邮件作为搜索词,按照以下步骤将名为“发送电子邮件 (V2)”的 Office 365 Outlook 操作添加到工作流。
在操作的信息窗格的“创建连接”选项卡上,选择“登录”,以便可以创建与电子邮件帐户的连接。
当系统提示你访问电子邮件帐户时,请使用你的帐户凭据登录。
注意
如果收到错误消息 “失败,出现错误:‘浏览器已关闭。’。请重新登录”,请检查浏览器是否阻止第三方 Cookie。 如果这些 cookie 被阻止,请尝试将 https://portal.azure.cn 添加到可以使用 cookie 的站点列表。 如果使用的是 incognito 模式,请确保在该模式下工作时不会阻止第三方 cookie。
如有必要,请重新加载页面,打开你的工作流,再次添加电子邮件操作,然后尝试创建连接。
在 Azure 创建连接后,“发送电子邮件”操作将显示在设计器上,并且默认情况下处于选中状态。 如果未选择该操作,请选择,以便其信息窗格也打开。
在操作信息窗格的“参数”选项卡上,提供操作所需的信息,例如:
属性 需要 值 说明 To 是 <your-email-address> 电子邮件收件人,这可以是你自己的电子邮件地址(用于测试)。 此示例使用虚构的电子邮件 sophiaowen@fabrikam.com。 主题 是 来自示例工作流的电子邮件 电子邮件主题 正文 是 来自示例工作流的 Hello! 电子邮件正文内容 注意
在信息窗格的“设置”、“静态结果”或“随后运行”选项卡上进行任何更改时,请确保在切换选项卡或将焦点更改为设计器之前选择“完成”以提交这些更改。 否则,设计器不会保留所做的更改。
保存工作流。 在设计器工具栏上选择“保存”。
如果你的环境具有限制流量的严格网络要求或防火墙,则必须为工作流中存在的任何触发器或操作连接设置权限。 若要查找完全限定的域名,请查看查找用于防火墙访问的域名。
否则,若要测试工作流,请手动触发运行。
从设计器中删除项
若要从设计器中删除工作流中的某个项,请执行以下任一步骤:
选择该项,打开该项的快捷菜单 (Shift + F10),然后选择“删除”。 若要确认,请选择“确定”。
选择该项,然后按 Delete 键。 若要确认,请选择“确定”。
选择该项,以便为其打开信息窗格。 在窗格的右上角,打开省略号 ( ... ) 菜单,然后选择“删除”。 若要确认,请选择“确定”。
提示
如果省略号菜单不可见,请充分扩展浏览器窗口,以便使信息窗格在右上角显示省略号(...)按钮。
查找用于防火墙访问的域名
在 Azure 门户中部署逻辑应用并运行工作流之前,如果你的环境具有限制流量的严格网络要求或防火墙,则必须为逻辑应用中存在的工作流中的任何触发器或操作连接设置网络或防火墙权限。
若要查找逻辑应用和工作流所使用的入站和出站 IP 地址,请执行以下步骤:
在逻辑应用菜单的“设置”下,选择“网络” 。
在“网络”页上,查找并查看“入站流量”和“出站流量”部分 。
若要查找用于连接的完全限定的域名 (FQDN),请执行以下步骤:
在逻辑应用菜单上的“工作流”下,选择“连接”。 在“API 连接”选项卡上,选择连接的资源名称,例如:
充分扩展浏览器的宽度,以便在浏览器的右上角出现“JSON 视图”时,选择“JSON 视图”。
复制 connectionRuntimeUrl 属性值并将其保存到安全位置,以便可以使用此信息设置防火墙。
对于每个连接,重复相关步骤。
触发工作流
在此示例中,工作流在请求触发器收到入站请求时运行,该请求将发送到触发器所创建的终结点的 URL。 首次保存工作流时,Azure 逻辑应用自动生成了此 URL。 因此,你需要找到此 URL,然后才能发送此请求来触发工作流。
在工作流设计器上,选择名为“当收到 HTTP 请求时”的请求触发器。
在信息窗格打开后,在“参数”选项卡上找到“HTTP POST URL”属性。 若要复制生成的 URL,请选择“复制 URL”(“复制文件”图标),并暂时将 URL 保存到其他位置。 此 URL 遵循以下格式:
https://<*logic-app-name*>.chinacloudsites.cn:443/api/<*workflow-name*>/triggers/manual/invoke?api-version=2020-05-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=<*shared-access-signature*>
对于此示例,URL 如下所示:
https://fabrikam-workflows.chinacloudsites.cn:443/api/Fabrikam-Stateful-Workflow/triggers/manual/invoke?api-version=2020-05-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=xxxxxXXXXxxxxxXXXXxxxXXXXxxxxXXXX
提示
还可以在逻辑应用的“概览”窗格中的“工作流 URL”属性中找到终结点 URL。
- 在资源菜单中,选择“概述”。
- 在“概述”窗格中,找到“工作流 URL”属性。
- 若要复制终结点 URL,请将指针移到“终结点 URL”文本的末尾,然后选择“复制到剪贴板”(“复制文件”图标)。
若要测试终结点 URL 并触发工作流,请使用 HTTP 请求工具及其说明将 HTTP 请求发送到 URL,包括“请求”触发器所需的方法。
此示例使用 GET 方法与复制的 URL 配合使用,如以下示例所示:
GET https://fabrikam-workflows.chinacloudsites.cn:443/api/Fabrikam-Stateful-Workflow/triggers/manual/invoke?api-version=2020-05-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=xxxxxXXXXxxxxxXXXXxxxXXXXxxxxXXXX
当触发了触发器时,示例工作流将运行,并发送类似于以下示例的电子邮件:
查看工作流运行历史记录
有状态工作流运行完成后,你可以查看工作流的运行历史记录,包括整个运行的状态、触发器的状态,以及每个操作的状态及其输入和输出。 在 Azure 门户中,工作流运行历史记录和触发器历史记录显示在工作流级别,而非逻辑应用资源级别。 有关详细信息,请参阅查看工作流运行历史记录和查看触发器历史记录。
对于此示例工作流,工作流运行历史记录类似于以下示例:
查看触发器历史记录
对于有状态工作流,你可以独立于工作流运行历史记录查看每个运行的触发器历史记录,包括触发器状态以及输入和输出。 在 Azure 门户中,触发器历史记录和运行历史记录显示在工作流级别,而非逻辑应用级别。 有关详细信息,请参阅查看触发器历史记录。
使用相同的输入重新提交工作流运行
对于现有有状态工作流运行,可以使用以前用于该运行的相同输入重新运行整个工作流。 有关详细信息,请参阅使用相同的输入重新运行工作流。
为无状态工作流启用运行历史记录
若要更轻松地调试某个无状态工作流,可以为该工作流启用运行历史记录,并在完成后禁用运行历史记录。 对于 Azure 门户,请按照下面的步骤操作;如果使用的是 Visual Studio Code,请参阅在 Visual Studio Code 中创建有状态和无状态工作流。
在 Azure 门户中,打开你的标准逻辑应用资源。
在逻辑应用菜单上的“设置”下,选择“配置” 。
在“应用程序设置”选项卡上,选择“新建应用程序设置” 。
在“添加/编辑应用程序设置”窗格上的“名称”框中,输入此操作选项名称:
Workflows.{yourWorkflowName}.OperationOptions
在“值”框中,输入以下值:WithStatelessRunHistory
若要完成此任务,请选择“确定”。 在“配置”窗格工具栏上,选择“保存”。
要在完成时禁用运行历史记录,请将名为 .{your-workflow-name}.OperationOptions 的属性设置为 无,或者删除该属性及其值。
在部署后启用或打开 Application Insights
在工作流运行过程中,你的逻辑应用会发出遥测数据以及其他事件。 使用此遥测数据可以更好地了解工作流的运行情况以及逻辑应用运行时如何以各种方式工作。 你可以使用 Application Insights 来监视工作流,该工具可提供近乎实时的遥测数据(实时指标)。 使用该数据来诊断问题、设置警报和构建图表时,此功能可帮助你更轻松地调查失败和性能问题。
如果逻辑应用的创建和部署设置支持使用 Application Insights,则可以选择为逻辑应用工作流启用诊断日志记录和跟踪。 你可以在从 Microsoft Azure 门户中创建逻辑应用时或在部署后执行此操作。 你需要有一个 Application Insights 实例,但你可以在创建逻辑应用时提前创建此资源,或在部署后创建此资源。 还可以选择在 Application Insights 中为标准工作流启用增强型遥测。
在已部署的逻辑应用上启用 Application Insights
在 Azure 门户中,找到你的已部署逻辑应用。
在逻辑应用菜单上,在“设置”下,选择“Application Insights” 。
在 Application Insights 窗格中,选择“启用 Application Insights”。
在窗格更新后,选择底部的“应用”>“是” 。
在 Application Insights 窗格中,选择“查看 Application Insights 数据”。
Application Insights 仪表板打开后,可以查看逻辑应用工作流的指标或日志。 例如,若要绘制数据图表或查询数据,请在 Application Insights 资源菜单上的“监视”下,选择“指标”或“日志”。
打开 Application Insights
在 Azure 门户中,找到你的已部署逻辑应用。
在逻辑应用菜单上,在“设置”下,选择“Application Insights” 。
在 Application Insights 窗格中,选择“查看 Application Insights 数据”。
Application Insights 仪表板打开后,可以查看逻辑应用工作流的指标或日志。 例如,若要绘制数据图表或查询数据,请在 Application Insights 资源菜单上的“监视”下,选择“指标”或“日志”。
查看连接
在工作流中使用 Azure 管理的连接器或基于服务提供商的内置连接器创建连接时,这些连接实际上是独立的 Azure 资源,有自己的资源定义。
停止或启动逻辑应用资源
按照“禁用或启用逻辑应用”中的步骤操作。
解决问题和错误
对于以前创建的工作流,设计器选取器中缺少新的触发器和操作
单租户 Azure 逻辑应用支持将内置操作用于 Azure 函数操作、Liquid 操作和 XML 操作(例如 XML 验证和转换 XML) 。 但是,对于之前创建的逻辑应用,如果逻辑应用使用过时版本的扩展捆绑包 Microsoft.Azure.Functions.ExtensionBundle.Workflows,这些操作可能不会出现在设计器中供你选择。
若要解决此问题,请按照以下步骤删除过时的版本,以便扩展捆绑包可以自动更新到最新版本。
注意
此特定解决方案仅适用于使用 Azure 门户创建的标准逻辑应用资源,不适用于使用 Visual Studio Code 和 Azure 逻辑应用(标准版)扩展创建并部署的逻辑应用。 请参阅 Visual Studio Code 中的设计器缺少受支持的触发器和操作。
在 Azure 门户中,停止你的逻辑应用。
在逻辑应用菜单中,选择“概述”。
在“概述”窗格的工具栏上,选择“停止”。
在逻辑应用菜单上的“开发工具”下,选择“高级工具”。
在“高级工具”窗格上,选择“转到”,这将为你的逻辑应用打开 Kudu 环境。
在 Kudu 工具栏上,打开“调试控制台”菜单,并选择“CMD”。
此时将打开一个控制台窗口,以便你可以使用命令提示符浏览到捆绑包文件夹。 另外,你可以浏览控制台窗口上方显示的目录结构。
浏览到以下文件夹,其中包含现有捆绑包的带版本号的文件夹:
...\home\data\Functions\ExtensionBundles\Microsoft.Azure.Functions.ExtensionBundle.Workflows
删除现有捆绑包的版本文件夹。 在控制台窗口中,可以运行以下命令,将 {bundle-version} 替换为现有版本:
rm -rf {bundle-version}
例如:
rm -rf 1.1.3
提示
如果收到 “权限被拒” 或 “文件正在使用” 之类的错误,请在浏览器中刷新页面,并重新尝试之前的步骤,直到该文件夹删除。
在 Azure 门户中,返回到你的逻辑应用的“概述”页,然后选择“重启”。
门户将自动获取并使用最新的捆绑包。