빠른 시작: Communication Services 리소스 만들기 및 관리

첫 번째 Communication Services 리소스를 프로비저닝하여 Azure Communication Services를 시작합니다. Communication Services 리소스는 Azure Portal 또는 .NET 관리 SDK를 통해 프로비저닝될 수 있습니다. 관리 SDK 및 Azure Portal을 사용하면 리소스를 만들고, 구성, 업데이트 및 삭제하고 Azure의 배포 및 관리 서비스인 Azure Resource Manager와 상호 연결할 수 있습니다. SDK에서 사용할 수 있는 모든 함수는 Azure Portal에서 사용할 수 있습니다.

Warning

Azure Communication Services용 리소스와 리소스 그룹을 동시에 만들 수는 없습니다. 리소스를 만들 때 이미 만들어진 리소스 그룹을 사용해야 합니다.

필수 조건

전화번호를 사용하려는 경우에는 평가판 계정을 사용할 수 없습니다. 리소스를 만들기 전에 전화번호를 구매하려는 경우 구독이 모든 요구 사항을 충족하는지 확인합니다.

Azure Communication Services 리소스 만들기

Azure Communication Services 리소스를 만들려면 먼저 Azure Portal에 로그인합니다. 페이지의 왼쪽 위 모서리에서 리소스 만들기를 선택합니다.

Azure Portal에서 리소스 만들기 단추를 강조 표시하는 스크린샷

Marketplace 검색 입력 또는 포털 상단에 있는 검색 창에 Communication을 입력합니다.

검색 창에서 Communication Services 검색을 보여 주는 스크린샷

결과에서 Communication Services를 선택한 다음, 만들기를 선택합니다.

만들기 단추를 강조 표시하는 Communication Services 패널을 보여 주는 스크린샷

이제 Communication Services 리소스를 구성할 수 있습니다. 만들기 프로세스의 첫 페이지에서 다음을 지정하라는 메시지가 표시됩니다.

  • 구독
  • 리소스 그룹(새 그룹을 만들거나 기존 리소스 그룹을 선택할 수 있음)
  • Communication Services 리소스의 이름
  • 리소스가 연결되는 지리적 위치

다음 단계에서는 리소스에 태그를 할당할 수 있습니다. 태그를 사용하여 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 리소스를 구성할 수 있습니다.

  • 리소스 그룹
  • 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를 참조하세요.

필수 조건

전화번호를 사용하려는 경우에는 평가판 계정을 사용할 수 없습니다. 리소스를 만들기 전에 전화번호를 구매하려는 경우 구독이 모든 요구 사항을 충족하는지 확인합니다.

SDK 설치

먼저 C# 프로젝트에 Communication Services 관리 SDK를 포함합니다.

using Azure.ResourceManager.Communication;

구독 ID

Azure 구독의 ID를 알고 있어야 합니다. 이는 포털에서 가져올 수 있습니다.

  1. Azure 계정에 로그인
  2. 왼쪽 사이드바에서 구독 선택
  3. 필요한 구독 선택
  4. 개요 클릭
  5. 구독 ID 선택

이 빠른 시작에서는 AZURE_SUBSCRIPTION_ID라는 환경 변수에 구독 ID를 저장했다고 가정합니다.

인증

Azure Communication Services와 통신하려면 먼저 Azure에 인증해야 합니다. 일반적으로 이는 서비스 사용자 ID를 사용하여 수행합니다.

옵션 1: 관리 ID

코드가 Azure에서 서비스로 실행되는 경우 가장 쉬운 인증 방법은 Azure에서 관리 ID를 획득하는 것입니다. 관리 ID에 대해 자세히 알아보세요.

관리 ID를 지원하는 Azure 서비스

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에 인증할 수 있습니다. Microsoft Entra ID에서 서비스 사용자를 만들고 관리하는 방법에 대한 설명서를 통해 자세히 알아보세요.

서비스 사용자를 만든 후에는 Azure Portal에서 해당 서비스 사용자에 대한 다음 정보를 수집해야 합니다.

  • 클라이언트 ID
  • 클라이언트 암호
  • 테넌트 ID

이러한 값을 각각 AZURE_CLIENT_ID, AZURE_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 Management 클라이언트를 만들 수 있습니다. 그러면 사용자에게 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 리소스에는 액세스 키와 해당 연결 문자열이 한 쌍 있습니다. 이러한 키는 관리 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 리소스를 구성할 수 있습니다.

  • 리소스 그룹
  • 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에 연결하고 인증할 수 있습니다. Azure Portal에서 또는 Azure Resource Manager API를 사용하여 프로그래밍 방식으로 Communication Services 연결 문자열 및 서비스 엔드포인트에 액세스할 수 있습니다.

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에서 실행 중인 애플리케이션의 경우, 연결 문자열을 Azure 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"

리소스 그룹을 삭제하면 해당 리소스 그룹에 연결된 다른 모든 리소스가 함께 삭제됩니다.

리소스 삭제 시 리소스에 할당된 전화 번호가 있는 경우 해당 전화 번호는 동시에 리소스에서 자동으로 해제됩니다.

참고 항목

리소스 삭제는 영구적이며 리소스를 삭제하는 경우 이벤트 그리드 필터, 전화번호 또는 리소스에 연결된 기타 데이터를 포함한 데이터를 복구할 수 없습니다.

다음 단계

이 빠른 시작에서는 다음을 수행하는 방법을 알아보았습니다.

  • Communication Services 리소스 만들기
  • 리소스 지리 및 태그 구성
  • 해당 리소스에 대한 키 액세스
  • 리소스 삭제