Övning – Få åtkomst till ditt Batch-konto med hjälp av .NET-klientbiblioteket
Viktig
Du behöver en egen Azure-prenumeration för att köra den här övningen och du kan debiteras. Om du inte redan har en Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
Med Azure Batch-klient-API:et kan du programmatiskt styra skapande, körning och övervakning av alla resurser i ett Batch-konto.
I den här övningen skapar vi ett nytt konsolprogram och ansluter det till det Azure Batch-konto som vi skapade tidigare med hjälp av Microsoft.Azure.Batch NuGet
-paketet. För att testa att den här konfigurationen fungerar, kommer vi att fråga Batch-kontot för att säkerställa att ffmpeg har lagts till korrekt i kontot.
Skapa ett lokalt konsolprogram
Använd Cloud Shell för att slutföra de återstående övningarna i den här modulen.
Starta Cloud Shell i Azure-portalen genom att välja ikonen Cloud Shell på den översta menyn i portalen.
Använd listrutan överst i Cloud Shell-fönstret för att välja Bash.
Kör följande kommandon i Cloud Shell för att skapa en ny katalog för din app:
mkdir cutifypets cd cutifypets
Skapa ett nytt .NET Core-konsolprogram med kommandot
dotnet new
och kör det sedan:dotnet new console dotnet run
Om du har skapat konsolappen bör du se att följande skrivs ut på konsolen:
Hello World!
Konfigurera anslutningsinformation för programmet
I Cloud Shell lägger du till Azure Batch NuGet-paketet med följande
dotnet add package
kommando:dotnet add package Microsoft.Azure.Batch
Kör följande kommando i Cloud Shell för att spara resursgruppen i en miljövariabel så att vi kan använda den i efterföljande kommandon. Ersätt
[YOUR RESOURCE GROUP]
med namnet på resursgruppen som du använde när du skapade Batch-kontot.export RESOURCE_GROUP=[YOUR RESOURCE GROUP]
Använd följande kommandon för att lagra autentiseringsuppgifterna för batchkontot i miljövariabler som kan nås via konsolappen:
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)
Använd följande kommando för att kontrollera att de lagrade värdena är korrekta:
echo 'URL='$BATCH_URL 'NAME='$BATCH_NAME 'KEY='$BATCH_KEY
Kontrollera att du har angett dessa värden. Om du måste starta om Cloud Shell när som helst måste du ange dessa variabler igen.
Använd följande kod för att redigera filen
Program.cs
i redigeraren:code Program.cs
Ersätt all befintlig kod med följande:
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]); } } } }
Läs igenom föregående kod och kommentarer. Konsolappen importerar
Microsoft.Azure.Batch
-klientbiblioteket för att lägga till Azure Batch-funktioner. Med hjälp av de miljövariabler som du lagrade i föregående steg öppnar appen en anslutning till batchkontot som du skapade i Azure-portalen. Batch-klienten kan sedan fråga efter egenskaper för tjänsterna i batchen. Exempelkoden itererar genom programpaketen och visar information om den ffmpeg-app som du laddade upp.Högerklicka i kodredigeraren och välj Sparaoch högerklicka sedan och välj Avsluta.
Kompilera och kör appen i Cloud Shell med följande kommando:
dotnet run
När du kör appen skrivs programpaketet till konsolen. Du bör få följande resultat:
Installed app: ffmpeg(3.4)
Grattis! Du har integrerat Azure Batch- och Azure Storage-bibliotek i din app för att hämta en lista över installerade program i Batch-kontot. Nästa steg är att skapa en pool med beräkningsnoder för att köra våra jobb.