Komma åt ditt Batch-konto med hjälp av .NET-klientbiblioteket
I den föregående enheten 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. Vi går igenom scenariot en gång till.
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 enheten tittar vi på Azure Batch-klientbibliotek som vi kan använda för att komma åt de Batch- och Storage-konton som vi skapade i föregående övning.
Azure-klientbibliotek
Det finns två NuGet-paket som du behöver importera till appen. Det 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 samt övervaka uppgifter 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 filer i bloblagringscontainern. 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 dotnet add package
kommandot .
Vanligt användningsmönster
Med hjälp av föregående bibliotek är en typisk metod för att konfigurera en batchprocess:
- Skapa Batch Service-konto (Batch Management API).
- Skapa ett lagringskonto (Lagrings-API).
- Skapa en Blob-klient för att hantera filbearbetning (Storage API).
- Ladda upp filer som ska bearbetas (Storage API).
- Skapa en pool med beräkningsnoder (Batch API).
- Skapa ett jobb som ska köras på dessa noder (Batch API).
- Lägg till en uppgift i jobbet som ska köras (Batch API).
- Övervaka förloppet för aktiviteten (Batch API).
- Ladda ned bearbetade filer när de är klara (Storage API).
- Ta bort indatalagringscontainern, ta bort poolen och ta bort jobbet (Batch API & Storage API).
Azure Batch-pooler
En kraftfull funktion i Azure Batch är hur den hanterar beräkningsresurser. Genom att definiera pooler med resurser har Azure Batch flexibiliteten att anges till ett specifikt 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 låta poolen skala 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ålvärdet för antal noder (standardgränsen är 100)
- Nodens operativsystem och version (det finns ett utbud av Windows- och Linux-avbildningar)
- 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)
- Princip för schemaläggning av uppgifter (kontrollera det högsta antal uppgifter som en nod kan köra parallellt, och välj hur uppgifter distribueras mellan noder)
- Startuppgifter som ska köras när noder startas (används för att konfigurera noden så att den kan köra uppgifter, till exempel att installera nödvändiga program)
- Nätverkskonfiguration (alternativ för undernät och virtuellt nätverk)
- Programpaket (gör så att program enkelt kan distribueras till varje nod i en pool)