Delen via


Zelfstudie: Aan de slag met de Azure WebJobs SDK voor gebeurtenisgestuurde achtergrondverwerking

Ga aan de slag met de Azure WebJobs SDK voor Azure-app Service om uw web-apps in staat te stellen achtergrondtaken, geplande taken uit te voeren en te reageren op gebeurtenissen.

Gebruik Visual Studio 2022 om een .NET Core-console-app te maken die gebruikmaakt van de WebJobs SDK om te reageren op Azure Storage Queue-berichten, het project lokaal uit te voeren en ten slotte in Azure te implementeren.

In deze zelfstudie leert u het volgende:

  • Een console-app maken
  • Een functie toevoegen
  • Lokaal testen
  • Implementeren op Azure
  • Application Insights-logboekregistratie inschakelen
  • Invoer-/uitvoerbindingen toevoegen

Vereisten

Een console-app maken

In deze sectie begint u met het maken van een project in Visual Studio 2022. Vervolgens voegt u hulpprogramma's toe voor Azure-ontwikkeling, codepublicatie en functies die luisteren naar triggers en aanroepfuncties. Ten slotte stelt u consolelogboekregistratie in die een verouderd bewakingsprogramma uitschakelt en een consoleprovider met standaardfiltering inschakelt.

Notitie

De procedures in dit artikel zijn geverifieerd voor het maken van een .NET Core-console-app die wordt uitgevoerd op .NET 6.0.

Een project maken

  1. Selecteer in Visual Studio Bestand>Nieuw>Project.

  2. Selecteer onder Een nieuw project maken consoletoepassing (C#) en selecteer vervolgens Volgende.

  3. Geef onder Uw nieuwe project een naam op voor het project WebJobsSDKSample en selecteer vervolgens Volgende.

  4. Kies uw doelframework en selecteer Maken. Deze zelfstudie is geverifieerd met .NET 6.0.

WebJobs NuGet-pakketten installeren

Installeer het nieuwste WebJobs NuGet-pakket. Dit pakket bevat Microsoft.Azure.WebJobs (WebJobs SDK), waarmee u uw functiecode kunt publiceren naar WebJobs in Azure-app Service.

  1. Download de nieuwste stabiele 4.x-versie van het NuGet-pakket Microsoft.Azure.WebJobs.Extensions.

  2. Ga in Visual Studio naar Tools>NuGet Pakketbeheer.

  3. Selecteer Pakketbeheer Console. U ziet een lijst met NuGet-cmdlets, een koppeling naar documentatie en een PM> toegangspunt.

  4. Vervang in de volgende opdracht het <4_X_VERSION> huidige versienummer dat u in stap 1 hebt gevonden.

    Install-Package Microsoft.Azure.WebJobs.Extensions -version <4_X_VERSION>
    
  5. Voer in de Pakketbeheer Console de opdracht uit. De lijst met extensies wordt weergegeven en wordt automatisch geïnstalleerd.

De host maken

De host is de runtimecontainer voor functies die luisteren naar triggers en aanroepen. Met de volgende stappen maakt u een host die wordt geïmplementeerd IHost. Dit is de algemene host in ASP.NET Core.

  1. Selecteer het tabblad Program.cs , verwijder de bestaande inhoud en voeg deze using instructies toe:

    using System.Threading.Tasks;
    using Microsoft.Extensions.Hosting;
    
  2. Voeg onder Program.cs ook de volgende code toe:

    namespace WebJobsSDKSample
    {
        class Program
        {
            static async Task Main()
            {
                var builder = new HostBuilder();
                builder.ConfigureWebJobs(b =>
                {
                    b.AddAzureStorageCoreServices();
                });
                var host = builder.Build();
                using (host)
                {
                    await host.RunAsync();
                }
            }
        }
    }
    

In ASP.NET Core worden hostconfiguraties ingesteld door methoden voor het exemplaar aan te HostBuilder roepen. Zie .NET Generic Host voor meer informatie. De ConfigureWebJobs extensiemethode initialiseert de WebJobs-host. ConfigureWebJobsInitialiseer specifieke bindingsextensies, zoals de opslagbindingsextensie en stel eigenschappen van deze extensies in.

Consolelogboekregistratie inschakelen

Stel consolelogboekregistratie in die gebruikmaakt van het ASP.NET Core-logboekregistratieframework. Dit framework, Microsoft.Extensions.Logging, bevat een API die werkt met diverse ingebouwde en externe providers voor logboekregistratie.

  1. Download de nieuwste stabiele versie van het Microsoft.Extensions.Logging.Console NuGet-pakket, waaronder Microsoft.Extensions.Logging.

  2. Vervang in de volgende opdracht het <6_X_VERSION> huidige versienummer dat u in stap 1 hebt gevonden. Elk type NuGet-pakket heeft een uniek versienummer.

    Install-Package Microsoft.Extensions.Logging.Console -version <6_X_VERSION>
    
  3. Vul in de Pakketbeheer Console het huidige versienummer in en voer de opdracht uit. De lijst met extensies wordt weergegeven en wordt automatisch geïnstalleerd.

  4. Voeg onder het tabblad Program.cs deze using instructie toe:

    using Microsoft.Extensions.Logging;
    
  5. Ga verder onder Program.cs en voeg de ConfigureLogging methode toe aan HostBuilder, vóór de Build opdracht. De AddConsole methode voegt consolelogboekregistratie toe aan de configuratie.

    builder.ConfigureLogging((context, b) =>
    {
        b.AddConsole();
    });
    

    De Main methode ziet er nu als volgt uit:

    static async Task Main()
    {
        var builder = new HostBuilder();
        builder.ConfigureWebJobs(b =>
                {
                    b.AddAzureStorageCoreServices();
                });
        builder.ConfigureLogging((context, b) =>
                {
                    b.AddConsole();
                });
        var host = builder.Build();
        using (host)
        {
            await host.RunAsync();
        }
    }
    

    Deze toevoeging brengt deze wijzigingen aan:

    • Hiermee schakelt u dashboardlogboekregistratie uit. Het dashboard is een verouderd bewakingsprogramma en dashboardlogboekregistratie wordt niet aanbevolen voor productiescenario's met hoge doorvoer.
    • Hiermee voegt u de consoleprovider toe met standaardfiltering.

U kunt nu een functie toevoegen die wordt geactiveerd door berichten die binnenkomen in een Azure Storage-wachtrij.

Een functie toevoegen

Een functie is code-eenheid die wordt uitgevoerd volgens een schema, wordt geactiveerd op basis van gebeurtenissen of wordt uitgevoerd op aanvraag. Een trigger luistert naar een service-gebeurtenis. In de context van de WebJobs SDK verwijst geactiveerd niet naar de implementatiemodus. Gebeurtenisgestuurde of geplande webtaken die zijn gemaakt met behulp van de SDK, moeten altijd worden geïmplementeerd als doorlopende webtaken waarvoor Alwayson is ingeschakeld.

In deze sectie maakt u een functie die wordt geactiveerd door berichten in een Azure Storage-wachtrij. Eerst moet u een bindingsextensie toevoegen om verbinding te maken met Azure Storage.

De Storage-bindingextensie installeren

Vanaf versie 3 van de WebJobs SDK moet u een afzonderlijk Storage-bindingsuitbreidingspakket installeren om verbinding te maken met Azure Storage-services.

Notitie

Vanaf 5.x is Microsoft.Azure.WebJobs.Extensions.Storage gesplitst door de opslagservice en is de AddAzureStorage() extensiemethode gemigreerd op servicetype.

  1. Download de nieuwste stabiele versie van het NuGet-pakket Microsoft.Azure.WebJobs.Extensions.Storage , versie 5.x.

  2. Vervang in de volgende opdracht het <5_X_VERSION> huidige versienummer dat u in stap 1 hebt gevonden. Elk type NuGet-pakket heeft een uniek versienummer.

    Install-Package Microsoft.Azure.WebJobs.Extensions.Storage -Version <5_X_VERSION>
    
  3. Voer in de Pakketbeheer Console de opdracht uit met het huidige versienummer op het PM> toegangspunt.

  4. Als u doorgaat in Program.cs, voegt u in de ConfigureWebJobs extensiemethode de AddAzureStorageQueues methode toe aan het HostBuilder exemplaar (vóór de Build opdracht) om de storage-extensie te initialiseren. Op dit moment ziet de ConfigureWebJobs methode er als volgt uit:

    builder.ConfigureWebJobs(b =>
    {
        b.AddAzureStorageCoreServices();
        b.AddAzureStorageQueues();
    });
    
  5. Voeg de volgende code toe aan de Main methode nadat de builder instantie is geïnstantieerd:

    builder.UseEnvironment(EnvironmentName.Development);
    

    Als u in de ontwikkelmodus wordt uitgevoerd, wordt de exponentiële back-off van de wachtrij verminderd, waardoor de runtime de hoeveelheid tijd die nodig is om het bericht te vinden en de functie aan te roepen aanzienlijk kan vertragen. Verwijder deze coderegel of schakel over naar Production wanneer u klaar bent met ontwikkelen en testen.

    De Main methode moet er nu uitzien als in het volgende voorbeeld:

    static async Task Main()
    {
        var builder = new HostBuilder();
        builder.UseEnvironment(EnvironmentName.Development);
        builder.ConfigureLogging((context, b) =>
        {
            b.AddConsole();
        });
        builder.ConfigureWebJobs(b =>
        {
            b.AddAzureStorageCoreServices();
            b.AddAzureStorageQueues();
        });
        var host = builder.Build();
        using (host)
        {
            await host.RunAsync();
        }
    }
    

Een door een wachtrij geactiveerde functie maken

Het QueueTrigger kenmerk vertelt de runtime deze functie aan te roepen wanneer een nieuw bericht wordt geschreven in een Azure Storage-wachtrij met de naam queue. De inhoud van het wachtrijbericht wordt verstrekt aan de methodecode in de message parameter. De hoofdtekst van de methode is waar u de triggergegevens verwerkt. In dit voorbeeld registreert de code alleen het bericht.

  1. Klik in Solution Explorer met de rechtermuisknop op het project, selecteer Nieuw item toevoegen>en selecteer vervolgens Klasse.

  2. Geef het nieuwe C#-klassebestand een naam Functions.cs en selecteer Toevoegen.

  3. Vervang in Functions.cs de gegenereerde sjabloon door de volgende code:

    using Microsoft.Azure.WebJobs;
    using Microsoft.Extensions.Logging;
    
    namespace WebJobsSDKSample
    {
        public class Functions
        {
            public static void ProcessQueueMessage([QueueTrigger("queue")] string message, ILogger logger)
            {
                logger.LogInformation(message);
            }
        }
    }
    

    U moet de Functions-klasse public static als zodanig markeren dat de runtime de methode kan openen en uitvoeren. Wanneer in het bovenstaande codevoorbeeld een bericht wordt toegevoegd aan een wachtrij met de naam queue, wordt de functie uitgevoerd en wordt de message tekenreeks naar de logboeken geschreven. De wachtrij die wordt bewaakt, bevindt zich in het standaard Azure Storage-account dat u vervolgens maakt.

De message parameter hoeft geen tekenreeks te zijn. U kunt ook verbinden met een JSON-object, een bytematrix of een CloudQueueMessage-object . Zie het gebruik van wachtrijtriggers. Elk bindingstype (zoals wachtrijen, blobs of tabellen) heeft een andere set parametertypen waarmee u kunt binden.

Een Azure-opslagaccount maken

De Azure Storage Emulator die lokaal wordt uitgevoerd, beschikt niet over alle functies die de WebJobs SDK nodig heeft. U maakt een opslagaccount in Azure en configureert het project om dit te gebruiken.

Zie Een Azure Storage-account maken voor meer informatie over het maken van een v2-opslagaccount voor algemeen gebruik.

Uw verbindingsreeks zoeken en kopiëren

Er is een verbindingsreeks vereist om opslag te configureren. Bewaar deze verbindingsreeks voor de volgende stappen.

  1. Navigeer in Azure Portal naar uw opslagaccount en selecteer Instellingen.

  2. Selecteer toegangssleutels in Instellingen.

  3. Selecteer voor de verbindingsreeks onder sleutel1 het pictogram Kopiëren naar klembord.

    sleutel

Opslag configureren om lokaal uit te voeren

De WebJobs SDK zoekt naar de opslag verbindingsreeks in de toepassingsinstellingen in Azure. Wanneer u lokaal uitvoert, wordt gezocht naar deze waarde in het lokale configuratiebestand of in omgevingsvariabelen.

  1. Klik met de rechtermuisknop op het project, selecteer Nieuw item toevoegen>, selecteer JavaScript JSON-configuratiebestand, geef het nieuwe bestand een naam appsettings.json bestand en selecteer Toevoegen.

  2. Voeg in het nieuwe bestand een AzureWebJobsStorage veld toe, zoals in het volgende voorbeeld:

    {
        "AzureWebJobsStorage": "{storage connection string}"
    }
    
  3. Vervang {storage verbindingsreeks} door de verbindingsreeks die u eerder hebt gekopieerd.

  4. Selecteer het bestand appsettings.json in Solution Explorer en stel in het venster Eigenschappen de actie Kopiëren naar Uitvoermap in op Kopiëren als nieuwer.

Omdat dit bestand een verbindingsreeks geheim bevat, moet u het bestand niet opslaan in een externe codeopslagplaats. Nadat u uw project naar Azure hebt gepubliceerd, kunt u dezelfde verbindingsreeks app-instelling toevoegen in uw app in Azure-app Service.

Lokaal testen

Bouw en voer het project lokaal uit en maak een berichtenwachtrij om de functie te activeren.

  1. Navigeer in Azure Portal naar uw opslagaccount en selecteer het tabblad Wachtrijen (1). Selecteer + Wachtrij (2) en voer de wachtrij in als de naam van de wachtrij (3). Selecteer vervolgens OK (4).

    In deze afbeelding ziet u hoe u een nieuwe Azure Storage-wachtrij maakt.

  2. Klik op de nieuwe wachtrij en selecteer Bericht toevoegen.

  3. Voer in het dialoogvenster Bericht toevoegen Hallo wereld! in als berichttekst en selecteer VERVOLGENS OK. Er staat nu een bericht in de wachtrij.

    Wachtrij maken

  4. Druk op Ctrl+F5 om het project uit te voeren.

    In de console ziet u dat de runtime uw functie heeft gevonden. Omdat u het QueueTrigger kenmerk in de ProcessQueueMessage functie hebt gebruikt, luistert de WebJobs-runtime naar berichten in de wachtrij met de naam queue. Wanneer er een nieuw bericht in deze wachtrij wordt gevonden, roept de runtime de functie aan, waarbij de waarde van de berichttekenreeks wordt doorgegeven.

  5. Ga terug naar het venster Wachtrij en vernieuw het. Het bericht is verdwenen, omdat het is verwerkt door uw functie die lokaal wordt uitgevoerd.

  6. Sluit het consolevenster.

Het is nu tijd om uw WebJobs SDK-project naar Azure te publiceren.

Implementeren op Azure

Tijdens de implementatie maakt u een App Service-exemplaar waar u uw functies gaat uitvoeren. Wanneer u een .NET-console-app publiceert naar App Service in Azure, wordt deze automatisch uitgevoerd als een webtaak. Zie WebJobs ontwikkelen en implementeren met Visual Studio voor meer informatie over publiceren.

Azure-resources maken

  1. Klik in Solution Explorer met de rechtermuisknop op het project en selecteer Publiceren.

  2. Selecteer Azure for Target in het dialoogvenster Publiceren en selecteer vervolgens Volgende.

  3. Selecteer Azure WebJobs voor een specifiek doel en selecteer vervolgens Volgende.

  4. Selecteer boven App Service-exemplaren de plusknop (+) om een nieuwe Azure-webtaak te maken.

  5. Gebruik in het dialoogvenster App Service (Windows) de hostinginstellingen in de volgende tabel.

    Instelling Voorgestelde waarde Omschrijving
    Naam Wereldwijd unieke naam Naam waarmee uw nieuwe functie-app uniek wordt aangeduid.
    Abonnement Kies uw abonnement Het te gebruiken Azure-abonnement.
    Resourcegroep myResourceGroup De naam van de resourcegroep waarin uw functie-app moet worden gemaakt. Kies Nieuw om een nieuwe resourcegroep te maken.
    Hostingabonnement App Service-plan Een App Service-plan geeft de locatie, de grootte en de functies van de webserverfarm aan die als host fungeert voor uw app. U kunt geld besparen bij het hosten van meerdere apps door de web-apps te configureren voor het delen van één App Service-plan. App Service-plannen definiëren de regio, de grootte van het exemplaar, het aantal schaal en de SKU (Gratis, Gedeeld, Basic, Standard of Premium). Kies Nieuw om een nieuw App Service-plan te maken. Gratis en Basic-lagen bieden geen ondersteuning voor de optie AlwaysOn om uw site continu actief te houden.

    Het dialoogvenster App Service maken

  6. Selecteer Maken om een webtaak en gerelateerde resources in Azure te maken met deze instellingen en implementeer uw projectcode.

  7. Selecteer Voltooien om terug te keren naar de pagina Publiceren .

AlwaysOn inschakelen

Voor een doorlopende webtaak moet u de instelling Altijd aan op de site inschakelen, zodat uw webtaken correct worden uitgevoerd. Als u Alwayson niet inschakelt, wordt de runtime na een paar minuten inactiviteit inactief.

  1. Selecteer op de pagina Publiceren de drie puntjes boven Hosting om sectieacties voor hostingprofielen weer te geven en kies Openen in Azure Portal.

  2. Kies Onder Instellingen de>optie Algemene configuratie-instellingen, stel Altijd aan in op Aan en selecteer Opslaan en Doorgaan om de site opnieuw op te starten.

Het project publiceren

Nu de web-app is gemaakt in Azure, is het tijd om het WebJobs-project te publiceren.

  1. Selecteer op de pagina Publiceren onder Hosting de knop Bewerken en wijzig het type webtaak in Continuous en selecteer Opslaan. Dit zorgt ervoor dat de webtaak wordt uitgevoerd wanneer berichten worden toegevoegd aan de wachtrij. Geactiveerde webtaken worden doorgaans alleen gebruikt voor handmatige webhooks.

    Wijzig het type webtaak in het venster Publiceren in VS 2022.

  2. Selecteer de knop Publiceren in de rechterbovenhoek van de pagina Publiceren . Wanneer de bewerking is voltooid, wordt uw webtaak uitgevoerd in Azure.

Een instelling voor de opslagverbindings-app maken

U moet dezelfde instelling voor opslag verbindingsreeks maken in Azure die u lokaal hebt gebruikt in uw appsettings.json configuratiebestand. Hierdoor kunt u de verbindingsreeks veiliger opslaan en

  1. Selecteer op de pagina Profiel publiceren de drie puntjes boven Hosting om de sectie Acties voor het hostprofiel weer te geven en kies Azure-app Service-instellingen beheren.

  2. Kies in toepassingsinstellingen de optie + Instelling toevoegen.

  3. Typ AzureWebJobsStorage en selecteer OK in de naam van de nieuwe app-instelling.

  4. Plak in Remote de verbindingsreeks in uw lokale instelling en selecteer OK.

De verbindingsreeks is nu ingesteld in uw app in Azure.

De functie activeren in Azure

  1. Zorg ervoor dat u niet lokaal werkt. Sluit het consolevenster als dit nog steeds is geopend. Anders kan het lokale exemplaar de eerste zijn om wachtrijberichten te verwerken die u maakt.

  2. Voeg op de pagina Wachtrij in Visual Studio net als voorheen een bericht toe aan de wachtrij.

  3. Vernieuw de pagina Wachtrij en het nieuwe bericht verdwijnt omdat het is verwerkt door de functie die wordt uitgevoerd in Azure.

Application Insights-logboekregistratie inschakelen

Wanneer de webtaak wordt uitgevoerd in Azure, kunt u de uitvoering van de functie niet controleren door console-uitvoer weer te geven. Als u uw webtaak wilt kunnen bewaken, moet u een gekoppeld Application Insights-exemplaar maken wanneer u uw project publiceert.

Een Application Insights-exemplaar maken

  1. Selecteer op de pagina Profiel publiceren de drie puntjes boven Hosting om sectieacties voor hostingprofielen weer te geven en kies Openen in De Azure-portal.

  2. Kies Application Insights in de web-app onder Instellingen en selecteer Application Insights inschakelen.

  3. Controleer de gegenereerde resourcenaam voor het exemplaar en de locatie en selecteer Toepassen.

  4. Kies Configuratie onder Instellingen en controleer of er een nieuwe APPINSIGHTS_INSTRUMENTATIONKEY is gemaakt. Deze sleutel wordt gebruikt om uw webtaakexemplaren te verbinden met Application Insights.

Als u wilt profiteren van Application Insights-logboekregistratie , moet u ook uw logboekcode bijwerken.

De Application Insights-extensie installeren

  1. Download de nieuwste stabiele versie van het NuGet-pakket Microsoft.Azure.WebJobs.Logging.ApplicationInsights , versie 3.x.

  2. Vervang in de volgende opdracht het <3_X_VERSION> huidige versienummer dat u in stap 1 hebt gevonden. Elk type NuGet-pakket heeft een uniek versienummer.

    Install-Package Microsoft.Azure.WebJobs.Logging.ApplicationInsights -Version <3_X_VERSION>
    
  3. Voer in de Pakketbeheer Console de opdracht uit met het huidige versienummer op het PM> toegangspunt.

De Application Insights-logboekregistratieprovider initialiseren

Open Program.cs en voeg na de ConfigureLogging aanroep de volgende initialisatiefunctie toe:AddConsole

// If the key exists in settings, use it to enable Application Insights.
string instrumentationKey = context.Configuration["APPINSIGHTS_INSTRUMENTATIONKEY"];
if (!string.IsNullOrEmpty(instrumentationKey))
{
    b.AddApplicationInsightsWebJobs(o => o.InstrumentationKey = instrumentationKey);
}

De Main methodecode moet er nu uitzien als in het volgende voorbeeld:

static async Task Main()
{
    var builder = new HostBuilder();
    builder.UseEnvironment(EnvironmentName.Development);
    builder.ConfigureWebJobs(b =>
            {
                b.AddAzureStorageCoreServices();
                b.AddAzureStorage();
            });
    builder.ConfigureLogging((context, b) =>
            {
                b.AddConsole();

                // If the key exists in settings, use it to enable Application Insights.
                string instrumentationKey = context.Configuration["APPINSIGHTS_INSTRUMENTATIONKEY"];
                if (!string.IsNullOrEmpty(instrumentationKey))
                {
                    b.AddApplicationInsightsWebJobs(o => o.InstrumentationKey = instrumentationKey);
                }
            });
    var host = builder.Build();
    using (host)
    {
        await host.RunAsync();
    }
}

Hiermee initialiseert u de Application Insights-logboekregistratieprovider met standaardfiltering. Wanneer u lokaal wordt uitgevoerd, worden alle logboeken met informatie en logboeken op een hoger niveau naar zowel de console als Application Insights geschreven.

Het project opnieuw publiceren en de functie opnieuw activeren

  1. Klik in Solution Explorer met de rechtermuisknop op het project en selecteer Publiceren.

  2. Net als voorheen gebruikt u Azure Portal om een wachtrijbericht te maken zoals u eerder hebt gedaan, met uitzondering van Hello App Insights! als berichttekst.

  3. Selecteer op de pagina Profiel publiceren de drie puntjes boven Hosting om sectieacties voor hostingprofielen weer te geven en kies Openen in De Azure-portal.

  4. Kies Application Insights in de web-app onder Instellingen en selecteer Application Insights-gegevens weergeven.

  5. Selecteer Zoeken en selecteer vervolgens Alle gegevens weergeven in de afgelopen 24 uur.

    Zoeken selecteren

  6. Als u het bericht Hello App Insights! niet ziet, selecteert u Periodiek vernieuwen gedurende enkele minuten. Logboeken worden niet onmiddellijk weergegeven, omdat het even duurt voordat de Application Insights-client de logboeken die worden verwerkt, leegmaken.

    Logboeken in Application Insights

Invoer-/uitvoerbindingen toevoegen

Bindingen vereenvoudigen code waarmee gegevens worden gelezen en geschreven. Invoerbindingen vereenvoudigen code waarmee gegevens worden gelezen. Uitvoerbindingen vereenvoudigen code waarmee gegevens worden geschreven.

Bindingen toevoegen

Invoerbindingen vereenvoudigen code waarmee gegevens worden gelezen. In dit voorbeeld is het wachtrijbericht de naam van een blob, die u gebruikt om een blob te zoeken en te lezen in Azure Storage. Vervolgens gebruikt u uitvoerbindingen om een kopie van het bestand naar dezelfde container te schrijven.

  1. Voeg in Functions.cs een using:

    using System.IO;
    
  2. Vervang de ProcessQueueMessage-methode door de volgende code:

    public static void ProcessQueueMessage(
        [QueueTrigger("queue")] string message,
        [Blob("container/{queueTrigger}", FileAccess.Read)] Stream myBlob,
        [Blob("container/copy-{queueTrigger}", FileAccess.Write)] Stream outputBlob,
        ILogger logger)
    {
        logger.LogInformation($"Blob name:{message} \n Size: {myBlob.Length} bytes");
        myBlob.CopyTo(outputBlob);
    }
    

    In deze code queueTrigger is een bindingsexpressie, wat betekent dat deze tijdens runtime wordt omgezet in een andere waarde. Tijdens runtime heeft het de inhoud van het wachtrijbericht.

    Deze code maakt gebruik van uitvoerbindingen om een kopie te maken van het bestand dat wordt geïdentificeerd door het wachtrijbericht. De bestandskopie wordt voorafgegaan door copy-.

  3. Voeg in Program.cs in de ConfigureWebJobs extensiemethode de AddAzureStorageBlobs methode toe aan het HostBuilder exemplaar (vóór de Build opdracht) om de storage-extensie te initialiseren. Op dit moment ziet de ConfigureWebJobs methode er als volgt uit:

    builder.ConfigureWebJobs(b =>
    {
        b.AddAzureStorageCoreServices();
        b.AddAzureStorageQueues();
        b.AddAzureStorageBlobs();
    });
    
  4. Maak een blobcontainer in uw opslagaccount.

    a. Navigeer in Azure Portal naar het tabblad Containers onder Gegevensopslag en selecteer + Container

    b. Voer in het dialoogvenster Nieuwe container de containernaam in en selecteer vervolgens Maken.

  5. Upload het Program.cs-bestand naar de blobcontainer. (Dit bestand wordt hier als voorbeeld gebruikt. U kunt een tekstbestand uploaden en een wachtrijbericht maken met de naam van het bestand.)

    a. Selecteer de nieuwe container die u hebt gemaakt

    b. Selecteer de knop Uploaden.

    Knop Blob uploaden

    c. Zoek en selecteer Program.cs en selecteer vervolgens OK.

Het project opnieuw publiceren

  1. Klik in Solution Explorer met de rechtermuisknop op het project en selecteer Publiceren.

  2. Controleer in het dialoogvenster Publiceren of het huidige profiel is geselecteerd en selecteer Vervolgens Publiceren. De resultaten van de publicatie worden beschreven in het venster Uitvoer .

  3. Maak een wachtrijbericht in de wachtrij die u eerder hebt gemaakt, met Program.cs als de tekst van het bericht.

    Wachtrijbericht Program.cs

  4. Er wordt een kopie van het bestand, copy-Program.cs, weergegeven in de blobcontainer.

Volgende stappen

In deze zelfstudie hebt u gezien hoe u een WebJobs SDK 3.x-project maakt, uitvoert en implementeert.