Delen via


Zelfstudie: Python-functie met Azure Table Storage als uitvoer

In deze zelfstudie leert u hoe u een Python-functie configureert met Storage Table als uitvoer door de volgende taken uit te voeren.

  • Gebruik Visual Studio Code om een Python-functieproject te maken.
  • Voeg een uitvoerfunctiebinding voor opslagtabellen toe.
  • Gebruik Visual Studio Code om de functie lokaal uit te voeren.
  • Gebruik de Azure CLI om een verbinding te maken tussen Azure Function en Storage Table met Service Verbinding maken or.
  • Visual Studio gebruiken om uw functie te implementeren.

Een overzicht van de onderdelen van het functieproject in deze zelfstudie:

Projectonderdeel Selectie/oplossing
Bronservice Azure-functie
Doelservice Azure Storage-tabel
Functiebinding HTTP-trigger, Opslagtabel als uitvoer
Type lokale projectverificatie Verbindingsreeks
Verificatietype cloudfunctie Verbindingsreeks

Vereisten

Een Python-functieproject maken

Volg de zelfstudie om een lokaal Azure Functions-project te maken en geef de volgende informatie op bij de prompts:

Prompt Selectie
Een taal selecteren Kies Python. (v1 programmeertaalmodel)
Een Python-interpreter selecteren om een virtuele omgeving te maken Kies de gewenste Python-interpreter. Als er geen optie wordt weergegeven, typt u het volledige pad naar uw binaire Python-bestand.
Selecteer een sjabloon voor de eerste functie van uw project Kies HTTP trigger.
Geef een functienaam op Voer TableStorageOutputFunc in.
Verificatieniveau Kies Anonymous, waarmee iedereen uw functie-eindpunt kan aanroepen. 

U hebt een Python-functieproject gemaakt met een HTTP-trigger.

Een opslagtabeluitvoerbinding toevoegen

Bindingskenmerken worden gedefinieerd in het bestand function.json voor een bepaalde functie. Als u een binding wilt maken, klikt u met de rechtermuisknop (Ctrl+klik op macOS) op het function.json bestand in de functiemap en kiest u Binding toevoegen... . Volg de aanwijzingen om de volgende bindingseigenschappen te definiëren voor de nieuwe binding:

Prompt Weergegeven als Beschrijving
Bindingsrichting selecteren out De binding is een uitvoerbinding.
Binding met richting selecteren... Azure Table Storage De binding is een Azure Storage-tabelbinding.
De naam voor het identificeren van deze binding in uw code outMessage Naam die de bindingsparameter identificeert waar in uw code naar wordt verwezen.
Tabelnaam in opslagaccount waarin gegevens worden geschreven testTable De tabelnaam die uw functie schrijft als uitvoer. Maak een tabel met de naam testTable in uw opslagaccount als deze niet bestaat.
Selecteer de instelling in 'local.setting.json' Create new local app settings Selecteer het opslagaccount dat uw functie schrijft als uitvoer. Visual Studio Code haalt de verbindingsreeks voor lokale projectverbinding op.

Ga als volgende te werk om te controleren of de binding is toegevoegd:

  1. Open het TableStorageOutputFunc/function.json bestand, controleer of er een nieuwe binding met type: table en direction: out is toegevoegd aan dit bestand.
  2. Open het local.settings.json bestand en controleer of er een nieuw sleutel-waardepaar <your-storage-account-name>_STORAGE: <your-storage-account-connection-string> met uw opslagaccount verbindingsreeks is toegevoegd aan dit bestand.

Nadat de binding is toegevoegd, werkt u uw functiecodes bij om de binding te gebruiken door het Python-bestand hier te vervangen TableStorageOutputFunc/__init__.py .

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}")

De functie lokaal uitvoeren

Volg de zelfstudie om de functie lokaal uit te voeren en de tabeluitvoer te controleren.

  1. Selecteer het opslagaccount dat u hebt gekozen bij het maken van de Azure Function-resource als u wordt gevraagd verbinding te maken met een opslagaccount. Deze waarde wordt gebruikt voor de Runtime van Azure Function. Het is niet noodzakelijkerwijs hetzelfde opslagaccount dat u voor de uitvoer gebruikt.
  2. Als u de functie lokaal wilt starten, drukt u op <kbd>F5 </kbd> of selecteert u het pictogram Uitvoeren en fouten opsporen in de activiteitenbalk aan de linkerkant.
  3. Als u wilt controleren of de functie naar de tabel kan schrijven, klikt u met de rechtermuisknop Execute Function Now... op de functie in de weergave Werkruimte van Visual Studio Code en controleert u het antwoord van de functie. Het antwoordbericht moet de rowKey tekst bevatten die naar de tabel is geschreven.

Een verbinding maken met service Verbinding maken or

In de laatste stap hebt u het functieproject lokaal gecontroleerd. Nu leert u hoe u de verbinding tussen de Azure-functie en de Azure Storage-tabel in de cloud configureert, zodat uw functie naar uw opslagblob kan schrijven nadat deze in de cloud is geïmplementeerd.

  1. Open het function.json bestand in uw lokale project, wijzig de waarde van de connection eigenschap in bindings dit AZURE_STORAGETABLE_CONNECTIONSTRING.
  2. Voer de volgende Azure CLI-opdracht uit om een verbinding te maken tussen uw Azure-functie en uw Azure Storage.
az functionapp connection create storage-table --source-id "<your-function-resource-id>" --target-id "<your-storage-table-resource-id>" --secret
  • --source-id Formaat: /subscriptions/{subscription}/resourceG roups/{source_resource_group}/providers/Microsoft.Web/sites/{site}
  • --target-id Formaat: /subscriptions/{subscription}/resourceGroups/{target_resource_group}/providers/Microsoft.Storage/storageAccounts/{account}/tableServices/default

U hebt een Service-Verbinding maken or-resource gemaakt waarmee een AZURE_STORAGETABLE_CONNECTIONSTRING variabele in de app-Instellingen van de functie wordt geconfigureerd. Deze app-instelling wordt vervolgens gebruikt door de functiebinding om verbinding te maken met de opslag, zodat de functie naar de opslagtabel kan schrijven. Meer informatie over hoe Service Verbinding maken or Azure Functions helpt verbinding te maken met services.

Uw functie implementeren in Azure

U kunt uw functie nu implementeren in Azure en controleren of de uitvoerbinding van de opslagtabel werkt.

  1. Volg deze Zelfstudie over Azure Functions om uw functie te implementeren in Azure.
  2. Als u wilt controleren of de functie naar de tabel kan schrijven, klikt u met de rechtermuisknop Execute Function Now... op de functie in de weergave Resources van Visual Studio Code en controleert u het antwoord van de functie. Het antwoordbericht moet de rowKey functie bevatten die zojuist naar de tabel is geschreven.

Problemen oplossen

Als er fouten zijn met betrekking tot de opslaghost, zoalsNo such host is known (<acount-name>.table.core.windows.net:443), moet u controleren of de verbindingsreeks die u gebruikt om verbinding te maken met Azure Storage het tabeleindpunt bevat of niet. Als dit niet het probleem is, gaat u naar Azure Storage Portal, kopieert u de verbindingsreeks van de Access keys blade en vervangt u de waarden.

Als deze fout optreedt wanneer u het project lokaal start, controleert u het local.settings.json bestand.

Als dit gebeurt wanneer u uw functie in de cloud implementeert (in dit geval mislukt de functie-implementatie meestal), Syncing triggers controleert u de app-Instellingen van uw functie.

Resources opschonen

Als u dit project niet meer gaat gebruiken, verwijdert u de functie-app-resource die u eerder hebt gemaakt.

  1. Open in Azure Portal de functie-app-resource en selecteer Verwijderen.
  2. Voer de naam van de app in en selecteer Verwijderen om te bevestigen.

Volgende stappen

Lees de onderstaande artikelen voor meer informatie over Service Verbinding maken or-concepten en hoe Azure Functions verbinding kan maken met andere cloudservices.