연습 - .NET 클라이언트 라이브러리를 사용하여 Batch 계정에 액세스

완료됨

중요

이 연습을 수행하려면 사용자의 Azure 구독이 필요하며 요금이 발생할 수 있습니다. Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.

Azure Batch 클라이언트 API를 사용하면 Batch 계정의 모든 리소스 만들기, 실행 및 모니터링을 프로그래밍 방식으로 제어할 수 있습니다.

이 연습에서는 새 콘솔 애플리케이션을 만들고 패키지를 사용하여 Microsoft.Azure.Batch NuGet 이전에 만든 Azure Batch 계정에 연결합니다. 이 설정이 작동하는지 테스트하기 위해 Batch 계정을 쿼리하여 ffmpeg계정에 올바르게 추가되었는지 검사.

로컬 콘솔 애플리케이션 만들기

Cloud Shell을 사용하여 이 모듈에서 다시 기본 연습을 완료합니다.

  1. 포털의 위쪽 메뉴에서 Cloud Shell 아이콘을 선택하여 Azure Portal에서 Cloud Shell 을 시작합니다.

  2. Cloud Shell 창의 맨 위에 있는 드롭다운을 사용하여 Bash를 선택합니다.

  3. Cloud Shell에서 다음 명령을 실행하여 앱의 새 디렉터리를 만듭니다.

    mkdir cutifypets
    cd cutifypets
    
  4. 명령을 사용하여 새 .NET Core 콘솔 애플리케이션을 dotnet new 만든 다음, 실행합니다.

    dotnet new console
    dotnet run
    

    콘솔 앱을 성공적으로 만들었으면 콘솔에 다음과 같은 내용이 출력됩니다.

    Hello World!
    

애플리케이션의 연결 세부 정보 설정

  1. Cloud Shell에서 다음과 같이 dotnet add package 명령을 사용하여 Azure Batch NuGet 패키지를 추가합니다.

    dotnet add package Microsoft.Azure.Batch
    
  2. Cloud Shell에서 다음 명령을 실행하여 리소스 그룹을 환경 변수에 저장합니다. 그러면 후속 명령에서 리소스 그룹을 사용할 수 있습니다. Batch 계정을 만들 때 사용한 리소스 그룹의 이름으로 바꿉 [YOUR RESOURCE GROUP] 니다.

    export RESOURCE_GROUP=[YOUR RESOURCE GROUP]
    
  3. 다음 명령을 사용하여 콘솔 앱을 통해 액세스할 수 있는 환경 변수에 일괄 처리 계정 자격 증명을 저장합니다.

    export BATCH_URL='https://'$(az batch account list --query "[?contains(name,'cuti')].accountEndpoint" --output tsv)
    export BATCH_NAME=$(az batch account list --query "[?contains(name,'cuti')].name" --output tsv)
    export BATCH_KEY=$(az batch account keys list --name $BATCH_NAME --query primary -o tsv --resource-group $RESOURCE_GROUP)
    
  4. 다음 명령을 사용하여 저장된 값이 올바른지 검사.

    echo 'URL='$BATCH_URL 'NAME='$BATCH_NAME 'KEY='$BATCH_KEY
    

    이러한 값이 설정되어 있는지 확인합니다. 특정 시점에 Cloud Shell을 다시 시작해야 하는 경우 이러한 변수를 다시 설정해야 합니다.

  5. 다음 코드를 사용하여 편집기 Program.cs 에서 파일을 편집합니다.

    code Program.cs
    
  6. 모든 기존 코드를 다음으로 바꿉다.

    namespace cutifypets
    {
        using System;
        using Microsoft.Azure.Batch;
        using Microsoft.Azure.Batch.Auth;
        using Microsoft.Azure.Batch.Common;
    
        class Program
        {
            private const string envVarBatchURI = "BATCH_URL";
            private const string envVarBatchName = "BATCH_NAME";
            private const string envVarKey = "BATCH_KEY";
    
            private static string batchAccountName;
            private static string batchAccountUrl;
            private static string batchAccountKey;
    
            static void Main(string[] args)
            {
                // Read the environment variables to allow the app to connect to the Azure Batch account
                batchAccountUrl = Environment.GetEnvironmentVariable(envVarBatchURI);
                batchAccountName = Environment.GetEnvironmentVariable(envVarBatchName);
                batchAccountKey = Environment.GetEnvironmentVariable(envVarKey);
    
                // Show the user the batch the app is attaching to
                Console.WriteLine("URL: {0}, Name: {1}, Key: {2}", batchAccountUrl, batchAccountName, batchAccountKey);
    
                // The batch client requires a BatchSharedKeyCredentials object to open a connection
                var sharedKeyCredentials = new BatchSharedKeyCredentials(batchAccountUrl, batchAccountName, batchAccountKey);
                var batchClient = BatchClient.Open(sharedKeyCredentials);
    
                // The batchClient object can reference all the application packages, and get a summary of their details
                foreach (var app in batchClient.ApplicationOperations.ListApplicationSummaries() ) {
                    // For each application package, print to the console their name and version number
                    Console.WriteLine("Installed app: {0}({1})", app.Id, app.Versions[0]);
                }
            }
        }
    }
    

    이전 코드 및 주석을 읽습니다. 콘솔 앱은 클라이언트 라이브러리를 Microsoft.Azure.Batch 가져와서 Azure Batch 기능을 추가합니다. 이 앱은 이전 단계에서 저장한 환경 변수를 사용하여 Azure Portal에서 만든 Batch 계정에 연결합니다. 일괄 처리 클라이언트는 일괄 처리의 서비스 속성을 쿼리할 수 있습니다. 예제 코드에서는 애플리케이션 패키지를 반복하며, 앞에서 업로드한 ffmpeg 앱의 세부 정보를 보여줍니다.

  7. 코드 편집기에서 마우스 오른쪽 단추를 클릭하고 저장을 선택한 다음 마우스 오른쪽 단추를 클릭하고 종료를 선택합니다.

  8. Cloud Shell에서 다음 명령을 사용하여 앱을 컴파일하고 실행합니다.

    dotnet run
    
  9. 앱을 실행하면 애플리케이션 패키지가 콘솔에 기록됩니다. 결과는 다음과 같습니다.

    Installed app: ffmpeg(3.4)
    

축하합니다! Batch 계정에 설치된 애플리케이션 목록을 검색하는 앱에 Azure Batch 및 Azure Storage 라이브러리를 통합하셨습니다. 다음 단계는 작업을 실행할 컴퓨팅 노드 풀을 만드는 것입니다.