빠른 시작: Communication Services 리소스 만들기 및 관리
첫 번째 Communication Services 리소스를 프로비저닝하여 Azure Communication Services를 시작합니다. Communication Services 리소스는 Azure Portal 또는 .NET 관리 SDK를 사용하여 프로비저닝될 수 있습니다. 관리 SDK와 Azure Portal을 사용하면 새로운 배포 및 관리 서비스인 Azure Resource Manager를 사용하여 리소스와 인터페이스를 만들기, 구성, 업데이트 및 삭제할 수 있습니다. SDK에서 사용할 수 있는 모든 함수는 Azure Portal에서 사용할 수 있습니다.
Warning
Azure Communication Services용 리소스와 동시에 리소스 그룹을 만들 수는 없습니다. 리소스를 만들기 전에 먼저 리소스 그룹을 만들어야 합니다.
필수 조건
- 활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.
전화 번호를 사용하려는 경우 평가판 계정을 사용할 수 없습니다. 리소스를 만들기 전에 전화번호를 구매하려는 경우 구독이 모든 요구 사항을 충족하는지 확인합니다.
Azure Communication Services 리소스 만들기
Azure Communication Services 리소스를 만들려면 먼저 Azure Portal에 로그인합니다. 페이지의 왼쪽 위 모서리에서 리소스 만들기를 선택합니다.
Marketplace 검색 입력 또는 포털 상단에 있는 검색 창에 Communication을 입력합니다.
결과에서 Communication Services를 선택한 다음, 만들기를 선택합니다.
이제 Communication Services 리소스를 구성할 수 있습니다. 만들기 프로세스의 첫 번째 페이지에서 다음을 지정해야 합니다.
- 구독
- 리소스 그룹(새 그룹을 만들거나 기존 리소스 그룹을 선택할 수 있음)
- Communication Services 리소스의 이름
- 리소스와 관련된 지리
다음 단계에서는 리소스에 태그를 할당할 수 있습니다. 태그를 사용하여 Azure 리소스를 구성할 수 있습니다. 태그에 대한 자세한 내용은 태그를 사용하여 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 리소스를 구성할 수 있습니다. 태그에 대한 자세한 내용은 태그를 사용하여 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 ID SDK의 최신 버전을 가져옵니다.
- .NET 관리 SDK의 최신 버전을 가져옵니다.
전화번호를 사용하려는 경우 평가판 계정을 사용할 수 없습니다. 리소스를 만들기 전에 전화번호를 구매하려는 경우 구독이 모든 요구 사항을 충족하는지 확인합니다.
SDK 설치
먼저 C# 프로젝트에 Communication Services 관리 SDK를 포함합니다.
using Azure.ResourceManager.Communication;
구독 ID
Azure 구독의 ID를 알아야 합니다. 이는 포털에서 가져올 수 있습니다.
- Azure Portal에서 계정에 로그인합니다.
- 왼쪽 사이드바에서 구독을 선택합니다.
- 사용할 구독을 선택합니다.
- 개요를 클릭합니다.
- 구독 ID를 선택합니다.
이 빠른 시작의 예가 작동하려면 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_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 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 리소스에는 액세스 키와 해당 연결 문자열이 한 쌍 있습니다. 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 리소스를 구성할 수 있습니다. 자세한 내용은 태그를 사용하여 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 리소스에 대한 임시 액세스를 타사 또는 스테이징 환경에 제공하려는 경우 유용할 수 있습니다.
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 리소스 만들기
- 리소스 지리 및 태그 구성
- 해당 리소스에 대한 키 액세스
- 리소스 삭제