Delen via


Quickstart: Een PowerShell Durable Functions-app maken

Gebruik Durable Functions, een functie van Azure Functions, om stateful functies te schrijven in een serverloze omgeving. U installeert Durable Functions door de extensie Azure Functions in Visual Studio Code te installeren. De extensie beheert de status, controlepunten en herstarten in uw toepassing.

In deze quickstart gebruikt u de Durable Functions-extensie in Visual Studio Code om lokaal een 'hallo wereld'-Durable Functions-app te maken en te testen in Azure Functions. De Durable Functions app organiseert en koppelt deze aanroepen aan andere functies. Vervolgens publiceert u de functiecode naar Azure. De hulpprogramma's die u gebruikt, zijn beschikbaar via de Visual Studio Code-extensie.

Schermafbeelding met een Durable Functions-app in Visual Studio Code.

Vereisten

U hebt het volgende nodig om deze snelstartgids te voltooien:

Als u geen Azure account hebt, maakt u een free-account voordat u begint.

Uw lokale project maken

In deze sectie gebruikt u Visual Studio Code om een lokaal Azure Functions project te maken.

  1. Selecteer in Visual Studio Code F1 (of selecteer Ctrl/Cmd+Shift+P) om het opdrachtenpalet te openen. Voer bij de prompt (>) Azure Functions in en selecteer vervolgens: Nieuw project maken.

    Schermopname van de opdracht Een functie maken.

  2. Kies Bladeren. In het dialoogvenster Map selecteren, navigeer naar een map die u voor uw project wilt gebruiken en kies Selecteren.

  3. Geef bij de prompts de volgende informatie op:

    Snel Actie Beschrijving
    Selecteer een taal voor uw functie-app-project Selecteer PowerShell. Hiermee maakt u een lokaal PowerShell Functions-project.
    Een versie selecteren Selecteer Azure Functions v4. U ziet deze optie alleen wanneer Core Tools nog niet is geïnstalleerd. In dit geval wordt Core Tools geïnstalleerd wanneer u de app voor het eerst uitvoert.
    Selecteer een sjabloon voor de eerste functie van uw project Selecteer Nu overslaan.
    Selecteer hoe u uw project wilt openen Selecteer Openen in het huidige venster. Hiermee opent u Visual Studio Code in de map die u hebt geselecteerd.

Visual Studio Code installeert Azure Functions Core Tools als het nodig is om een project te maken. Er wordt ook een project voor een functie-app in een map gemaakt. Dit project bevat de configuratiebestanden host.json en local.settings.json.

Er wordt ook een package.json-bestand gemaakt in de hoofdmap.

De functie-app configureren voor het gebruik van PowerShell 7.4 en de zelfstandige Durable Functions SDK

Open het bestand local.settings.json en controleer of een instelling genaamd FUNCTIONS_WORKER_RUNTIME_VERSION staat ingesteld op 7.4 en of een instelling genaamd ExternalDurablePowerShellSDK staat ingesteld op true. Als ze ontbreken of als ze zijn ingesteld op andere waarden, werkt u de inhoud van het bestand bij.

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "",
    "FUNCTIONS_WORKER_RUNTIME": "powershell",
    "FUNCTIONS_WORKER_RUNTIME_VERSION" : "7.4",
    "ExternalDurablePowerShellSDK": "true"
  }
}

Geef vervolgens een vermelding op voor de DF SDK in uw requirements.psd1 bestand, zoals in het onderstaande voorbeeld:

# This file enables modules to be automatically managed by the Functions service.
# See https://aka.ms/functionsmanageddependency for additional information.
#
@{
    # For latest supported version, go to 'https://www.powershellgallery.com/packages/AzureFunctions.PowerShell.Durable.SDK/'.
    'AzureFunctions.PowerShell.Durable.SDK' = '2.*'
}

Zorg ervoor dat u de nieuwste versie van de Module AzureFunctions.PowerShell.Durable.SDK gebruikt. De 2.* versieaanduiding zorgt ervoor dat u de nieuwste stabiele 2.x-versie krijgt.

Voeg de volgende regel toe aan uw profile.ps1 bestand (meestal aan het einde van het bestand):

Import-Module AzureFunctions.PowerShell.Durable.SDK -ErrorAction Stop

Uw functies maken

De meest eenvoudige Durable Functions-app heeft drie functies:

  • Orchestratorfunctie: een werkstroom die andere functies organiseert.
  • Activiteitsfunctie: Een functie die wordt aangeroepen door de orchestratorfunctie, voert werk uit en retourneert eventueel een waarde.
  • Client, functie: Een normale functie in Azure waarmee een orchestratorfunctie wordt gestart. In dit voorbeeld wordt een door HTTP geactiveerde functie gebruikt.

Orchestrator-functie

Gebruik een sjabloon om de Durable Functions app-code in uw project te maken.

  1. Voer in het opdrachtpalet Azure Functions: Functie maken in en selecteer deze.

  2. Geef bij de prompts de volgende informatie op:

    Snel Actie Beschrijving
    Selecteer een sjabloon voor uw functie Voer Durable Functions orchestrator in. Maak een Durable Functions-app-orkestratie.
    Geef een functienaam op Voer HelloOrchestrator in. Een naam voor uw duurzame functie.

U hebt een orchestrator toegevoegd om activiteitsfuncties te coördineren. Open HelloOrchestrator/run.ps1 om de orchestrator-functie weer te geven. Elke aanroep van de cmdlet Invoke-ActivityFunction roept een activiteitsfunctie aan met de naam Hello.

Vervolgens voegt u de activiteitsfunctie Hello waarnaar wordt verwezen toe.

Activiteitsfunctie

  1. Voer in het opdrachtpalet Azure Functions: Functie maken in en selecteer deze.

  2. Geef bij de prompts de volgende informatie op:

    Snel Actie Beschrijving
    Selecteer een sjabloon voor uw functie Selecteer Durable Functions activiteit. Hiermee maakt u een activiteitsfunctie.
    Geef een functienaam op Voer Hallo in. De naam van uw activiteitsfunctie.

U hebt de Hello activiteitsfunctie toegevoegd die wordt aangeroepen door de orchestrator. Open Hello/run.ps1 om te zien dat er een naam als invoer wordt gebruikt en een begroeting wordt geretourneerd. Een activiteitsfunctie is de plaats waar u acties uitvoert, zoals het maken van een databaseaanroep of het uitvoeren van een berekening.

Ten slotte voegt u een HTTP-geactiveerde functie toe waarmee de orkestratie wordt gestart.

Clientfunctie (HTTP-starter)

  1. Voer in het opdrachtpalet Azure Functions: Functie maken in en selecteer deze.

  2. Geef bij de prompts de volgende informatie op:

    Snel Actie Beschrijving
    Selecteer een sjabloon voor uw functie Selecteer Durable Functions HTTP-starter. Hiermee maakt u een HTTP-starterfunctie.
    Geef een functienaam op Voer HttpStart in. De naam van uw activiteitsfunctie.
    Autorisatieniveau Selecteer Anoniem. Voor demodoeleinden kan met deze waarde de functie worden aangeroepen zonder verificatie te gebruiken.

U hebt een door HTTP geactiveerde functie toegevoegd waarmee een orkestratie wordt gestart. Open HttpStart/run.ps1 om te controleren of de cmdlet Start-NewOrchestration wordt gebruikt om een nieuwe indeling te starten. Vervolgens wordt de cmdlet New-OrchestrationCheckStatusResponse gebruikt om een HTTP-antwoord te retourneren dat URL's bevat die kunnen worden gebruikt voor het bewaken en beheren van de nieuwe indeling.

U hebt nu een Durable Functions-app die u lokaal kunt uitvoeren en implementeren in Azure.

Aanbeveling

In deze quickstart wordt gebruikgemaakt van de zelfstandige Durable Functions PowerShell SDK, die nu algemeen beschikbaar is en de beste prestaties en nieuwste functies biedt. Zie de handleiding voor de zelfstandige PowerShell SDK voor meer informatie over de SDK en de migratie van de verouderde ingebouwde versie.

De functie lokaal testen

Azure Functions Core Tools biedt u de mogelijkheid om een Azure Functions project uit te voeren op uw lokale ontwikkelcomputer. U wordt gevraagd deze hulpprogramma's te installeren wanneer u voor het eerst een functie start in Visual Studio.

  1. Als u uw functie wilt testen, stelt u een onderbrekingspunt in de code van de Hello activiteitsfunctie in (in Hello/run.ps1). Selecteer F5 of selecteer Debuggen: Start Debuggen in het opdrachtpalet om het function app-project te starten. Uitvoer van Core Tools wordt weergegeven in het terminalpaneel.

    Notitie

    Zie Durable Functions diagnostics voor meer informatie over foutopsporing.

  2. Durable Functions heeft een Azure-opslagaccount nodig om te draaien. Wanneer Visual Studio Code u wordt gevraagd een opslagaccount te selecteren, kiest u Selecteer het opslagaccount.

    Schermopname van de opdracht Opslagaccount maken.

  3. Geef bij de prompts de volgende informatie op om een nieuw opslagaccount te maken in Azure.

    Snel Actie Beschrijving
    Abonnement selecteren Selecteer de naam van uw abonnement. Uw Azure-abonnement.
    Een opslagaccount selecteren Selecteer Een nieuw opslagaccount maken.
    Voer de naam van het nieuwe opslagaccount in Voer een unieke naam in. De naam van het opslagaccount dat moet worden gemaakt.
    Een resourcegroep selecteren Voer een unieke naam in. De naam van de resourcegroep die u wilt maken.
    Een locatie selecteren Selecteer een Azure regio. Selecteer een regio die dicht bij u in de buurt is.
  4. Kopieer in het terminalvenster het URL-eindpunt van uw door HTTP geactiveerde functie.

    Schermopname van Azure lokale uitvoer.

  5. Gebruik uw browser of een HTTP-testhulpprogramma om een HTTP POST-aanvraag naar het URL-eindpunt te verzenden.

    Vervang het laatste segment door de naam van de Orchestrator-functie (HelloOrchestrator). De URL moet vergelijkbaar zijn met http://localhost:7071/api/orchestrators/HelloOrchestrator.

    Het antwoord is het eerste resultaat van de HTTP-functie. Het laat u weten dat de duurzame orkestratie succesvol is gestart. Het eindresultaat van de orkestratie wordt nog niet weergegeven. De reactie bevat enkele nuttige URL's. Vraag voor nu de status van de orchestratie op.

  6. Kopieer de URL-waarde voor statusQueryGetUri, plak deze in de adresbalk van de browser en voer de aanvraag uit. U kunt ook uw HTTP-testhulpprogramma blijven gebruiken om de GET-aanvraag uit te geven.

    Het verzoek vraagt de orchestratie-instantie om de status. U moet een uiteindelijke reactie krijgen, waarin wordt weergegeven dat het exemplaar is voltooid en de uitvoer of resultaten van de duurzame functie bevat. Dit voorbeeld ziet er als volgt uit:

    {
        "name": "HelloOrchestrator",
        "instanceId": "9a528a9e926f4b46b7d3deaa134b7e8a",
        "runtimeStatus": "Completed",
        "input": null,
        "customStatus": null,
        "output": [
            "Hello Tokyo!",
            "Hello Seattle!",
            "Hello London!"
        ],
        "createdTime": "2020-03-18T21:54:49Z",
        "lastUpdatedTime": "2020-03-18T21:54:54Z"
    }
    
  7. Als u de foutopsporing wilt stoppen, selecteert u Shift+F5 in Visual Studio Code.

Nadat u hebt gecontroleerd of de functie correct wordt uitgevoerd op uw lokale computer, is het tijd om het project te publiceren naar Azure.

Meld u aan bij Azure

Voordat u Azure resources kunt maken of uw app kunt publiceren, moet u zich aanmelden bij Azure.

  1. Als u nog niet bent aangemeld, selecteert u in de balk Activiteit het pictogram Azure. Selecteer vervolgens onder ResourcesAangetekend bij Azure.

    Schermopname van het aanmeldingsvenster in Azure venster in Visual Studio Code.

    Als u al bent aangemeld en uw bestaande abonnementen kunt zien, gaat u naar de volgende sectie. Als u nog geen Azure account hebt, selecteert u Maak een Azure-account. Studenten kunnen Maak een Azure-account voor studenten selecteren.

  2. Wanneer u in de browser wordt gevraagd, selecteert u uw Azure-account en meldt u zich aan met uw Azure accountreferenties. Als u een nieuw account maakt, kunt u zich aanmelden nadat uw account is gemaakt.

  3. Nadat u zich hebt aangemeld, kunt u het nieuwe browservenster sluiten. De abonnementen die deel uitmaken van uw Azure-account, worden weergegeven in de zijbalk.

De functie-app maken in Azure

In deze sectie maakt u een functie-app in het Flex Consumption-abonnement, samen met gerelateerde resources in uw Azure-abonnement. Veel van de beslissingen voor het maken van resources worden voor u gemaakt op basis van standaardgedrag. Voor meer controle over de gemaakte resources moet u in plaats daarvan uw functie-app maken met geavanceerde opties.

  1. Selecteer in Visual Studio Code F1 om het opdrachtenpalet te openen. Voer bij de prompt (>) in en selecteer Azure Functions: Functie-app maken in Azure.

  2. Geef bij de prompts de volgende informatie op:

    Snel Actie
    Abonnement selecteren Selecteer het Azure-abonnement dat u wilt gebruiken. De prompt wordt niet weergegeven wanneer er slechts één abonnement zichtbaar is onder Resources.
    Voer de naam van een nieuwe functie-app in Voer een wereldwijd unieke naam in die geldig is in een URL-pad. De naam die u invoert, wordt gevalideerd om ervoor te zorgen dat deze uniek is in Azure Functions.
    Selecteer een locatie voor nieuwe resources Selecteer een Azure regio. Voor betere prestaties selecteert u een regio bij u in de buurt. Alleen regio's die worden ondersteund door Flex Consumption-abonnementen worden weergegeven.
    Een runtimestack selecteren Selecteer de taalversie die u momenteel lokaal uitvoert.
    Resourceverificatietype selecteren Selecteer Beheerde identiteit. Dit is de veiligste optie voor het maken van verbinding met het standaardhostopslagaccount.

    In het deelvenster Azure: Activiteitenlogboek geeft de Azure-extensie de status van afzonderlijke resources weer terwijl ze in Azure worden gemaakt.

    Schermopname met het logboek van het aanmaken van Azure resources.

  3. Wanneer de functie-applicatie wordt gemaakt, worden de volgende gerelateerde resources aangemaakt in uw Azure-abonnement. De resources hebben een naam op basis van de naam die u hebt ingevoerd voor uw functie-app.

    • Een resourcegroep, een logische container voor gerelateerde resources.
    • Een functie-app, die de omgeving biedt voor het uitvoeren van uw functiecode. Met een functie-app kunt u functies groeperen in een logische eenheid, zodat u resources eenvoudiger kunt beheren, implementeren en delen binnen hetzelfde hostingabonnement.
    • Een Azure App Service-plan, waarmee de onderliggende host voor uw functie-app wordt gedefinieerd.
    • Een standaardaccount Azure Storage-account, dat wordt gebruikt door de Functions-host voor het onderhouden van status en andere informatie over uw functie-app.
    • Een Application Insights-exemplaar dat is verbonden met de functie-app en waarmee het gebruik van uw functies in de app wordt bijgehouden.
    • Een door de gebruiker toegewezen beheerde identiteit die wordt toegevoegd aan de rol Inzender voor opslagblobgegevens in het nieuwe standaardhostopslagaccount.

    Nadat de functie-app is gemaakt en het implementatiepakket is toegepast, wordt er een melding weergegeven.

    Aanbeveling

    De Azure resources die vereist zijn voor uw functie-app, worden standaard gemaakt op basis van de naam die u voor uw functie-app invoert. De resources worden standaard gemaakt met de functie-app in dezelfde, nieuwe resourcegroep. Als u de namen van de gekoppelde resources wilt aanpassen of bestaande resources opnieuw wilt gebruiken, publiceert u het project met geavanceerde opties voor het maken ervan.

Het project implementeren in Azure

Belangrijk

Bij het implementeren in een bestaande functie-app wordt de inhoud van die app altijd overschreven in Azure.

  1. Voer in het opdrachtenpalet Azure Functions: Implementeren in functie-app in.

  2. Selecteer de functie-app die u zojuist hebt gemaakt. Wanneer u wordt gevraagd om eerdere implementaties te overschrijven, selecteert u Implementeren om uw functiecode te implementeren in de nieuwe functie-app-resource.

  3. Wanneer de implementatie is voltooid, selecteert u Uitvoer weergeven om de resultaten van het maken en implementeren weer te geven, inclusief de Azure resources die u hebt gemaakt. Als u de melding mist, selecteert u het belpictogram in de rechterbenedenhoek om deze opnieuw te zien.

    Schermopname van het venster Uitvoer weergeven.

Uw functie testen in Azure

  1. Zorg ervoor dat de benoemde ExternalDurablePowerShellSDK app-instelling is ingesteld op true.

  2. Kopieer de URL van de HTTP-trigger vanuit het uitvoervenster. De URL die uw door HTTP geactiveerde functie aanroept, moet deze indeling hebben:

    https://<functionappname>.azurewebsites.net/api/orchestrators/HelloOrchestrator

  3. Plak de nieuwe URL voor de HTTP-aanvraag in de adresbalk van uw browser. Wanneer u de gepubliceerde app gebruikt, kunt u verwachten dat u hetzelfde statusantwoord krijgt dat u hebt ontvangen toen u lokaal hebt getest.

De PowerShell Durable Functions-app die u hebt gemaakt en gepubliceerd met behulp van Visual Studio Code is klaar voor gebruik.

Resources opschonen

Als u de resources die u hebt gemaakt om de quickstart te voltooien niet meer nodig hebt, kunt u ter voorkoming van gerelateerde kosten in uw Azure-abonnement de resourcegroep verwijderen en alle gerelateerde resources.