クイック スタート:Communication Services のリソースを作成して管理する
最初の Communication Services リソースをプロビジョニングすることで、Azure Communication Services を開始します。 Communication Services のリソースは、Azure portal または .NET Management SDK を使用してプロビジョニングできます。 Management SDK と Azure portal を使用すると、リソースの作成、構成、更新、削除を行うことができます。また、これは Azure Resource Manager (Azure のデプロイおよび管理サービス) と連携します。 SDK で使用できるすべての機能は、Azure portal で利用できます。
警告
Azure Communication Services のリソースと同時にリソース グループを作成できないことに注意してください。 リソースを作成するときは、既に作成されているリソース グループを使用する必要があります。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
電話番号の使用を計画している場合は、無料試用版アカウントを使用することはできません。 リソースを作成する前に電話番号を購入する予定の場合は、サブスクリプションがすべての要件を満たしていることを確認します。
Azure Communication Services のリソースを作成する
Azure Communication Services のリソースを作成するには、まず Azure portal にサインインします。 ページの左上にある [+ リソースの作成] を選択します。
[Marketplace を検索] 入力、または portal の上部の検索バーに「Communication」と入力します。
結果から [Communication Services] を選択し、 [作成] を選択します。
これで、Communication Services のリソースを構成できます。 作成プロセスの最初のページで、次の内容を指定するように求められます。
- サブスクリプション
- リソース グループ (新しいリソース グループを作成するか、既存のリソース グループを選択できます)
- Communication Services のリソースの名前
- リソースが関連付けられる地理的な場所
次の手順では、リソースにタグを割り当てることができます。 タグは、Azure リソースを整理するために使用できます。 タグの詳細については、リソースのタグ付けに関するドキュメントを参照してください。
最後に、構成を確認し、リソースを作成できます。 デプロイが完了するまでに数分かかることに注意してください。
Communication Services のリソースを管理する
Communication Services のリソースを管理するには、Azure portal にアクセスし、「Azure Communication Services」を検索して選択します。
[Communication Services] ページで、リソースの名前を選択します。
リソースの [概要] ページには、参照、停止、開始、再起動、削除などの基本的な管理のためのオプションが含まれています。 その他の構成オプションについては、リソース ページの左側のメニューをご覧ください。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
- Azure CLI
電話番号の使用を計画している場合は、無料試用版アカウントを使用することはできません。 リソースを作成する前に電話番号を購入する予定の場合は、サブスクリプションがすべての要件を満たしていることを確認します。
Azure Communication Services のリソースを作成する
Azure Communication Services のリソースを作成するには、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>"
以下のオプションを使用して、Communication Services のリソースを構成できます。
- リソース グループ
- Communication Services のリソースの名前
- リソースが関連付けられる地理的な場所
次の手順では、リソースにタグを割り当てることができます。 タグは、Azure リソースを整理するために使用できます。 タグの詳細については、リソースのタグ付けに関するドキュメントを参照してください。
Communication Services のリソースを管理する
Communication Services のリソースにタグを追加するには、以下のコマンドを実行します。 また、特定のサブスクリプションを対象にすることもできます。
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 Communication CLI を参照してください。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
- お使いのオペレーティング システムに対応した最新バージョンの .NET Core SDK。
- .NET Identity SDK の最新バージョンを取得します。
- .NET Management SDK の最新バージョンを取得します。
電話番号の使用を計画している場合は、無料試用版アカウントを使用することはできません。 リソースを作成する前に電話番号を購入する予定の場合は、サブスクリプションがすべての要件を満たしていることを確認します。
SDK のインストール
まず、Communication Services Management SDK を C# プロジェクトにインクルードします。
using Azure.ResourceManager.Communication;
サブスクリプション ID
Azure サブスクリプションの ID を把握しておく必要があります。 これは、ポータルから取得できます。
- Azure アカウントにログインします
- 左側のサイドバーでサブスクリプションを選択します
- 必要なサブスクリプションを選択します
- [概要] をクリックします
- サブスクリプション ID を選択します
このクイックスタートでは、 AZURE_SUBSCRIPTION_ID
という名前の環境変数にサブスクリプション ID を格納していることを前提としています。
認証
Azure Communication Services と通信するには、まず Azure に対して自分自身を認証する必要があります。 通常は、サービス プリンシパル ID を使用してこれを行います。
オプション 1: マネージド ID
コードが Azure のサービスとして実行されている場合、最も簡単な認証方法は、Azure からマネージド ID を取得することです。 マネージド ID の詳細を確認してください。
App Service と Azure Functions でマネージド ID を使用する方法
システム割り当てマネージド ID
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());
ユーザー割り当てマネージド ID
作成したマネージド ID の 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:サービス プリンシパル
マネージド ID を使用する代わりに、自分で管理するサービス プリンシパルを使用して Azure に対する認証を行うことができます。 詳細については、Azure Active Directory でのサービス プリンシパルの作成と管理に関するドキュメントを参照してください。
サービス プリンシパルを作成したら、それに関する次の情報を Azure portal から収集する必要があります。
- クライアント ID
- クライアント シークレット
- テナント ID
これらの値をそれぞれ AZURE_CLIENT_ID
、 AZURE_CLIENT_SECRET
、 AZURE_TENANT_ID
という名前の環境変数に格納します。 その後、次のような Communication Services 管理クライアントを作成できます。
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:ユーザー ID
サービス ID を使用するのではなく、対話ユーザーの代わりに Azure を呼び出す場合は、次のコードを使用して Azure Communication Services 管理クライアントを作成できます。 これにより、ブラウザー ウィンドウが開き、ユーザーに MSA または Azure AD 資格情報の入力を求めるメッセージが表示されます。
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());
Communication Services リソースの管理
Azure リソースの操作
これで認証されたので、管理クライアントを使用して API を呼び出すことができます。
次の各例では、Communication Services リソースを既存のリソース グループに割り当てます。
リソース グループを作成する必要がある場合は、Azure portal または Azure Resource Manager SDK を使用して実行できます。
Communication Services リソースを作成して管理する
Communication Services Management SDK クライアント (Azure.ResourceManager.Communication.CommunicationManagementClient
) のインスタンスを使用して、Communication Services リソースに対する操作を実行できます。
Communication Services リソースを作成する
Communication Services リソースの作成時、リソース グループ名とリソース名を指定します。 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();
Communication Services リソースを更新する
...
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();
Communication Services リソースをすべて一覧表示する
var resources = acsClient.CommunicationService.ListBySubscription();
foreach (var resource in resources)
{
Console.WriteLine(resource.Name);
}
Communication Services リソースを削除する
var resourceGroupName = "myResourceGroupName";
var resourceName = "myResource";
await acsClient.CommunicationService.StartDeleteAsync(resourceGroupName, resourceName);
キーと接続文字列の管理
すべての Communication Services リソースには、アクセスキーと対応する接続文字列のペアがあります。 これらのキーには、Management SDK を使用してアクセスできます。それから他の Communication Services SDK で Azure Communication Services に対して自身を認証するためにこれらを使用できます。
Communication Services リソースのアクセス キーを取得する
var resourceGroupName = "myResourceGroupName";
var resourceName = "myResource";
var keys = await acsClient.CommunicationService.ListKeysAsync(resourceGroupName, resourceName);
Console.WriteLine(keys.Value.PrimaryConnectionString);
Console.WriteLine(keys.Value.SecondaryConnectionString);
Communication Services リソースのアクセス キーを再生成する
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 Communication Services のリソースを作成する
Azure Communication Services のリソースを作成するには、Azure CLI にサインインします。 そのためにはターミナルから Connect-AzAccount
コマンドを使用し、資格情報を入力します。
まず、次のコマンドを使用して、Azure Communication Services モジュール 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
以下のオプションを使用して、Communication Services のリソースを構成できます。
- リソース グループ
- Communication Services のリソースの名前
- リソースが関連付けられる地理的な場所
次の手順では、リソースにタグを割り当てることができます。 タグは、Azure リソースを整理するために使用できます。 タグの詳細については、リソースのタグ付けに関するドキュメントを参照してください。
Communication Services のリソースを管理する
Communication Services のリソースにタグを追加するには、以下のコマンドを実行します。 また、特定のサブスクリプションを対象にすることもできます。
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 Communication Services リソースをすべて一覧表示するには、次のコマンドを使用します。
PS C:\> Get-AzCommunicationService -SubscriptionId SubscriptionID
特定のリソースの情報をすべて一覧表示するには、次のコマンドを使用します。
PS C:\> Get-AzCommunicationService -Name ContosoAcsResource1 -ResourceGroupName ContosoResourceProvider1
接続文字列とサービス エンドポイントにアクセスする
接続文字列を使用すると、Communication Services の SDK から Azure への接続と認証を行うことができます。 Communication Services の接続文字列とサービス エンドポイントには、Azure portal から、または Azure Resource Manager API を使用してプログラムでアクセスできます。
Communication Services リソースに移動した後、ナビゲーション メニューから [キー] を選択し、Communication Services の SDK で使用される [接続文字列] または [エンドポイント] の値をコピーします。 主キーとセカンダリ キーにアクセスできることに注意してください。 これは、Communication Services リソースへの一時的なアクセスをサード パーティまたはステージング環境に提供するシナリオで役に立ちます。
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>"
接続文字列を格納する
Communication Services の SDK は、接続文字列を使用して、Communication Services に対して行われた要求を承認します。 接続文字列は次の方法で保存できます。
- デスクトップまたはデバイスで実行するアプリケーションの場合は、app.config ファイルまたは web.config ファイルに接続文字列を保存できます。 この接続文字列は、これらのファイルの AppSettings セクションに追加します。
- Azure App Service で実行されているアプリケーションでは、接続文字列は App Service のアプリケーションの設定内に格納できます。 ポータル内の [アプリケーションの設定] タブの [接続文字列] セクションに接続文字列を追加します。
- 接続文字列は、Azure Key Vault に格納できます。
- アプリケーションをローカルで実行している場合は、環境変数に接続文字列を格納することもできます。
環境変数に接続文字列を格納する
環境変数を構成するには、コンソール ウィンドウを開き、以下のタブからお使いのオペレーティン グシステムを選択します。 <yourconnectionstring>
は、実際の接続文字列に置き換えてください。
コンソール ウィンドウを開き、次のコマンドを入力します。
setx COMMUNICATION_SERVICES_CONNECTION_STRING "<yourConnectionString>"
実行中のプログラムのうち、環境変数の読み取りを必要とするプログラム (コンソール ウィンドウを含む) については、環境変数を追加した後で再起動が必要となる場合があります。 たとえば、Visual Studio をエディターとして使用している場合、サンプルを実行する前に Visual Studio を再起動します。
リソースをクリーンアップする
Communication Services サブスクリプションをクリーンアップして解除する場合は、リソースまたはリソース グループを削除できます。 次のコマンドを実行して、通信リソースを削除できます。
az communication delete --name "acsResourceName" --resource-group "resourceGroup"
リソース グループを削除すると、それに関連付けられている他のリソースも削除されます。
リソースの削除時にリソースに電話番号が割り当てられている場合、その電話番号は同時にリソースから自動的に解放されます。
Note
リソースの削除は永続的であり、リソースを削除すると、イベント グリッド フィルター、電話番号など、リソースに関連付けられたデータを含むデータを復元できなくなります。
次の手順
このクイックスタートでは、次の方法について説明しました。
- Communication Services リソースを作成する
- リソースの地域およびタグを構成する
- そのリソースのキーにアクセスする
- リソースを削除する