Share 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 te implementeren in Azure.

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, het publiceren van code en functies die luisteren naar triggers en functies aanroepen. Ten slotte stelt u consolelogboekregistratie in waarmee een verouderd bewakingsprogramma wordt uitgeschakeld en een consoleprovider met standaardfiltering wordt ingeschakeld.

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 makende optie Consoletoepassing (C#) en selecteer vervolgens Volgende.

  3. Geef het project onder Uw nieuwe project configureren de naam WebJobsSDKSampleen selecteer volgende.

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

NuGet-pakketten voor WebJobs 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 Hulpprogramma's>NuGet Package Manager.

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

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

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

De host maken

De host is de runtimecontainer voor functies die luistert naar triggers en functies aanroept. Met de volgende stappen maakt u een host die IHostimplementeert. 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 ook onder Program.cs 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 aan te roepen op het HostBuilder exemplaar. Zie .NET Generic Host voor meer informatie. De ConfigureWebJobs extensiemethode initialiseert de WebJobs-host. Initialiseer in ConfigureWebJobsspecifieke bindingsextensies, zoals de opslagbindingsextensie, en stel eigenschappen van deze extensies in.

Consolelogboekregistratie inschakelen

Consolelogboekregistratie instellen die gebruikmaakt van het framework voor ASP.NET Core logboekregistratie. Dit framework, Microsoft.Extensions.Logging, bevat een API die werkt met verschillende 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 door <6_X_VERSION> het 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 Package Manager-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();
        }
    }
    

    Met deze toevoeging worden de volgende wijzigingen aangebracht:

    • Dashboardlogboekregistratie uitschakelen. Het dashboard is een verouderd bewakingsprogramma en dashboardlogboekregistratie wordt niet aanbevolen voor productiescenario's met een 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 een code-eenheid die volgens een schema wordt uitgevoerd, wordt geactiveerd op basis van gebeurtenissen of die op aanvraag wordt uitgevoerd. 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 continue webtaken waarvoor 'Altijd aan' 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 opslagbindingsuitbreidingspakket installeren om verbinding te maken met Azure Storage-services.

Notitie

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

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

  2. Vervang in de volgende opdracht door <5_X_VERSION> het 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 Package Manager-console de opdracht uit met het huidige versienummer op het PM> toegangspunt.

  4. Ga verder in Program.cs en voeg 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 is geïnstantieerd:

    builder.UseEnvironment(EnvironmentName.Development);
    

    Als u wordt uitgevoerd in de ontwikkelingsmodus , vermindert u de exponentieel uitstel van polling in de wachtrij. Dit kan de hoeveelheid tijd die nodig is voor de runtime om het bericht te vinden en de functie aan te roepen aanzienlijk vertragen. U moet deze coderegel verwijderen of overschakelen naar Production wanneer u klaar bent met ontwikkelen en testen.

    De Main methode moet er nu uitzien zoals 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 de wachtrij geactiveerde functie maken

Het QueueTrigger kenmerk vertelt de runtime om 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 opgegeven 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, selecteerNieuw itemtoevoegen> en selecteer vervolgens Klasse.

  2. Geef het nieuwe C#-klassebestand de 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 klasse Functions markeren als public static om de runtime toegang te geven tot de methode en deze uit te voeren. 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 binden aan een JSON-object, een bytematrix of een CloudQueueMessage-object . Zie Wachtrijtriggergebruik. Elk bindingstype (zoals wachtrijen, blobs of tabellen) heeft een andere set parametertypen waaraan 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 voor gebruik.

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

Uw connection string zoeken en kopiëren

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

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

  2. Selecteer in Instellingende optie Toegangssleutels.

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

    Sleutel

Opslag configureren om lokaal te worden uitgevoerd

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

  1. Klik met de rechtermuisknop op het project, selecteerNieuw itemtoevoegen>, selecteer JavaScript JSON-configuratiebestand, geef het nieuwe bestand de naam appsettings.json 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 connection string} door de connection string 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 indien nieuwer.

Omdat dit bestand een connection string geheim bevat, moet u het bestand niet opslaan in een externe codeopslagplaats. Nadat u uw project naar Azure hebt gepubliceerd, kunt u dezelfde connection string 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. Ga in de Azure Portal naar uw opslagaccount en selecteer het tabblad Wachtrijen (1). Selecteer + Wachtrij (2) en voer wachtrij in als wachtrijnaam (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 toevoegenHallo 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 berichtreeks wordt doorgegeven.

  5. 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 waarin u uw functies uitvoert. 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 in het dialoogvenster Publiceren de optie Azure als doel en selecteer vervolgens Volgende.

  3. Selecteer Azure WebJobs voor Specifiek doel en selecteer vervolgens Volgende.

  4. Selecteer hierboven 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 Beschrijving
    Naam Wereldwijd unieke naam Naam waarmee uw nieuwe functie-app uniek wordt aangeduid.
    Abonnement Kies uw abonnement Het te gebruiken Azure-abonnement.
    Resourcegroep myResourceGroup 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 schaalaantal en de SKU (Gratis, Gedeeld, Basic, Standard of Premium). Kies Nieuw om een nieuw App Service-plan te maken. De Gratis- en Basic-lagen bieden geen ondersteuning voor de optie AlwaysOn om ervoor te zorgen dat uw site continu blijft werken.

    Het dialoogvenster App Service maken

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

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

AlwaysOn inschakelen

Voor een continue 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 optieAlgemene instellingen voor configuratie>, stel Altijd aan in op Aan en selecteer vervolgens 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, wijzig het webtaaktype in Continuous en selecteer Opslaan. Dit zorgt ervoor dat de webtaak wordt uitgevoerd wanneer berichten aan de wachtrij worden toegevoegd. Geactiveerde webtaken worden doorgaans alleen gebruikt voor handmatige webhooks.

    Wijzig het webtaaktype in het venster VS 2022 publiceren.

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

Een app-instelling voor een opslagverbinding maken

U moet dezelfde opslaginstelling connection string maken in Azure die u lokaal hebt gebruikt in het configuratiebestand appsettings.json. Hierdoor kunt u de connection string en

  1. Selecteer op de pagina Profiel publiceren de drie puntjes boven Hosting om sectieacties voor hostingprofielen weer te geven en kies Azure App Service-instellingen beheren.

  2. Kies in Toepassingsinstellingende optie + Instelling toevoegen.

  3. Typ in Naam van nieuwe app-instellingAzureWebJobsStorage en selecteer OK.

  4. Plak in Extern de connection string uit uw lokale instelling en selecteer OK.

De connection string is nu ingesteld in uw app in Azure.

De functie activeren in Azure

  1. Zorg ervoor dat u niet lokaal wordt uitgevoerd. Sluit het consolevenster als dit nog steeds is geopend. Anders kan het lokale exemplaar de eerste zijn die wachtrijberichten verwerkt die u maakt.

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

  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 hostingprofiel weer te geven en kies Openen in Azure Portal.

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

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

  4. Kies onder Instellingende optie Configuratie en controleer of er een nieuwe APPINSIGHTS_INSTRUMENTATIONKEY is gemaakt. Deze sleutel wordt gebruikt om uw webtaakexemplaar 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 door <3_X_VERSION> het 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 Package Manager-console de opdracht uit met het huidige versienummer op het PM> toegangspunt.

De Application Insights-provider voor logboekregistratie initialiseren

Open Program.cs en voeg de volgende initialisatiefunctie toe in de ConfigureLogging na de aanroep naar 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 code van de methode moet er nu uitzien zoals 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 wordt de Application Insights-logboekregistratieprovider geïnitialiseerd met standaardfilters. Wanneer u lokaal wordt uitgevoerd, worden alle gegevens en logboeken op een hoger niveau geschreven naar zowel de console als Application Insights.

Het project opnieuw publiceren en de functie opnieuw activeren

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

  2. Gebruik net als voorheen de Azure Portal om een wachtrijbericht te maken zoals u eerder hebt gedaan, maar voer Hello App Insights! in als de berichttekst.

  3. Selecteer op de pagina Profiel publiceren de drie puntjes boven Hosting om sectieacties voor hostingprofiel weer te geven en kies Openen in Azure Portal.

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

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

    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 heeft leeggemaakt die worden verwerkt.

    Logboeken in Application Insights

Invoer-/uitvoerbindingen toevoegen

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

Bindingen toevoegen

Invoerbindingen vereenvoudigen code die gegevens leest. 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 usingtoe:

    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 bevat 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 kopie van het bestand 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. Ga in de Azure Portal naar het tabblad Containers onder Gegevensopslag en selecteer + Container

    b. Voer in het dialoogvenster Nieuwe containercontainer in als containernaam en selecteer vervolgens Maken.

  5. Upload het bestand Program.cs 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 gedetailleerd beschreven in het venster Uitvoer .

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

    Wachtrijbericht Program.cs

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

Volgende stappen

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