Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här snabbstarten använder du Visual Studio Code för att skapa och testa en PowerShell-Durable Functions app som samordnar och kedjar samman anrop till andra funktioner. Sedan publicerar du den till Azure.
Durable Functions hanterar tillstånd, kontrollpunkter och omstarter i ditt program så att du kan skriva tillståndskänsliga arbetsflöden i en serverlös miljö.
Förutsättningar
Följande krävs för att slutföra den här snabbstarten:
Visual Studio Code installerat.
Visual Studio Code-tillägget Azure Functions installerat.
Den senaste versionen av Azure Functions Core Tools installerad.
Ett HTTP-testverktyg som skyddar dina data. Mer information finns i HTTP-testverktyg.
Ett Azure-abonnemang. Om du vill använda Durable Functions måste du ha ett Azure Storage konto.
Om du inte har något Azure-konto skapar du ett kostnadsfritt konto innan du börjar.
Skapa ditt lokala projekt
I det här avsnittet använder du Visual Studio Code för att skapa ett lokalt Azure Functions projekt.
I Visual Studio Code väljer du F1 (eller ctrl/cmd+Skift+P) för att öppna kommandopaletten. I kommandotolken (
>) anger du och väljer sedan Azure Functions: Skapa nytt projekt.
Välj Bläddra. I dialogrutan Välj mapp går du till en mapp som ska användas för projektet och väljer sedan Välj.
Ange följande information vid anvisningarna:
Omedelbar Action Beskrivning Välj ett språk för funktionsappprojektet Välj PowerShell. Skapar ett lokalt PowerShell Functions-projekt. Välj en version Välj Azure Functions v4. Det här alternativet visas bara när Core Tools inte redan är installerat. I det här fallet installeras Core Tools första gången du kör appen. Välj en mall för projektets första funktion Välj Hoppa över för tillfället. Välj hur du vill öppna projektet Välj Öppna i aktuellt fönster. Öppnar Visual Studio Code i den mapp som du har valt.
Visual Studio Code installerar Azure Functions Core Tools om det krävs för att skapa ett projekt. Det skapar också ett funktionsappprojekt i en mapp. Det här projektet innehåller konfigurationsfilerna host.json och local.settings.json .
En package.json fil skapas också i rotmappen.
Konfigurera fristående Durable Functions SDK
Fristående SDK ger bästa prestanda och de senaste funktionerna för PowerShell Durable Functions. Konfigurera den i tre steg:
Steg 1: Öppna local.settings.json och kontrollera att följande inställningar finns. Lägg till eller uppdatera dem om det behövs:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "",
"FUNCTIONS_WORKER_RUNTIME": "powershell",
"FUNCTIONS_WORKER_RUNTIME_VERSION" : "7.4",
"ExternalDurablePowerShellSDK": "true"
}
}
Steg 2: Öppna requirements.psd1 och lägg till SDK-beroendet:
@{
'AzureFunctions.PowerShell.Durable.SDK' = '2.*'
}
Med 2.*-specificeraren får du den senaste stabila 2.x-versionen från PowerShell Gallery.
Steg 3: Lägg till följande rad i slutet av profile.ps1 filen:
Import-Module AzureFunctions.PowerShell.Durable.SDK -ErrorAction Stop
Skapa dina funktioner
En grundläggande Durable Functions app har tre funktioner:
| Funktionstyp | Purpose |
|---|---|
| Orchestrator | Ett arbetsflöde som samordnar andra funktioner. |
| Activity | Anropas av orkestreraren för att utföra arbete och returnera ett värde. |
| Klient (HTTP-startprogram) | En HTTP-triggat funktion som startar en orkestrator. |
För varje funktion öppnar du kommandopaletten och väljer Azure Functions: Skapa funktion och anger sedan de begärda värdena:
1. Orkestreringsfunktion
| Omedelbar | Value |
|---|---|
| Välj en mall | Durable Functions orchestrator |
| Funktionsnamn | HelloOrchestrator |
Öppna HelloOrchestrator/run.ps1 för att se orchestrator. Varje anrop till Invoke-ActivityFunction anropar aktivitetsfunktionen Hello .
2. Aktivitetsfunktion
| Omedelbar | Value |
|---|---|
| Välj en mall | Aktivitet för Durable Functions |
| Funktionsnamn | Hej |
Öppna Hello/run.ps1 för att se att det tar ett namn som indata och returnerar en hälsning. Aktivitetsfunktioner är där du utför åtgärder som databasanrop eller beräkningar.
3. Klientfunktion (HTTP-start)
| Omedelbar | Value |
|---|---|
| Välj en mall | Durable Functions HTTP-startverktyg |
| Funktionsnamn | HttpStart |
| Auktoriseringsnivå | Anonym (för demonstrationsändamål) |
Öppna HttpStart/run.ps1 för att verifiera att den använder Start-NewOrchestration för att starta en ny orkestrering och New-OrchestrationCheckStatusResponse för att returnera ett HTTP-svar med övervaknings-URL:er.
Nu har du en Durable Functions app som du kan köra lokalt och distribuera till Azure.
Tips/Råd
Den här snabbstarten använder fristående Durable Functions PowerShell SDK. Mer information om SDK och migrering från den äldre inbyggda versionen finns i den fristående PowerShell SDK-guiden.
Testa funktionen lokalt
Azure Functions Core Tools ger dig möjlighet att köra ett Azure Functions projekt på din lokala utvecklingsdator. Du uppmanas att installera dessa verktyg första gången du startar en funktion i Visual Studio.
Om du vill testa funktionen anger du en brytpunkt i aktivitetsfunktionskoden
Hello(i Hello/run.ps1). Välj F5 eller välj Felsök: Starta felsökning i kommandopaletten för att starta funktionsappprojektet. Utdata från Core Tools visas på terminalpanelen.Anmärkning
För mer information om felsökning, se diagnostik för Durable Functions.
Durable Functions kräver ett lagringskonto för att köras. Du kan använda Azurite Storage-emulatorn för lokal utveckling eller skapa ett Azure lagringskonto när du uppmanas att göra det. Om Visual Studio Code uppmanar dig att välja ett lagringskonto väljer du Välj lagringskonto.
I anvisningarna anger du följande information för att skapa ett nytt lagringskonto i Azure.
Omedelbar Action Beskrivning Välj prenumeration Välj namnet på din prenumeration. Din Azure-prenumeration. Välj ett lagringskonto Välj Skapa ett nytt lagringskonto. Ange namnet på det nya lagringskontot Ange ett unikt namn. Namnet på lagringskontot som ska skapas. Välj en resursgrupp Ange ett unikt namn. Namnet på den resursgrupp som ska skapas. Välj en plats Välj en Azure-region. Välj en region som ligger nära dig. I terminalpanelen kopierar du URL-slutpunkten för din HTTP-utlösta funktion.
Använd webbläsaren eller ett HTTP-testverktyg för att skicka en HTTP POST-begäran till URL-slutpunkten.
Ersätt det sista segmentet med namnet på orkestreringsfunktionen (
HelloOrchestrator). URL:en bör liknahttp://localhost:7071/api/orchestrators/HelloOrchestrator.Svaret är HTTP-funktionens första resultat. Den informerar dig om att den hållbara orkestreringen har startats framgångsrikt. Det visar ännu inte slutresultatet av orkestreringen. Svaret innehåller några användbara URL:er. För tillfället, kontrollera status för orkestreringen.
Kopiera URL-värdet för
statusQueryGetUri, klistra in det i webbläsarens adressfält och kör begäran. Du kan också fortsätta att använda HTTP-testverktyget för att utfärda GET-begäran.Begäran frågar orkestreringsinstansen om statusen. Du bör se ett svar som visar att instansen är slutförd, med utdata från den varaktiga funktionen:
{ "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" }Om du vill sluta felsöka väljer du Skift+F5 i Visual Studio Code.
När du har kontrollerat att funktionen körs korrekt på den lokala datorn är det dags att publicera projektet till Azure.
Logga in på Azure
Innan du kan skapa Azure-resurser eller publicera din app måste du logga in på Azure.
Om du inte redan är inloggad går du till aktivitetsfältet och väljer Azure-ikonen. Under Resurser väljer du Logga in på Azure.
Om du redan är inloggad och kan se dina befintliga prenumerationer går du till nästa avsnitt. Om du ännu inte har ett Azure-konto väljer du Skapa ett Azure-konto. Eleverna kan välja Skapa ett Azure for Students-konto.
När du uppmanas att göra det i webbläsaren väljer du ditt Azure-konto och loggar in med dina autentiseringsuppgifter för Azure-kontot. Om du skapar ett nytt konto kan du logga in när ditt konto har skapats.
När du har loggat in kan du stänga det nya webbläsarfönstret. Prenumerationerna som tillhör ditt Azure-konto visas i sidofältet.
Skapa funktionsappen i Azure
I det här avsnittet skapar du en funktionsapp i Flex Consumption-planen tillsammans med relaterade resurser i din Azure-prenumeration. Många av besluten om att skapa resurser fattas för dig baserat på standardbeteenden. Om du vill ha mer kontroll över de skapade resurserna måste du i stället skapa funktionsappen med avancerade alternativ.
I Visual Studio Code väljer du F1 för att öppna kommandopaletten. I kommandotolken (
>) anger du och väljer sedan Azure Functions: Skapa funktionsapp i Azure.Ange följande information vid anvisningarna:
Omedelbar Action Välj prenumeration Välj den Azure-prenumeration som ska användas. Uppmaningen visas inte när du bara har en prenumeration synlig under Resurser. Ange ett nytt funktionsappnamn Ange ett globalt unikt namn som är giltigt i en URL-sökväg. Namnet du anger verifieras för att se till att det är unikt i Azure Functions. Välj en plats för nya resurser Välj en Azure-region. För bättre prestanda väljer du en region nära dig. Endast regioner som stöds av Flex Consumption-planer visas. Välj en körstack Välj den språkversion som du kör lokalt. Välj typ av resursautentisering Välj Hanterad identitet, vilket är det säkraste alternativet för att ansluta till standardvärdlagringskonto. I panelen Azure: Aktivitetslogg visar Azure-tillägget status för enskilda resurser när de skapas i Azure.
När funktionsappen skapas skapas följande relaterade resurser i din Azure-prenumeration. Resurserna namnges baserat på det namn som du angav för funktionsappen.
- En resursgrupp, som är en logisk container för relaterade resurser.
- En funktionsapp som tillhandahåller miljön för att köra funktionskoden. Med en funktionsapp kan du gruppera funktioner som en logisk enhet för enklare hantering, distribution och delning av resurser inom samma värdplan.
- En Azure App Serviceplan som definierar det underliggande värdenheten för din funktionsapp.
- Ett standardkonto Azure Storage som används av värdtjänsten Functions för att hantera tillstånd och annan information om funktionsappen.
- En Application Insights-instans som är ansluten till funktionsappen och som spårar användningen av dina funktioner i appen.
- En användartilldelad hanterad identitet som läggs till i rollen Storage Blob Data Contributor i det nya standardlagringskontot för värd.
Ett meddelande visas när funktionsappen har skapats och distributionspaketet har tillämpats.
Tips/Råd
Som standard skapas de Azure-resurser som krävs av funktionsappen baserat på det namn du anger för funktionsappen. Som standard skapas resurserna med funktionsappen i samma nya resursgrupp. Om du vill anpassa namnen på de associerade resurserna eller återanvända befintliga resurser publicerar du projektet med avancerade alternativ för att skapa.
Distribuera projektet till Azure
Viktigt!
När du distribuerar till en befintlig funktionsapp skrivs alltid innehållet i appen över i Azure.
I kommandopaletten anger du och väljer sedan Azure Functions: Distribuera till funktionsapp.
Välj den funktionsapp som du nyss skapade. När du uppmanas att skriva över tidigare distributioner väljer du Distribuera för att distribuera funktionskoden till den nya funktionsappresursen.
När distributionen är klar väljer du Visa utdata för att visa resultatet av skapandet och distributionen, inklusive de Azure-resurser som du skapade. Om du missar meddelandet väljer du klockikonen i det nedre högra hörnet för att se det igen.
Testa funktionen i Azure
I Azure-portalen (eller med hjälp av Azure CLI) kontrollerar du att appinställningen
ExternalDurablePowerShellSDKär inställd påtrue. Om den saknas lägger du till den underMiljövariabler för > och startar om funktionsappen.Kopiera URL:en för HTTP-utlösaren från utdatapanelen. URL:en ska vara i det här formatet:
https://<functionappname>.azurewebsites.net/api/orchestrators/HelloOrchestratorSkicka en HTTP POST-begäran till URL:en. Du bör få samma statussvar som du fick när du testade lokalt.
Om orkestreringen inte startar kontrollerar du funktionsapploggarna i Azure-portalen under Monitor>Log stream för fel som rör SDK-import- eller lagringsanslutningen.
Rensa resurser
Om du inte längre behöver de resurser som du skapade för att slutföra snabbstarten tar du bort resursgruppen och alla relaterade resurser för att undvika relaterade kostnader i din Azure-prenumeration.