你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
教程:使用 Azure 逻辑应用创建基于计划的自动化工作流
适用于:Azure 逻辑应用(消耗)
本教程介绍如何构建一个按重复计划运行的示例逻辑应用工作流。 具体而言,此示例工作流将在每个工作日的早晨运行,检查两个地点之间的行程时间,包括交通情况。 如果该时间超过特定的限制,该工作流会向你发送一封电子邮件,其中包括到达目的地所需的行程时间和额外时间。 该工作流包括各种步骤,这些步骤从基于计划的触发器开始,后跟必应地图操作、数据操作、控制流操作和电子邮件通知操作。
在本教程中,你将了解如何执行以下操作:
- 创建一个空白逻辑应用和工作流。
- 添加一个“重复”触发器,用于指定运行工作流的计划。
- 添加一个必应地图操作用于获取路线的行程时间。
- 添加一个操作用于创建变量、将行程时间从秒转换为分钟,并将结果存储在变量中。
- 添加一个条件,将行程时间与指定的限制进行比较。
- 添加一项操作,在行程时间超过限制的情况下发送电子邮件。
完成后,工作流类似于以下简要示例:
先决条件
Azure 帐户和订阅。 如果没有订阅,可以注册免费的 Azure 帐户。
Azure 逻辑应用支持的电子邮件提供程序(例如 Office 365 Outlook、Outlook.com 或 Gmail)提供的电子邮件帐户。 至于其他提供商,请查看此处的连接器列表。 本快速入门通过工作或学校帐户使用 Office 365 Outlook。 如果你使用其他电子邮件帐户,则常规步骤保持不变,但 UI 可能稍有不同。
重要
如果你要使用 Gmail 连接器,只有 G-Suite 商业帐户可以在逻辑应用工作流中不受限制地使用此连接器。 如果有 Gmail 用户帐户,则只能将此连接器与 Google 批准的特定服务一起使用,也可以创建用于通过 Gmail 连接器进行身份验证的 Google 客户端应用。 有关详细信息,请参阅 Azure 逻辑应用中 Google 连接器的数据安全和隐私策略。
若要获取路线的行程时间,需要必应地图 API 的访问密钥。 若要获取此密钥,请执行如何获取必应地图密钥中的步骤。
如果工作流需要通过仅限流量流经特定 IP 地址的防火墙进行通信,则该防火墙需要允许访问该逻辑应用资源所在的 Azure 区域中的 Azure 逻辑应用使用的入站和出站 IP 地址。 如果工作流还使用托管连接器(例如 Office 365 Outlook 连接器或 SQL 连接器),或使用自定义连接器,则防火墙还需要允许访问逻辑应用资源所在的 Azure 区域中的所有托管连接器出站 IP 地址。
创建消耗逻辑应用工作流
在 Azure 门户中,使用 Azure 帐户登录。
在 Azure 主页上,选择“创建资源”。
在“Azure 市场”菜单上,选择“集成”>“逻辑应用”。
在“创建逻辑应用”窗格中的“基本信息”选项卡上,提供有关你的逻辑应用资源的以下信息。
属性 必须 值 说明 订阅 是 <Azure-subscription-name> Azure 订阅名称。 此示例使用“即用即付”。 资源组 是 LA-TravelTime-RG 你在其中创建逻辑应用资源和相关资源的 Azure 资源组。 此名称在各个区域中必须唯一,并且只能包含字母、数字、连字符 ( -
)、下划线 (_
)、括号((
、)
)和句点 (.
)。名称 是 LA-TravelTime 逻辑应用资源名称,在各个区域中必须唯一,并且只能包含字母、数字、连字符 ( -
)、下划线 (_
)、括号((
、)
)和句点 (.
)。在继续做出选择之前,请转到“计划”部分。 对于“计划类型”,请选择“消耗”,以便仅显示在多租户 Azure 逻辑应用中运行的消耗逻辑应用工作流的设置。
“计划类型”属性还指定要使用的计费模型。
计划类型 说明 标准 此逻辑应用类型是默认选择,在单租户 Azure 逻辑应用中运行,并使用标准计费模型。 消耗 此逻辑应用类型在全局多租户 Azure 逻辑应用中运行,并使用消耗计费模型。 现在继续进行以下选择:
属性 必须 值 说明 区域 是 美国西部 用于存储应用信息的 Azure 数据中心区域。 此示例将示例逻辑应用部署到 Azure 中的美国西部区域。
注意:如果你的订阅与集成服务环境相关联,则此列表包括这些环境。启用日志分析 是 否 此选项仅在选择“消耗”逻辑应用类型时出现。 只在要启用诊断日志记录时,才更改此选项。 对于本教程,请保留默认选择。 完成操作后,选择“查看 + 创建”。 在 Azure 验证你的逻辑应用资源的相关信息后,请选择“创建”。
在 Azure 部署应用后,选择“转到资源”。
Azure 会打开工作流模板选择窗格,其中显示了简介视频、常用触发器和工作流模板模式。
向下滚动,越过视频和常用触发器部分,找到“模板”部分,然后选择“空白逻辑应用”。
接下来,添加根据指定计划运行工作流的 Recurrence 触发器。 每个工作流必须从触发器开始,在发生特定事件或新数据符合特定条件的情况下触发。 有关更多信息,请参阅在多租户 Azure 逻辑应用中创建“消耗”逻辑应用工作流。
添加重复触发器
在工作流设计器中的搜索框下,选择“内置”。
在搜索框中输入“重复”,然后选择名为“重复”的触发器。
在“重复”形状中选择省略号 ( ... ) 按钮,然后选择“重命名”。 重命名触发器并提供以下说明:
Check travel time every weekday morning
在触发器中更改这些属性,如此处所述和所示。
属性 必须 值 说明 时间间隔 是 1 在两次检查之间需等待的时间间隔数 频率 是 Week 用于定期触发的时间单位 在“间隔”和“频率”下,打开“添加新参数”列表,然后选择要添加到触发器的这些属性。
- 在这些日期
- 在这些小时
- 在这些分钟
现在,按此处所示和所述设置其他属性的值。
属性 值 说明 在这些日期 星期一、星期二、星期三、星期四、星期五 只有将“频率”设置为“周”时,此设置才可用。 在这些小时 7、8、9 只有将“频率”设置为“周”或“天”时,此设置才可用。 对于此定期,请选择一天中的某些小时。 此示例在 7
、8
和9
点运行。在这些分钟 0、15、30、45 只有将“频率”设置为“周”或“天”时,此设置才可用。 对于此定期,请选择一天中的某些分钟。 此示例在零点启动,每隔 15 分钟运行一次。 此触发器在每个工作日每隔 15 分钟触发一次,开始时间为早晨 7:00,结束时间为早晨 9:45。 “预览”框显示定期触发计划。 有关详细信息,请参阅计划任务和工作流以及工作流操作和触发器。
若要立即隐藏触发器的详细信息,请在形状的标题栏内单击以折叠形状。
保存工作流。 在设计器工具栏上选择“保存”。
你的逻辑应用工作流现已位于 Azure 门户中,但除了根据指定的计划触发之外,它不会执行任何操作。 因此,请添加一项在触发器触发时进行响应的操作。
获取路线的行程时间
有了触发器以后,即可添加操作,用于获取两个地点之间的行程时间。 Azure 逻辑应用提供适用于必应地图 API 的连接器,以方便你获取此信息。 在开始此任务之前,请确保有必应地图 API 密钥,如本教程的先决条件部分所述。
在工作流设计器中的“重复”触发器下,选择“新建步骤”。
在“选择操作”下,选择“标准”。 在搜索框中输入“必应地图”,然后选择名为“获取路线”的操作。
如果没有必应地图连接,系统会提示创建一个连接。 提供如下所示和所述的连接详细信息,然后选择“创建”。
属性 必须 值 说明 连接名称 是 BingMapsConnection 提供连接的名称。 本示例使用 BingMapsConnection
。API 密钥 是 <Bing-Maps-API-key> 输入你之前收到的必应地图 API 密钥。 如果没有必应地图密钥,请了解如何获取密钥。 重命名此操作并提供以下说明:
Get route and travel time with traffic
。在操作中,打开“添加新参数”列表,然后选择这些属性。
- 优化
- 距离单位
- 旅行模式
现在输入属性的值,如此处所示和所述。
属性 必须 值 说明 路标 1 是 <start-location> 你的路线的起点。 此示例指定了一个示例起始地址。 路标 2 是 <end-location> 你的路线的终点。 此示例指定了一个示例终点地址。 优化 否 timeWithTraffic 一个参数,用于优化路线,例如距离、当前交通状况下的行程时间,等等。 选择参数值 timeWithTraffic。 距离单位 否 <your-preference> 路线的距离单位。 此示例使用“英里”作为单位。 旅行模式 否 驾车 路线的旅行模式。 选择“驾车”模式。 有关这些参数和值的详细信息,请参阅计算路线。
在设计器工具栏上选择“保存”。
接下来创建一个变量,以便将当前的行程时间转换为分钟而非秒,然后将其存储。 这样即可避免重复转换,可以在后面的步骤中更方便地使用该值。
创建用于存储行程时间的变量
有时候,可能需要对工作流中的数据运行操作,再在以后的操作中使用相关结果。 若要保存这些结果,方便以后重复使用或引用,可以创建变量来存储这些处理后的结果。 只能在工作流的顶层创建变量。
默认情况下,“获取路线”操作通过“旅行期间交通”属性返回特定交通状况下的当前行程时间(以秒为单位)。 将该值改为转换为分钟并进行存储以后,该值在以后就会更易于重复使用,不需再次转换。
在设计器上的“获取路线”操作下,选择“新建步骤”。
在“选择操作”下,选择“内置”。 在搜索框中输入“变量”,然后选择名为“初始化变量”的操作。
重命名此操作并提供以下说明:
Create variable to store travel time
为你的变量提供此信息,如此表和表下方的步骤所示:
properties 必须 值 说明 名称 是 travelTime 变量的名称。 本示例使用 travelTime
。类型 是 Integer 变量的数据类型 值 否 一个表达式,可将当前的行程时间从秒转换为分钟(参见此表下面的步骤)。 变量的初始值 若要创建“值”属性的表达式,请单击该框,使动态内容列表显示。 必要时可扩大浏览器,直至动态列表显示。 在动态内容列表中,选择“表达式”,这将显示表达式编辑器。
动态内容列表显示以前的操作的输出,你可以选择这些输出作为工作流中后续操作的输入。 动态内容列表包括一个表达式编辑器,你可以使用该编辑器来选择在表达式中执行操作的函数。 此表达式编辑器仅显示在动态内容列表中。
在表达式编辑器中,输入此表达式:
div(,60)
在表达式内,将光标置于左括号 ( ( ) 与逗号 ( , ) 之间,并选择“动态内容”。
在动态内容列表中,选择属性值“旅行期间交通”。
在表达式中解析属性值后,选择“确定”。
“值”属性现在如下所示:
保存工作流。 在设计器工具栏上选择“保存”。
接下来添加一个条件,检查当前的行程时间是否长于特定的限制。
将行程时间与限制进行比较
在“创建变量以存储旅行时间”操作下,选择“新建步骤”。
在“选择操作”下,选择“内置”。 在搜索框中输入“条件”。 从操作列表中,选择名为“条件”的操作。
重命名条件并提供以下说明:
If travel time exceeds limit
生成一个条件,用于检查 travelTime 属性值是否超过指定的限制,如下所示:
在条件中,单击条件左侧的“选择值”框。
从显示的动态内容列表中的“变量”下,选择名为 travelTime 的属性。
在中间的比较框中,选择名为“大于”的运算符。
在条件右侧的“选择值”框中输入以下限制:
15
完成后,条件如以下示例所示:
保存工作流。 在设计器工具栏上选择“保存”。
接下来,添加在行程时间超出限制时需运行的操作。
在超出限制时发送电子邮件
现在,添加一个操作,用于在旅行时间超出限制时向你发送电子邮件。 该电子邮件包括当前的行程时间以及行完指定的路线所需的额外时间。
在条件的 True 分支中,选择“添加操作”。
在“选择操作”下,选择“标准”。 在搜索框中输入“发送电子邮件”。 此列表会返回许多结果,因此请首先选择所需的电子邮件连接器,以便对列表进行筛选。
例如,如果你有一个 Outlook 电子邮件帐户,请选择适用于你的帐户类型的连接器:
- 对于 Azure 工作或学校帐户,请选择“Office 365 Outlook”。
- 对于个人 Microsoft 帐户,请选择“Outlook.com”。
本示例接下来选择 Office 365 Outlook。
显示连接器的操作后,选择发送电子邮件的操作,例如:
如果还没有连接,请在系统提示时登录并验证对你的电子邮件帐户的访问权限。
Azure 逻辑应用创建到电子邮件帐户的连接。
重命名操作并提供以下说明:
Send email with travel time
对于“收件人”属性,输入收件人的电子邮件地址。 为进行测试,可以使用你的电子邮件地址。
对于“主题”属性,通过执行以下步骤指定电子邮件的主题,并包括 travelTime 变量:
输入带尾随空格的文本
Current travel time (minutes):
。 将光标置于“主题”框中,使动态内容列表保持打开状态。从动态内容列表的“变量”标题中选择“查看更多”,以便显示名为 travelTime 的变量。
注意
动态内容列表不会自动显示 travelTime 变量,因为“主题”属性需要字符串值,而 travelTime 是整数值。
对于“正文”属性,请按照以下步骤指定电子邮件正文的内容:
输入带尾随空格的文本
Add extra travel time (minutes):
。 将光标置于“正文”框中,使动态内容列表保持打开状态。在动态内容列表中,选择“表达式”,这将显示表达式编辑器。
在表达式编辑器中输入“sub(,15)”,以便计算超出限制的分钟数:
在表达式内,将光标置于左括号 ( ( ) 与逗号 ( , ) 之间,并选择“动态内容”。
在“变量”下选择“travelTime”。
在表达式中解析属性后,选择“确定”。
“正文”属性现在如下所示:
保存工作流。 在设计器工具栏上选择“保存”。
接下来,测试并运行你的工作流,它现在看起来类似于以下示例:
运行工作流
若要手动启动工作流,请在设计器工具栏中选择“运行触发器”>“运行”。
如果当前的行程时间始终没有超出限制,则工作流不会执行任何其他操作,而是等待下一个间隔,然后重新检查。
如果当前的行程时间超出限制,则会收到一封电子邮件,其中包含当前的行程时间以及超出限制的分钟数。 下面是工作流发送的示例电子邮件:
提示
如果没有收到任何电子邮件,请检查电子邮件的垃圾邮件文件夹。 垃圾电子邮件筛选器可能会将这些类型的邮件重定向。 否则,如果你不确定工作流是否正常运行,请参阅排查工作流问题。
祝贺!你现已创建并运行基于计划的重复工作流。
若要创建其他使用“重复”触发器的工作流,请查看以下模板,这些模板在你创建新的逻辑应用资源之后可供使用:
- 获取发送给你的每日提醒。
- 删除较旧的 Azure Blob。
- 将消息添加到 Azure 存储队列中。
清理资源
你的工作流将继续运行,直到你禁用或删除逻辑应用资源。 不再需要示例工作流时,请删除包含逻辑应用资源和相关资源的资源组。
在 Azure 门户的搜索框中,输入你创建的资源组的名称。 从结果中的“资源组”下,选择该资源组。
此示例创建一个名为
LA-TravelTime-RG
的资源组。提示
如果 Azure 主页在“最近的资源”下显示了该资源组,则可以从主页中选择该组。
在资源组菜单上,检查是否已选中“概览”。 在“概览”窗格的工具栏上,选择“删除资源组”。
出现确认窗格时,输入资源组名称,然后选择“删除”。
后续步骤
在本教程中,你创建了一个逻辑应用工作流,用于根据指定的计划(在工作日早晨)检查交通状况,并在行程时间超出指定的限制时采取措施(发送电子邮件)。 接下来,请了解如何通过集成 Azure 服务、Microsoft 服务和其他软件即服务 (SaaS) 应用来构建一个工作流,用于发送邮件列表请求以供审批。