Dela via


Självstudie: Konfigurera en Python-funktion med Azure Table Storage-utdata

I den här självstudien lär du dig hur du konfigurerar en Python-funktion för att använda Azure Table Storage som en utdatabindning genom att utföra följande uppgifter.

  • Använd Visual Studio Code för att skapa ett Python-funktionsprojekt.
  • Lägg till en storage table-utdatafunktionsbindning.
  • 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 Table 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-tabell
Funktionsbindning HTTP-utlösare, lagringstabell som utdata
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 HTTP trigger.
Ange ett funktionsnamn Ange TableStorageOutputFunc.
Auktoriseringsnivå Välj Anonymous, som låter vem som helst anropa funktionsslutpunkten. 

Du har skapat ett Python-funktionsprojekt med en HTTP-utlösare.

Lägga till en utdatabindning för lagringstabell

Bindningsattribut definieras i function.json-filen för en viss funktion. Om du vill skapa en bindning högerklickar du (Ctrl+ klicka på macOS) filen i funktionsmappen function.json och väljer Lägg till bindning... . Följ anvisningarna för att definiera följande bindningsegenskaper för den nya bindningen:

Prompt Värde beskrivning
Välj bindningsriktning out Bindningen är en utdatabindning.
Välj bindning med riktning... Azure Table Storage Bindningen är en Azure Storage-tabellbindning.
Namnet som används för att identifiera den här bindningen i koden outMessage Namn som identifierar bindningsparametern som refereras till i koden.
Tabellnamn i lagringskontot där data skrivs testTable Tabellen namnger din funktion som utdata. Skapa en tabell med namnet testTable i ditt lagringskonto om den inte finns.
Välj inställning från "local.setting.json" Create new local app settings Välj det lagringskonto som din funktion skriver som utdata. Visual Studio Code hämtar sina anslutningssträng för lokal projektanslutning.

Kontrollera att bindningen har lagts till:

  1. TableStorageOutputFunc/function.json Öppna filen, kontrollera att en ny bindning med type: table och direction: out har lagts till i den här filen.
  2. local.settings.json Öppna filen och kontrollera att ett nytt nyckel/värde-par <your-storage-account-name>_STORAGE: <your-storage-account-connection-string> som innehåller ditt lagringskonto anslutningssträng har lagts till i den här filen.

När bindningen har lagts till uppdaterar du funktionskoderna för att använda bindningen genom att TableStorageOutputFunc/__init__.py ersätta med Python-filen här.

import logging
import uuid
import json
import azure.functions as func

def main(req: func.HttpRequest, outMessage: func.Out[str]) -> func.HttpResponse:

    rowKey = str(uuid.uuid4())
    data = {
        "Name": "Output binding message",
        "PartitionKey": "message",
        "RowKey": rowKey
    }

    outMessage.set(json.dumps(data))
    return func.HttpResponse(f"Message created with the rowKey: {rowKey}")

Kör funktionen lokalt

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

  1. Välj det lagringskonto som du valde när du skapade Azure-funktionsresursen om du uppmanas att ansluta till ett lagringskonto. Det här värdet används för Azure-funktionskörningar. Det är inte nödvändigtvis samma lagringskonto som du använder för utdata.
  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 funktionen kan skriva till tabellen genom att högerklicka Execute Function Now... på funktionen i vyn Visual Studio Code WORKSPACE och kontrollera funktionssvaret. Svarsmeddelandet ska innehålla rowKey det som skrevs till tabellen.

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 Table i molnet, så att din funktion kan skriva till din lagringsblob 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_STORAGETABLE_CONNECTIONSTRING.
  2. Kör följande Azure CLI-kommando för att skapa en anslutning mellan din Azure-funktion och Azure Storage.
az functionapp connection create storage-table --source-id "<your-function-resource-id>" --target-id "<your-storage-table-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}/tableServices/default

Du har skapat en Service Connector-resurs som konfigurerar en AZURE_STORAGETABLE_CONNECTIONSTRING variabel i funktionens appinställningar. Den här appinställningen används sedan av funktionsbindningen för att ansluta till lagringen, så att funktionen kan skriva till lagringstabellen. Du kan lära dig mer om hur Service Connector hjälper Azure Functions att ansluta till tjänster.

Distribuera din funktion till Azure

Nu kan du distribuera funktionen till Azure och kontrollera att utdatabindningen för lagringstabellen fungerar.

  1. Följ den här Azure Functions-självstudien för att distribuera din funktion till Azure.
  2. Kontrollera att funktionen kan skriva till tabellen genom att högerklicka Execute Function Now... på funktionen i vyn Resurser för Visual Studio Code och kontrollera funktionssvaret. Svarsmeddelandet ska innehålla funktionen rowKey som just skrevs till tabellen.

Felsöka

Om det finns fel som rör lagringsvärden, till exempel No such host is known (<account-name>.table.core.windows.net:443), behöver du kontrollera om den anslutningssträng du använder för att ansluta till Azure Storage innehåller tabellslutpunkten eller inte. Om den inte gör det går du till Azure Storage-portalen, kopierar anslutningssträng från Access keys bladet 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änder när du distribuerar din funktion 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 andra molntjänster.