Dela via


Självstudie: Python-funktion med Azure Queue Storage som utlösare

I den här självstudien får du lära dig hur du konfigurerar en Python-funktion med Storage Queue som utlösare genom att utföra följande uppgifter.

  • Använd Visual Studio Code för att skapa ett Python-funktionsprojekt.
  • Använd Visual Studio Code för att köra funktionen lokalt.
  • Använd Azure CLI för att skapa en anslutning mellan Azure Function och Storage Queue med Service Connector.
  • Använd Visual Studio för att distribuera din funktion.

En översikt över funktionsprojektkomponenterna i den här självstudien:

Projektkomponent Markering/lösning
Källtjänst Azure-funktion
Måltjänst Azure Storage-kö
Funktionsbindning Lagringskö som utlösare
Autentiseringstyp för lokalt projekt Anslutningssträng
Autentiseringstyp för molnfunktion Anslutningssträng

Varning

Microsoft rekommenderar att du använder det säkraste tillgängliga autentiseringsflödet. Det autentiseringsflöde som beskrivs i den här proceduren kräver mycket stort förtroende för programmet och medför risker som inte finns i andra flöden. Du bör bara använda det här flödet när andra säkrare flöden, till exempel hanterade identiteter, inte är livskraftiga.

Förutsättningar

Skapa ett Python-funktionsprojekt

Följ självstudien för att skapa ett lokalt Azure Functions-projekt och ange följande information i anvisningarna:

Prompt Urval
Välj ett språk Välj Python. (v1 programmeringsspråkmodell)
Välj en Python-tolk för att skapa en virtuell miljö Välj önskad Python-tolk. Om ett alternativ inte visas skriver du in den fullständiga sökvägen till din Python-binärfil.
Välj en mall för projektets första funktion Välj Azure Queue Storage trigger.
Ange ett funktionsnamn Ange QueueStorageTriggerFunc.
Välj inställning från "local.settings.json" Välj Create new local app settings, som låter dig välja ditt lagringskonto och ange ditt könamn som fungerar som utlösare.

Du har skapat ett Python-funktionsprojekt med Azure Storage Queue som utlösare. Det lokala projektet ansluter till Azure Storage med hjälp av anslutningssträng sparas i local.settings.json filen. Slutligen main kan funktionen i __init__.py funktionens fil använda anslutningssträng med hjälp av funktionsbindningen som definieras i function.json filen.

Kör funktionen lokalt

Följ självstudien för att köra funktionen lokalt och verifiera utlösaren.

  1. Välj lagringskontot som du valde när du skapade Azure-funktionsresursen om du uppmanas att ansluta till lagringen. Det här värdet används för Azure-funktionens körning, och det är inte nödvändigtvis samma som det lagringskonto som du använder för utlösaren.
  2. Starta funktionen lokalt genom att trycka på <kbd>F5 </kbd> eller välja ikonen Kör och felsöka i aktivitetsfältet till vänster.
  3. Kontrollera att utlösaren fungerar korrekt genom att hålla funktionen igång lokalt och öppna fönstret Lagringskö i Azure Portal, välja Lägg till meddelande och ange ett testmeddelande. Du bör se att funktionen utlöses och bearbetas som ett köobjekt i Visual Studio Code-terminalen.

Skapa en anslutning med hjälp av Service Connector

I det sista steget verifierade du funktionsprojektet lokalt. Nu får du lära dig hur du konfigurerar anslutningen mellan Azure-funktionen och Azure Storage Queue i molnet, så att din funktion kan utlösas av lagringskön när den har distribuerats till molnet.

  1. function.json Öppna filen i det lokala projektet, ändra värdet för connection egenskapen i bindings till AZURE_STORAGEQUEUE_CONNECTIONSTRING.
  2. Kör följande Azure CLI-kommando för att skapa en anslutning mellan din Azure-funktion och ditt Azure Storage-konto.
az functionapp connection create storage-queue --source-id "<your-function-resource-id>" --target-id "<your-storage-queue-resource-id>" --secret
  • --source-id format: /subscriptions/{subscription}/resourceGroups/{source_resource_group}/providers/Microsoft.Web/sites/{site}
  • --target-id format: /subscriptions/{subscription}/resourceGroups/{target_resource_group}/providers/Microsoft.Storage/storageAccounts/{account}/queueServices/default

Det här steget skapar en Service Connector-resurs som konfigurerar en AZURE_STORAGEQUEUE_CONNECTIONSTRING variabel i funktionens appinställningar. Funktionsbindningskörningen använder den för att ansluta till lagringen, så att funktionen kan acceptera utlösare från lagringskön. Mer information finns i hur Service Connector hjälper Azure Functions att ansluta till tjänster.

Distribuera din funktion till Azure

Nu kan du distribuera din funktion till Azure och kontrollera att utlösaren för lagringskö fungerar.

  1. Följ den här Azure Functions-självstudien för att distribuera din funktion till Azure.
  2. Öppna fönstret Lagringskö i Azure Portal, välj Lägg till meddelande och ange ett testmeddelande. Du bör se att funktionen utlöses och bearbetas som ett köobjekt i funktionsloggarna.

Felsöka

Om det finns fel relaterade till lagringsvärden, till exempel No such host is known (<account-name>.queue.core.windows.net:443), kontrollerar du om anslutningssträng du använder för att ansluta till Azure Storage innehåller köslutpunkten eller inte. Om den inte gör det går du till Azure Storage i Azure Portal, kopierar anslutningssträng från fönstret Access keys och ersätter värdena.

Om det här felet inträffar när du startar projektet lokalt kontrollerar du local.settings.json filen.

Om det här felet inträffar när du distribuerar funktionen till molnet (i det här fallet misslyckas funktionsdistributionen vanligtvis på Syncing triggers ) kontrollerar du funktionens appinställningar.

Rensa resurser

Om du inte kommer att fortsätta att använda det här projektet tar du bort funktionsappresursen som du skapade tidigare.

  1. I Azure Portal öppnar du resursen Funktionsapp och väljer Ta bort.
  2. Ange appnamnet och välj Ta bort för att bekräfta.

Nästa steg

Läs artiklarna nedan om du vill veta mer om Begrepp för Service Connector och hur det hjälper Azure Functions att ansluta till tjänster.