有效的通信对于成功的自定义业务应用程序至关重要。 通过使用 Azure 通信服务 (ACS),可以向应用程序添加电话呼叫、实时聊天、音频/视频呼叫和电子邮件和短信等功能。 之前,你了解了 Azure OpenAI 如何为电子邮件和短信生成完成。 现在,你将了解如何发送消息。 ACS 和 OpenAI 一起可以通过简化通信、改进交互并提高业务工作效率来增强应用程序。
通过学习本练习,你将能够:
- 创建Azure 通信服务 (ACS) 资源。
- 添加带呼叫和短信功能的免费电话号码。
- 连接电子邮件域。
- 使用 ACS 资源中的值更新项目的 .env 文件。
创建Azure 通信服务资源
在浏览器中访问 Azure 门户 并登录(如果尚未登录)。
在页面顶部的搜索栏中键入通信服务,然后从出现的选项中选择通信服务。
在工具栏中选择“ 创建 ”。
执行以下任务:
- 选择 Azure 订阅。
- 选择要使用的资源组(如果不存在资源组)。
- 输入 ACS 资源名称。 它必须是唯一值。
- 选择数据位置。
选择 “查看 + 创建 ”,然后选择 “创建”。
已成功创建新的Azure 通信服务资源! 接下来,你将启用电话呼叫和短信功能。 你还将将电子邮件域连接到资源。
启用电话呼叫和短信功能
添加电话号码并确保电话号码已启用呼叫功能。 你将使用此电话号码从应用呼叫电话。
从“资源”菜单中选择 “电话”和“短信 ”-“>电话号码 ”。
在工具栏中选择 “+ 获取 ”(或选择 “获取数字 ”按钮),然后输入以下信息:
-
国家或地区:
United States
-
数字类型:
Toll-free
注释
Azure 订阅需要信用卡才能创建免费号码。 如果没有文件卡,可以随意跳过添加电话号码并跳转到连接电子邮件域的练习的下一部分。 你仍然可以使用该应用,但无法拨打电话号码。
- 号码:为列出的某个电话号码选择 “添加到购物车 ”。
-
国家或地区:
选择“ 下一步”,查看电话号码详细信息,然后选择“ 立即购买”。
注释
美国和加拿大现在强制对免费号码进行短信验证。 若要启用短信,必须在购买电话号码后提交验证。 虽然本教程不会完成此过程,但可以从资源菜单中选择 电话和短信 --法规>文档 ,并添加所需的验证文档。
创建电话号码后,将其选中以进入 “功能 ”面板。 确保设置了以下值(应默认设置这些值):
- 在 “呼叫 ”部分中,选择
Make calls
。 - 在 “短信 ”部分中,选择
Send and receive SMS
。 - 选择“保存”。
- 在 “呼叫 ”部分中,选择
将电话号码值复制到文件中供以后使用。 电话号码应遵循以下常规模式:
+12345678900
连接电子邮件域
执行以下任务,为 ACS 资源创建连接的电子邮件域,以便发送电子邮件。 这将用于从应用发送电子邮件。
- 从“资源”菜单中选择“ 电子邮件 ”-->“域 ”。
- 从工具栏中选择 “连接”域 。
- 选择 订阅 和 资源组。
- 在 “电子邮件服务 ”下拉列表下,选择
Add an email service
。 - 为电子邮件服务提供一个名称,例如
acs-demo-email-service
。 - 选择 “查看 + 创建 ”,然后选择 “创建”。
- 部署完成后,选择
Go to resource
并选择1-click add
添加免费的 Azure 子域。 - 添加子域后(部署子域需要一些时间),将其选中。
- 进入 AzureManagedDomain 屏幕后,从“资源”菜单中选择 “电子邮件服务 -->MailFrom 地址 ”。
- 将 MailFrom 值复制到文件。 稍后将在更新 .env 文件时使用它。
- 返回到 Azure 通信服务资源,然后从资源菜单中选择“电子邮件->”。
- 选择
Add domain
并输入MailFrom
上一步中的值(确保选择正确的订阅、资源组和电子邮件服务)。 选择Connect
按钮。
.env
更新文件
现在 ACS 电话号码(已启用呼叫和短信)和电子邮件域已准备就绪,请在项目中的 .env 文件中更新以下键/值:
ACS_CONNECTION_STRING=<ACS_CONNECTION_STRING> ACS_PHONE_NUMBER=<ACS_PHONE_NUMBER> ACS_EMAIL_ADDRESS=<ACS_EMAIL_ADDRESS> CUSTOMER_EMAIL_ADDRESS=<EMAIL_ADDRESS_TO_SEND_EMAIL_TO> CUSTOMER_PHONE_NUMBER=<UNITED_STATES_BASED_NUMBER_TO_SEND_SMS_TO>
ACS_CONNECTION_STRING
connection string
:ACS 资源的“密钥”部分的值。ACS_PHONE_NUMBER
:将免费号码分配给ACS_PHONE_NUMBER
该值。ACS_EMAIL_ADDRESS
:分配电子邮件“MailTo”地址值。CUSTOMER_EMAIL_ADDRESS
:分配要从应用发送到的电子邮件地址(因为应用数据库中的客户数据只是示例数据)。 可以使用个人电子邮件地址。CUSTOMER_PHONE_NUMBER
:由于在其他国家/地区发送短信所需的其他验证,因此需要提供基于美国的电话号码(截至今天)。 如果没有基于美国的数字,则可以将其留空。
启动/重启应用程序和 API 服务器
根据你完成的练习执行以下步骤 之一 ,至此时间点:
如果在前面的练习中启动了数据库、API 服务器和 Web 服务器,则需要停止 API 服务器和 Web 服务器并重新启动它们以选取 .env 文件更改。 可以让数据库保持运行状态。
找到运行 API 服务器和 Web 服务器的终端窗口,然后按 Ctrl + C 停止它们。 通过在每个终端窗口中键入
npm start
并按 Enter 再次启动它们。 继续下一练习。如果尚未启动数据库、API 服务器和 Web 服务器,请完成以下步骤:
在以下步骤中,将在 Visual Studio Code 中创建三个终端窗口。
右键单击 Visual Studio Code 文件列表中的 .env 文件,然后选择“ 在集成终端中打开”。 在继续作之前,请确保终端位于项目的根目录中( openai-acs-msgraph )。
从以下选项 中选择 以启动 PostgreSQL 数据库:
如果已安装并运行 Docker Desktop ,请在终端窗口中运行
docker-compose up
,然后按 Enter。如果 Podman 已安装并正在运行 podman-compose ,请在终端窗口中运行
podman-compose up
,然后按 Enter。若要使用 Docker Desktop、Podman、nerdctl 或其他已安装的容器运行时直接运行 PostgreSQL 容器,请在终端窗口中运行以下命令:
Mac、Linux 或 适用于 Linux 的 Windows 子系统 (WSL):
[docker | podman | nerdctl] run --name postgresDb -e POSTGRES_USER=web -e POSTGRES_PASSWORD=web-password -e POSTGRES_DB=CustomersDB -v $(pwd)/data:/var/lib/postgresql/data -p 5432:5432 postgres
使用 PowerShell 的 Windows:
[docker | podman] run --name postgresDb -e POSTGRES_USER=web -e POSTGRES_PASSWORD=web-password -e POSTGRES_DB=CustomersDB -v ${PWD}/data:/var/lib/postgresql/data -p 5432:5432 postgres
数据库容器启动后,按 + Visual Studio Code 终端工具栏 中的图标创建第二个终端窗口。
cd
进入 服务器/typescript 文件夹,并运行以下命令以安装依赖项并启动 API 服务器。npm install
npm start
+再次在 Visual Studio Code 终端工具栏中按图标以创建第三个终端窗口。
cd
进入 客户端 文件夹并运行以下命令以安装依赖项并启动 Web 服务器。npm install
npm start
浏览器将启动,你将转到该浏览器 http://localhost:4200。