クイック スタート:Communication Services のリソースを作成して管理する

最初の Communication Services リソースをプロビジョニングすることで、Azure Communication Services を開始します。 Communication Services リソースは、Azure portal で、または .NET Management SDK を使用してプロビジョニングできます。 Management SDK と Azure portal では、デプロイと管理の新しいサービスである Azure Resource Manager を使用して、リソースやインターフェイスの作成、構成、更新、削除を行うことができます。 SDK で使用できるすべての機能は、Azure portal で使用できます。

警告

リソース グループは、Azure Communication Services のリソースと同時には作成できないため、注意してください。 リソースを作成するには、まずリソース グループを作成する必要があります。

前提条件

電話番号を使用する予定がある場合は、無料試用版アカウントを使用することはできません。 リソースを作成する前に電話番号を購入する予定の場合は、サブスクリプションがすべての要件を満たしていることを確認します。

Azure Communication Services のリソースを作成する

Azure Communication Services のリソースを作成するには、まず Azure portal にサインインします。 ページの左上にある [+ リソースの作成] を選択します。

Azure portal の [リソースの作成] ボタンが強調表示されているスクリーンショット。

[Marketplace を検索] 入力、または portal の上部の検索バーに「Communication」と入力します。

検索バーでの Communication Services の検索を示すスクリーンショット。

結果から [Communication Services] を選択し、 [作成] を選択します。

[作成] ボタンが強調表示された [Communication Services] パネルを示すスクリーンショット。

これで、Communication Services のリソースを構成できます。 作成プロセスの最初のページで、次を指定する必要があります。

  • サブスクリプション
  • リソース グループ (新しいリソース グループを作成するか、既存のリソース グループを選択できます)
  • Communication Services のリソースの名前
  • リソースが関連付けられている地域

次の手順では、リソースにタグを割り当てることができます。 タグを使用して、Azure リソースを整理できます。 タグについて詳しくは、「タグを使用して Azure リソースと整理階層を整理する」をご覧ください。

最後に、構成を確認し、リソースを作成できます。 デプロイが完了するまでに数分かかる場合があります。

Communication Services のリソースを管理する

Communication Services のリソースを管理するには、Azure portal にサインインして、Azure Communication Services を検索して選択します。

[Communication Services] ページで、リソースの名前を選択します。

リソースの [概要] ページには、参照、停止、開始、再起動、削除などの基本的な管理のためのオプションが含まれています。 その他の構成オプションについては、リソース ページの左側のメニューをご覧ください。

前提条件

電話番号の使用を計画している場合は、無料試用版アカウントを使用することはできません。 リソースを作成する前に電話番号を購入する予定の場合は、サブスクリプションがすべての要件を満たしていることを確認します。

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 のリソースを構成できます。

次の手順では、リソースにタグを割り当てることができます。 タグを使用して、Azure リソースを整理できます。 タグについて詳しくは、「タグを使用して 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 を参照してください。

前提条件

電話番号の使用を計画している場合は、無料試用版アカウントを使用することはできません。 リソースを作成する前に電話番号を購入する予定の場合は、サブスクリプションがすべての要件を満たしていることを確認します。

SDK のインストール

まず、Communication Services Management SDK を C# プロジェクトにインクルードします。

using Azure.ResourceManager.Communication;

サブスクリプション ID

Azure サブスクリプションの ID を把握しておく必要があります。 これは、ポータルから取得できます。

  1. Azure portal でアカウントにサインインします。
  2. 左側のサイドバーで、[サブスクリプション] を選択します。
  3. 使用するサブスクリプションを選択します。
  4. [Overview] をクリックします。
  5. [サブスクリプション] を選択します。

このクイックスタートの例を使用するには、AZURE_SUBSCRIPTION_ID という環境変数内にサブスクリプション ID を格納する必要があります。

認証

Azure Communication Services と通信するには、まず Azure に対して自分自身を認証する必要があります。 通常は、サービス プリンシパル ID を使用してこれを行います。

オプション 1: マネージド ID

コードが Azure のサービスとして実行されている場合、最も簡単な認証方法は、Azure からマネージド 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 に対する認証を行うことができます。 詳細については、Microsoft Entra ID でのサービス プリンシパルの作成と管理に関する記事を参照してください。

サービス プリンシパルを作成したら、それに関する次の情報を Azure portal から収集する必要があります。

  • クライアント ID
  • クライアント シークレット
  • テナント ID

これらの値をそれぞれ、AZURE_CLIENT_IDAZURE_CLIENT_SECRETAZURE_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 または 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());

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 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 のリソースを構成できます。

次の手順では、リソースにタグを割り当てることができます。 タグを使用して、Azure リソースを整理できます。 詳細については、「タグを使用して 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 リソースへの一時的なアクセスをサード パーティまたはステージング環境に提供する場合に役に立ちます。

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 サブスクリプションをクリーンアップして解除する場合は、リソースまたはリソース グループを削除できます。 Communication リソースを削除するには、次のコマンドを実行します。

az communication delete --name "acsResourceName" --resource-group "resourceGroup"

リソース グループを削除すると、それに関連付けられている他のリソースも削除されます。

リソースの削除時にリソースに電話番号が割り当てられている場合、その電話番号は同時にリソースから自動的に解放されます。

Note

リソースの削除は永続的であり、リソースを削除すると、イベント グリッド フィルター、電話番号など、リソースに関連付けられたデータを含むデータを復元できなくなります。

次の手順

このクイックスタートでは、次の方法について説明しました。

  • Communication Services リソースを作成する
  • リソースの地域およびタグを構成する
  • そのリソースのキーにアクセスする
  • リソースを削除する