你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本教程介绍如何将应用服务应用与业务流程相集成。 Web 应用方案经常使用此类操作,例如:
- 发送交易确认电子邮件
- 将用户添加到 Facebook 组
- 连接到 SAP、Salesforce 等第三方系统
- 交换标准的 B2B 消息
在本教程中,你将在应用服务应用中使用 Azure 逻辑应用通过 Gmail 发送电子邮件。 还可以通过其他方式(例如,语言框架提供的 SMTP 配置)从 Web 应用发送电子邮件。 但是,Azure 逻辑应用可为应用服务应用带来更多强大功能,且不会增大代码的复杂性。 Azure 逻辑应用为最常见的业务集成提供简单的配置界面,应用随时可以使用 HTTP 请求来调用它们。
先决条件
将采用所选语言框架的某个应用部署到应用服务。 若要遵循教程部署示例应用,请参阅:
创建逻辑应用
在 Azure 门户中,按照创建示例消耗型工作流中的说明,创建消耗型逻辑应用资源。 当包含常见触发器和模板库的页面打开时,返回到本教程。
在“从常用触发器开始”部分下,选择名为“收到 HTTP 请求时”的触发器。
在触发器信息框中,选择“使用示例有效负载生成架构”。
将以下示例 JSON 复制到文本框中,然后选择“完成”。
{ "task": "<description>", "due": "<date>", "email": "<email-address>" }
随即会为所需的请求数据生成架构。 在实践中,可以仅捕获应用程序代码生成的实际请求数据,并让 Azure 为你生成 JSON 架构。
在工作流设计器工具栏上,选择“保存”。
现在可以查看 HTTP 请求触发器的 URL。 选择“复制”图标以复制该 URL 供稍后使用。
此 HTTP 请求定义是要在此逻辑应用工作流中执行的任何操作(通过 Gmail 发送电子邮件或其他任何操作)的触发器。 稍后你将在应用服务应用中调用此 URL。 有关请求触发器的详细信息,请参阅 HTTP 请求/响应参考。
在触发器下,选择“新建步骤”。 在“选择操作”搜索框中,选择“所有” 。
在搜索框中输入“Gmail”。 找到并选择名为“发送电子邮件 (V2)”的操作。
提示
可以搜索其他类型的集成,例如 SendGrid、MailChimp、Microsoft 365 和 SalesForce。 有关详细信息,请查看适用于 Azure 逻辑应用的托管连接器。
在 Gmail 操作中,选择“登录”以验证对要从中发送电子邮件的 Gmail 帐户的访问权限。
登录后,在“收件人”框内选择,这会自动打开动态内容列表。 在此列表中,在“收到 HTTP 请求时”操作的旁边,选择“查看更多”。
现在,应会看到前面使用的示例 JSON 数据中的三个属性。 此步骤使用 HTTP 请求中的这些属性来构造电子邮件。
对于“收件人”字段值,请选择“电子邮件”。 如果需要,请选择“添加动态内容”来关闭动态内容列表。
在“添加新参数”列表中,选择“主题”和“正文”。
在“主题”框中选择,以同样的方式选择“任务”。 在光标仍处于“主题”框中时,键入“已创建”。
在“正文”框中选择,以同样的方式选择“到期时间”。 将光标移到“到期时间”的左侧,键入“此工作项的到期时间”。
提示
如果要直接在电子邮件正文中编辑 HTML 内容,请在设计器工具栏上选择“代码视图”。 确保你保留动态内容代码即可(例如
@{triggerBody()?['due']}
)接下来,将异步 HTTP 响应添加到 HTTP 触发器。 在 HTTP 触发器与 Gmail 操作之间,选择“+”符号,然后选择“添加并行分支”。
在搜索框中搜索“响应”,然后选择“响应”操作。
默认情况下,响应操作会发送 HTTP 200。 这对于本教程而言已足够。 有关详细信息,请参阅 HTTP 请求/响应参考。
在设计器工具栏上,再次选择“保存”。
将 HTTP 请求代码添加到应用
确保已复制前面看到的 HTTP 请求触发器 URL。 此 URL 包含敏感信息,因此最好不要直接将其放入代码中。 在应用服务中,可以使用应用设置将其作为环境变量进行引用。
在 Cloud Shell 中,使用以下命令创建应用设置(请替换 <app-name>、<resource-group-name> 和 <logic-app-url>):
az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings LOGIC_APP_URL="<your-logic-app-url>"
在代码中,将适用于你的语言框架的任何 HTTP 客户端语言与以下配置配合使用,向该 URL 发出标准的 HTTP POST 请求:
请求正文包含提供给逻辑应用的相同 JSON 格式:
{ "task": "<description>", "due": "<date>", "email": "<email-address>" }
请求包含标题
Content-Type: application/json
。若要优化性能,在可能的情况下,请以异步方式发送请求。
选择下面的首选语言/框架选项卡查看示例。
在 ASP.NET 中,可以使用 System.Net.Http.HttpClient 类发送 HTTP POST 请求。 例如:
// requires using System.Net.Http;
var client = new HttpClient();
// requires using System.Text.Json;
var jsonData = JsonSerializer.Serialize(new
{
email = "a-valid@emailaddress.com",
due = "4/1/2020",
task = "My new task!"
});
HttpResponseMessage result = await client.PostAsync(
// requires using System.Configuration;
ConfigurationManager.AppSettings["LOGIC_APP_URL"],
new StringContent(jsonData, Encoding.UTF8, "application/json"));
var statusCode = result.StatusCode.ToString();
如果在教程:使用 SQL 数据库在 Azure 中生成 ASP.NET 应用的示例应用中测试此代码,可以在添加 Todo
项后,使用该代码在 Create 操作中发送电子邮件确认。 若要使用上述异步代码,请将 Create 操作转换为异步操作。