你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:创建和管理通信服务资源
通过预配第一个通信服务资源来开始使用 Azure 通信服务。 可以通过 Azure 门户或 .NET 管理 SDK 预配通信服务资源。 利用管理 SDK 和 Azure 门户,可以通过全新的部署和管理服务:Azure 资源管理器创建、配置、更新和删除资源和接口。 该 SDK 中提供的所有功能都可在 Azure 门户中使用。
警告
请注意,不能同时创建一个资源组作为 Azure 通信服务的资源。 创建资源之前,需要先创建资源组。
先决条件
- 具有活动订阅的 Azure 帐户。 免费创建帐户。
如果打算使用电话号码,则不能使用免费试用帐户。 如果计划在创建资源之前购买电话号码,请检查你的订阅是否符合所有要求。
创建 Azure 通信服务资源
若要创建 Azure 通信服务资源,请先登录到 Azure 门户。 在页面的左上角,选择“+ 创建资源”。
在“搜索市场”输入字段中或门户顶部的搜索栏中输入“通信” 。
在结果中选择“通信服务”,然后选择“添加”。
现在可以配置通信服务资源。 在创建程序的第一页上,需要指定:
- 订阅
- 资源组(可以新建或选择现有的资源组)
- Azure 通信服务资源的名称
- 与资源关联的地理位置
在下一步中,可以为资源分配标记。 可以使用标记组织 Azure 资源。 有关标记的详细信息,请参阅使用标记对 Azure 资源和管理层次结构进行组织
最后,你可以查看配置并“创建”资源。 部署需要数分钟才能完成。
管理通信服务资源
如需管理通信服务资源,请登录 Azure 门户,搜索并选择 Azure 通信服务。
在“通信服务”页上,选择资源的名称。
资源的“概述”页包含用于基本管理(例如浏览、停止、启动、重启和删除)的选项。 你可以在资源页的左侧菜单中找到更多配置选项。
先决条件
如果你打算使用电话号码,则不能使用免费试用帐户。 如果计划在创建资源之前购买电话号码,请检查你的订阅是否符合所有要求。
创建 Azure 通信服务资源
若要创建 Azure 通信服务资源,请先登录 Azure CLI。 可以从终端运行 az login
命令并提供凭据进行登录。 运行以下命令以创建资源:
az communication create --name "<acsResourceName>" --location "Global" --data-location "United States" --resource-group "<resourceGroup>"
如果要选择特定订阅,你还可以指定 --subscription
标志并提供订阅 ID。
az communication create --name "<acsResourceName>" --location "Global" --data-location "United States" --resource-group "<resourceGroup>" --subscription "<subscriptionId>"
可使用以下选项来配置通信服务资源:
- 资源组
- Azure 通信服务资源的名称
- 与资源关联的地理位置
在下一步中,可以为资源分配标记。 可以使用标记组织 Azure 资源。 有关标记的详细信息,请参阅使用标记对 Azure 资源和管理层次结构进行组织
管理通信服务资源
若要向通信服务资源添加标记,请运行以下命令: 你也可以指向特定的订阅。
az communication update --name "<communicationName>" --tags newTag="newVal1" --resource-group "<resourceGroup>"
az communication update --name "<communicationName>" --tags newTag="newVal2" --resource-group "<resourceGroup>" --subscription "<subscriptionId>"
az communication show --name "<communicationName>" --resource-group "<resourceGroup>"
az communication show --name "<communicationName>" --resource-group "<resourceGroup>" --subscription "<subscriptionId>"
有关其他命令的信息,请参阅 Azure 通信 CLI。
先决条件
- 具有活动订阅的 Azure 帐户。 免费创建帐户。
- 适用于操作系统的最新版本 .NET Core SDK。
- 获取最新版本的 .NET 标识 SDK。
- 获取最新版本的 .NET 管理 SDK。
如果你打算使用电话号码,则不能使用免费试用帐户。 如果计划在创建资源之前购买电话号码,请检查你的订阅是否符合所有要求。
安装 SDK
首先,在 C# 项目中加入通信服务管理 SDK:
using Azure.ResourceManager.Communication;
订阅 ID
你需要知道 Azure 订阅的 ID。 可以从门户获取此内容:
- 在 Azure 门户中登录到你的 Azure 帐户。
- 选择左侧边栏中的“订阅”。
- 选择要使用的订阅。
- 单击“概览”。
- 选择订阅 ID。
如需运行本快速入门中的示例,你需要在 AZURE_SUBSCRIPTION_ID
环境变量中存储订阅 ID。
身份验证
若要与 Azure 通信服务进行通信,你必须首先向 Azure 验证自己的身份。 通常使用服务主体标识执行此操作。
选项 1:托管标识
如果你的代码在 Azure 中作为服务运行,则进行身份验证的最简单方法是从 Azure 获取托管标识。 有关详细信息,请参阅:
系统分配的托管标识
using Azure.Identity;
using Azure.ResourceManager.Communication;
using Azure.ResourceManager.Communication.Models;
using System;
...
var subscriptionId = "AZURE_SUBSCRIPTION_ID";
var acsClient = new CommunicationManagementClient(subscriptionId, new ManagedIdentityCredential());
用户分配的托管标识
你创建的托管标识的 ClientId 必须显式传递到 ManagedIdentityCredential
。
using Azure.Identity;
using Azure.ResourceManager.Communication;
using Azure.ResourceManager.Communication.Models;
using System;
...
var subscriptionId = "AZURE_SUBSCRIPTION_ID";
var managedIdentityCredential = new ManagedIdentityCredential("AZURE_CLIENT_ID");
var acsClient = new CommunicationManagementClient(subscriptionId, managedIdentityCredential);
选项 2:Service Principal
你可能希望使用自己管理的服务主体向 Azure 进行身份验证,而不是使用托管标识。 若要了解详细信息,请参阅创建和管理 Microsoft Entra ID 中的服务主体。
创建服务主体之后,你需要从 Azure 门户收集以下主体相关信息:
- 客户端 ID
- 客户端机密
- 租户 ID
分别将这些值存储在 AZURE_CLIENT_ID
、AZURE_CLIENT_SECRET
和 AZURE_TENANT_ID
环境变量中。 随后可以创建类似于下面这样的通信服务管理客户端:
using Azure.Identity;
using Azure.ResourceManager.Communication;
using Azure.ResourceManager.Communication.Models;
using System;
...
var subscriptionId = Environment.GetEnvironmentVariable("AZURE_SUBSCRIPTION_ID");
var acsClient = new CommunicationManagementClient(subscriptionId, new EnvironmentCredential());
选项 3:用户标识
如果要代表交互用户调用 Azure,而不是使用服务标识,则可以使用以下代码创建 Azure 通信服务管理客户端。 这会打开一个浏览器窗口,并提示用户输入 MSA 或 Microsoft Entra 凭据。
using Azure.Identity;
using Azure.ResourceManager.Communication;
using Azure.ResourceManager.Communication.Models;
using System;
...
var subscriptionId = Environment.GetEnvironmentVariable("AZURE_SUBSCRIPTION_ID");
var communicationServiceClient = new CommunicationManagementClient(subscriptionId, new InteractiveBrowserCredential());
管理通信服务资源
与 Azure 资源交互
现在你已进行了身份验证,可以使用管理客户端进行 API 调用。
对于以下每个示例,我们会将通信服务资源分配给现有的资源组。
如需创建资源组,你可以使用 Azure 门户或 Azure 资源管理器 SDK 完成此操作。
创建和管理通信服务资源
你可以使用通信服务管理 SDK 客户端实例 (Azure.ResourceManager.Communication.CommunicationManagementClient
) 对通信服务资源执行操作。
创建通信服务资源
创建通信服务资源时,请指定资源组名称和资源名称。 Location
属性始终是 global
,并且在公共预览版期间,DataLocation
值必须是 UnitedStates
。
var resourceGroupName = "myResourceGroupName";
var resourceName = "myResource";
var resource = new CommunicationServiceResource { Location = "Global", DataLocation = "UnitedStates" };
var operation = await acsClient.CommunicationService.StartCreateOrUpdateAsync(resourceGroupName, resourceName, resource);
await operation.WaitForCompletionAsync();
更新通信服务资源
...
var resourceGroupName = "myResourceGroupName";
var resourceName = "myResource";
var resource = new CommunicationServiceResource { Location = "Global", DataLocation = "UnitedStates" };
resource.Tags.Add("environment","test");
resource.Tags.Add("department","tech");
// Use existing resource name and new resource object
var operation = await acsClient.CommunicationService.StartCreateOrUpdateAsync(resourceGroupName, resourceName, resource);
await operation.WaitForCompletionAsync();
列出所有通信服务资源
var resources = acsClient.CommunicationService.ListBySubscription();
foreach (var resource in resources)
{
Console.WriteLine(resource.Name);
}
删除通信服务资源
var resourceGroupName = "myResourceGroupName";
var resourceName = "myResource";
await acsClient.CommunicationService.StartDeleteAsync(resourceGroupName, resourceName);
管理密钥和连接字符串
每个通信服务资源都有一对访问密钥和对应的连接字符串。 这些密钥可以使用管理 SDK 进行访问,随后由其他通信服务 SDK 用于向 Azure 通信服务验证自己的身份。
获取通信服务资源的访问密钥
var resourceGroupName = "myResourceGroupName";
var resourceName = "myResource";
var keys = await acsClient.CommunicationService.ListKeysAsync(resourceGroupName, resourceName);
Console.WriteLine(keys.Value.PrimaryConnectionString);
Console.WriteLine(keys.Value.SecondaryConnectionString);
注册通信服务资源的访问密钥
var resourceGroupName = "myResourceGroupName";
var resourceName = "myResource";
var keyParams = new RegenerateKeyParameters { KeyType = KeyType.Primary };
var keys = await acsClient.CommunicationService.RegenerateKeyAsync(resourceGroupName, resourceName, keyParams);
Console.WriteLine(keys.Value.PrimaryKey);
先决条件
- 具有活动订阅的 Azure 帐户。 免费创建帐户。
- 安装 Azure Az PowerShell 模块
如果你打算使用电话号码,则不能使用免费试用帐户。 如果计划在创建资源之前购买电话号码,请检查你的订阅是否符合所有要求。
创建 Azure 通信服务资源
若要创建 Azure 通信服务资源,请先登录 Azure CLI。 你可以使用命令 Connect-AzAccount
并提供凭据在终端上创建资源。
首先,使用以下命令安装 Azure 通信服务模块 Az.Communication
。
PS C:\> Install-Module Az.Communication
运行以下命令以创建资源:
PS C:\> New-AzCommunicationService -ResourceGroupName ContosoResourceProvider1 -Name ContosoAcsResource1 -DataLocation UnitedStates -Location Global
如果要选择特定订阅,你还可以指定 --subscription
标志并提供订阅 ID。
PS C:\> New-AzCommunicationService -ResourceGroupName ContosoResourceProvider1 -Name ContosoAcsResource1 -DataLocation UnitedStates -Location Global -SubscriptionId SubscriptionID
可使用以下选项来配置通信服务资源:
- 资源组
- Azure 通信服务资源的名称
- 与资源关联的地理位置
在下一步中,可以为资源分配标记。 可以使用标记组织 Azure 资源。 有关详细信息,请参阅使用标记对 Azure 资源和管理层次结构进行组织。
管理通信服务资源
若要向通信服务资源添加标记,请运行以下命令: 也可以指向特定的订阅。
PS C:\> Update-AzCommunicationService -Name ContosoAcsResource1 -ResourceGroupName ContosoResourceProvider1 -Tag @{ExampleKey1="ExampleValue1"}
PS C:\> Update-AzCommunicationService -Name ContosoAcsResource1 -ResourceGroupName ContosoResourceProvider1 -Tag @{ExampleKey1="ExampleValue1"} -SubscriptionId SubscriptionID
若要列出指定订阅中的所有 Azure 通信服务资源,请使用以下命令:
PS C:\> Get-AzCommunicationService -SubscriptionId SubscriptionID
若要列出给定资源的所有信息,请使用以下命令:
PS C:\> Get-AzCommunicationService -Name ContosoAcsResource1 -ResourceGroupName ContosoResourceProvider1
访问连接字符串和服务终结点
通信服务 SDK 可以使用连接字符串连接到 Azure 并向其进行身份验证。 你可以从 Azure 门户或使用 Azure 资源管理器 API 以编程方式访问通信服务连接字符串和服务终结点。
导航到通信服务资源之后,请从导航菜单中选择“密钥”并复制“连接字符串”或“终结点”值供通信服务 SDK 使用 。 你可以访问主密钥和辅助密钥。 在你希望向第三方或过渡环境提供对通信服务资源的临时访问权限时,这可能会十分有用。
使用 Azure CLI 访问连接字符串和服务终结点
还可以使用 Azure CLI 访问密钥信息(例如,资源组或特定资源的密钥)。
安装 Azure CLI 并使用以下命令登录。 需要提供凭据才能连接到 Azure 帐户。
az login
现在,你可以访问有关资源的重要信息了。
az communication list --resource-group "<resourceGroup>"
az communication list-key --name "<acsResourceName>" --resource-group "<resourceGroup>"
如果要选择特定订阅,你还可以指定 --subscription
标志并提供订阅 ID。
az communication list --resource-group "<resourceGroup>" --subscription "<subscriptionId>"
az communication list-key --name "<acsResourceName>" --resource-group "<resourceGroup>" --subscription "<subscriptionId>"
存储连接字符串
通信服务 SDK 使用连接字符串对向通信服务发出的请求进行授权。 可使用多个选项来存储连接字符串:
- 在桌面或设备上运行的应用程序可在 app.config 或 web.config 文件中存储连接字符串。 将连接字符串添加到这些文件中的 AppSettings 节。
- 在 Azure 应用服务中运行的应用程序可以将连接字符串存储在应用服务应用程序设置中。 在门户中将连接字符串添加到“应用程序设置”选项卡的“连接字符串”部分。
- 可以将连接字符串存储在 Azure Key Vault 中。 可以进一步安全地管理连接字符串。
- 如果在本地运行应用程序,则可能要将连接字符串存储在环境变量中。
将连接字符串存储在环境变量中
若要配置环境变量,请打开控制台窗口,然后从以下选项卡中选择操作系统。 将 <yourconnectionstring>
替换为实际的连接字符串。
打开控制台窗口并输入以下命令:
setx COMMUNICATION_SERVICES_CONNECTION_STRING "<yourConnectionString>"
添加环境变量后,可能需要重启任何正在运行的用于读取环境变量的程序(包括控制台窗口)。 例如,如果使用 Visual Studio 作为编辑器,请在运行示例之前重启 Visual Studio。
清理资源
如果想要清理并删除通信服务订阅,可以删除资源或资源组。 若要删除通信资源,请运行以下命令。
az communication delete --name "acsResourceName" --resource-group "resourceGroup"
删除资源组时也会删除与之关联的任何其他资源。
如果在删除资源时已为资源分配了任何电话号码,则会同时自动从资源释放电话号码。
注意
资源删除是永久性的。如果删除资源,则无法恢复任何数据,包括事件网格筛选器、电话号码或与资源相关的其他数据。
后续步骤
在此快速入门中,你学习了如何:
- 创建通信服务资源
- 配置资源地理位置和标记
- 访问该资源的密钥
- 删除资源