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
- Installera Visual Studio Code på en av de plattformar som stöds.
- Azure CLI. Du kan använda den i Azure Cloud Shell eller installera den lokalt.
- Ett Azure Storage-konto och en lagringstabell. Om du inte har något lagringskonto skapar du ett.
- Guiden förutsätter att du känner till de begrepp som presenteras i utvecklarguiden för Functions och hur du ansluter till tjänster i Azure Functions.
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:
TableStorageOutputFunc/function.json
Öppna filen, kontrollera att en ny bindning medtype: table
ochdirection: out
har lagts till i den här filen.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.
- 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.
- 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. - 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ållarowKey
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.
function.json
Öppna filen i det lokala projektet, ändra värdet förconnection
egenskapen ibindings
tillAZURE_STORAGETABLE_CONNECTIONSTRING
.- 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.
- Följ den här Azure Functions-självstudien för att distribuera din funktion till Azure.
- 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 funktionenrowKey
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.
- I Azure Portal öppnar du resursen Funktionsapp och väljer Ta bort.
- 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.