你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本教程介绍如何使用 Azure 逻辑应用将应用服务应用与业务流程集成。 创建一个逻辑应用,通过 Gmail 从 Azure 应用服务应用发送电子邮件。
可通过其他方法从 Web 应用发送电子邮件,例如在语言框架中使用简单邮件传输协议(SMTP)配置。 但是,逻辑应用为许多业务集成提供了简单的配置界面,无需为代码添加复杂性。
可以使用本教程中演示的步骤来实现多个常见的 Web 应用方案,例如:
- 正在发送交易确认邮件。
- 将用户添加到 Facebook 组。
- 连接到 SAP 和 Salesforce 等外部系统。
- 交换标准 B2B 消息。
先决条件
必须具备以下先决条件才能完成本教程:
Gmail 帐户。
有权创建资源的 Azure 帐户。
采用所选语言部署的 Azure 应用服务应用。 可以从以下教程之一使用示例应用:
创建逻辑应用
按照“创建消耗型逻辑应用资源”中的说明,在 Azure 逻辑应用 中创建多租户消耗型应用。 创建应用后,选择“ 转到资源”。
在逻辑应用页上,在左侧导航菜单中的“开发工具”下选择“逻辑应用设计器”。
添加触发器
在逻辑应用设计器画布上选择 “添加触发器 ”。
在“内置工具”下的“添加触发器”屏幕上,选择“请求”,然后在下一个屏幕上选择“收到 HTTP 请求时”。
该触发器会显示在设计器画布上。
在 “收到 HTTP 请求时 ”屏幕上,选择 “使用示例有效负载生成架构”。
将以下代码粘贴到 输入或粘贴示例 JSON 负载 屏幕中,然后选择 完成。
{ "task": "<description>", "due": "<date>", "email": "<email-address>" }Azure 为输入的请求数据生成架构。 在实践中,可以从应用程序代码捕获实际请求数据,并使用它生成 JSON 架构。
在逻辑应用设计器顶部工具栏上,选择“ 保存”。
生成的 HTTP URL 现在显示在“收到 HTTP 请求时”屏幕上的 HTTP URL 下。 选择复制图标以复制 URL 以供以后使用。
HTTP 请求定义可作为此逻辑应用工作流中你想要执行的任何操作的触发器,例如发送邮件。 稍后将在应用服务应用中调用此 URL。 有关请求触发器的详细信息,请参阅 接收并响应发送到 Azure 逻辑应用 中工作流的入站 HTTPS 调用。
创建电子邮件
添加一个发送电子邮件操作,并用您之前输入的三个 HTTP 请求属性填充该电子邮件。
在设计器画布上,选择触发器下方的 +,然后选择 添加操作。
在“添加操作”页面上,在搜索框中输入gmail,然后选择“发送电子邮件 (V2)”。
提示
可以搜索其他类型的集成,例如 SendGrid、MailChimp、Microsoft 365 和 SalesForce。 有关详细信息,请查看适用于 Azure 逻辑应用的托管连接器。
在“ 创建连接 ”屏幕上,选择 “登录 ”,对要从中发送电子邮件的 Gmail 帐户的访问权限进行身份验证。
登录后,在“发送电子邮件”(V2)屏幕上的“To”字段中选择以显示动态内容图标。 选择图标的上部闪电部分。
此时会显示动态内容列表,其中显示了前面输入的三个 HTTP 请求属性。 从列表中选择 电子邮件 。
在 “发送电子邮件”(V2) 屏幕上, 电子邮件 项将显示在“ To” 字段中。 在 “高级参数”下下拉列表,然后选择 “主题 和 正文”。
“ 主题 ”和 “正文 ”字段显示在 “发送电子邮件”(V2) 屏幕上。 在 “主题” 字段中选择以显示动态内容图标,然后从动态内容列表中选择 任务 。
在主题字段中,在task后面输入一个空格,然后输入created。
在 “正文 ”字段中选择,显示动态内容列表,然后选择 “截止日期”。
在 正文 字段中,将光标移到 due 前面,然后输入 This work item is due on,并在后面加一个空格。
添加响应
向 HTTP 触发器添加异步 HTTP 响应。
在设计器画布上,选择位于 HTTP 请求触发器与 Gmail 操作之间的 +,然后选择 添加并行分支。
在添加操作界面上,在搜索字段中输入response,然后选择响应。
默认情况下,响应操作会发送一个
HTTP 200,这对于本教程来说已经足够了。 有关详细信息,请参阅 接收并响应发送到 Azure 逻辑应用 中工作流的入站 HTTPS 调用。在逻辑应用设计器工具栏上选择“ 保存 ”。
将 HTTP 请求代码添加到应用服务应用
应避免将敏感信息(如请求触发器 URL)直接放入应用服务应用代码中。 相反,可以从应用服务应用设置中将 URL 引用为环境变量。 以下命令会创建一个名为 LOGIC_APP_URL 的环境变量,用于存储你的逻辑应用 HTTP URL。
在 Azure Cloud Shell 中,运行以下 Azure CLI 命令来创建应用设置。 用你的 App Service 应用名称和资源组名称替换
<app-name>和<resource-group-name>。 用从逻辑应用复制的 HTTP URL 替换<http-url>。az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings LOGIC_APP_URL="<http-url>"在代码中,使用以下配置,使用可用于语言框架的 HTTP 客户端语言将标准 HTTP 帖子发布到逻辑应用 URL:
确保请求包含标题
Content-Type: application/json。使用请求正文中提供给逻辑应用的相同 JSON 格式:
{ "task": "<description>", "due": "<date>", "email": "<email-address>" }若要优化性能,在可能的情况下,请以异步方式发送请求。
有关日志记录说明,请查看首选框架的文档。
请求/响应代码示例示例
选择首选语言/框架以查看示例请求和响应。 一些示例需要使用或安装代码包。
在 ASP.NET Core 中,可以使用 System.Net.Http.HttpClient 类发送 HTTP POST 请求。 下面的代码示例需要使用 System.Net.Http 和 System.Text.Json。
HttpResponseMessage 需要依赖关系注入 (DI) 配置才能访问应用设置。 有关详细信息,请参阅 Access 环境变量。
// requires using System.Net.Http;
var client = new HttpClient();
// requires using System.Text.Json;
var jsonData = JsonSerializer.Serialize(new
{
email = "someone@example.com",
due = "4/1/2025",
task = "My new task!"
});
HttpResponseMessage result = await client.PostAsync(
// Requires DI configuration to access app settings
_configuration["LOGIC_APP_URL"],
new StringContent(jsonData, Encoding.UTF8, "application/json"));
var statusCode = result.StatusCode.ToString();
注意
为了简单起见,编写了此演示代码。 实际上,不会为每个请求都实例化一个 HttpClient 对象。 请按照使用 IHttpClientFactory 实现可复原的 HTTP 请求中的指导进行操作。
提示
如果你使用的是教程:在 Azure 应用服务中构建 ASP.NET Core 和 SQL 数据库应用中的示例应用,则可以在添加Todo项后,在Create 操作中使用此代码发送电子邮件确认。