Få åtkomst till ditt Batch-konto med hjälp av .NET-klientbiblioteket

Slutförd

I föregående lektion skapade du Azure Batch- och Azure Storage-konton. Sedan laddade du upp ffmpeg som ett program så att Batch-jobb kan använda det för sina uppgifter. Nu ska vi gå igenom vårt scenario igen.

Du vill automatisera processen med att konvertera MP4-videofiler till animerade GIF-filer. För att göra detta skapar du en app som kan ladda upp videofiler för konvertering, starta konverteringen parallellt över alla uppladdade filer, övervaka förloppet och slutligen ladda ned resultaten.

I den här lektionen ska vi titta på Azure Batch-klientbibliotek som vi kan använda för att komma åt batch- och lagringskontona som vi skapade i föregående övning.

Azure-klientbibliotek

Det finns två NuGet-paket som du behöver importera till din app. Den första är Azure Batch-klientbiblioteket Microsoft.Azure.Batch. Du använder det här biblioteket för att skapa och ta bort Azure Batch-pooler, skapa och ta bort arbetsbelastningsjobb, skapa och ta bort uppgifter och övervaka aktiviteter som körs.

Nästa bibliotek som vi använder i lösningen är Azure Storage-klientbiblioteket, Microsoft.Azure.Storage.Blob, som gör att du kan ansluta till och hantera filer i ett Azure Storage-konto. Du använder det här biblioteket för att hantera filerna i Blob Storage-containern. Appen söker igenom mappen efter alla uppladdade videor och ger jobbet åtkomst till att skriva ut aktivitetens konverterade videor.

Azure Batch Management-biblioteket Microsoft.Azure.Management.Batchär ett tredje bibliotek som du inte behöver för din app, eftersom du skapade Batch- och Storage-kontona manuellt.

Vi lägger till De NuGet-paket som vi behöver i nästa enhet med kommandot dotnet add package.

Typiskt användningsmönster

Med hjälp av föregående bibliotek är en typisk metod för att konfigurera en batchprocess:

  1. Skapa Batch Service-konto (Batch Management API).
  2. Skapa ett lagringskonto (Storage API).
  3. Skapa en Blob-klient för att hantera filbearbetning (Storage API).
  4. Ladda upp filer för att bearbeta (Storage API).
  5. Skapa en pool med beräkningsnoder (Batch API).
  6. Skapa ett jobb som ska köras på dessa noder (Batch API).
  7. Lägg till en uppgift i jobbet som ska köras (Batch API).
  8. Övervaka förloppet för uppgiften (Batch API).
  9. Ladda ned bearbetade filer när du är klar (Storage API).
  10. Ta bort indatalagringscontainern, ta bort poolen och ta bort jobbet (Batch API & Storage API).

Azure Batch Pools

En kraftfull funktion i Azure Batch är hur den hanterar beräkningsresurser. Genom att definiera resurspooler har Azure Batch flexibiliteten att ställas in på ett visst antal noder. Det här är ett bra alternativ om bearbetningsstorleken är väldefinierad och det finns ett krav på att ha en känd fast kostnad. Det andra alternativet är att tillåta att poolen skalas upp eller ned automatiskt baserat på en formel som du definierar. Den här metoden kan ta hänsyn till variationer i efterfrågan och göra det möjligt för ett program att skala för att möta denna efterfrågan. Detta tillvägagångssätt har också den extra fördelen att kostnaderna hålls så låga som möjligt.

När du skapar Azure Batch-pooler anger du följande attribut:

  • Målantalet noder (standardgräns 100)
  • Nodens operativsystem och version (en rad Windows- och Linux-avbildningar är tillgängliga)
  • Typ av nod, dedikerad eller låg prioritet (dedikerade noder är dyrare men kommer inte att föregripas. Noder med låg prioritet är billigare eftersom de drar nytta av överskottskapacitet i en region, men kan få sina uppgifter inaktiverade om resurserna krävs någon annanstans)
  • Nodens prestanda som processor, minne och lagringsstorlek
  • Princip för automatisk skalning (skalning styrs av en formel som du anger, till exempel baserat på procentandelen cpu som används)
  • Schemaläggningsprincip för aktiviteter (styr det maximala antalet aktiviteter som en nod kan köra parallellt och välj hur aktiviteter fördelas mellan noder)
  • Startuppgifter som ska utföras när noderna startas (används för att konfigurera noden för att kunna köra uppgifterna, till exempel att installera nödvändiga program)
  • Nätverkskonfiguration (alternativ för undernät och VNet)
  • Programpaket (gör att program enkelt kan distribueras till varje nod i en pool)