Kurz: Funkce Pythonu se službou Azure Table Storage jako výstupem

V tomto kurzu se dozvíte, jak nakonfigurovat funkci Pythonu s tabulkou služby Storage jako výstup provedením následujících úloh.

  • Pomocí editoru Visual Studio Code vytvořte projekt funkcí Pythonu.
  • Přidejte vazbu výstupní funkce tabulky storage.
  • Pomocí editoru Visual Studio Code spusťte funkci místně.
  • Pomocí Azure CLI vytvořte připojení mezi funkcí Azure Functions a tabulkou úložiště pomocí konektoru služby.
  • K nasazení funkce použijte Visual Studio.

Přehled součástí projektu funkcí v tomto kurzu:

Komponenta projektu Výběr / řešení
Zdrojová služba Funkce Azure
Cílová služba Tabulka služby Azure Storage
Vazba funkce Trigger HTTP, tabulka úložiště jako výstup
Typ ověřování místního projektu Připojovací řetězec
Typ ověřování cloudových funkcí Připojovací řetězec

Upozorňující

Microsoft doporučuje používat nejbezpečnější dostupný tok ověřování. Ověřovací tok popsaný v tomto postupu vyžaduje velmi vysoký stupeň důvěryhodnosti v aplikaci a nese rizika, která nejsou přítomna v jiných tocích. Tento tok byste měli použít jenom v případě, že jiné bezpečnější toky, jako jsou spravované identity, nejsou přijatelné.

Požadavky

Vytvoření projektu funkce Pythonu

Podle kurzu vytvořte místní projekt Azure Functions a na příkazovém řádku zadejte následující informace:

Instrukce Výběr
Výběr jazyka Zvolte Python. (programovací jazykový model v1)
Výběr interpreta Pythonu pro vytvoření virtuálního prostředí Zvolte upřednostňovaný interpret Pythonu. Pokud se možnost nezobrazí, zadejte úplnou cestu k binárnímu souboru Pythonu.
Výběr šablony pro první funkci projektu Zvolte HTTP trigger.
Zadejte název funkce. Zadejte TableStorageOutputFunc.
Úroveň autorizace Zvolte Anonymous, který umožňuje každému volat váš koncový bod funkce. 

Vytvořili jste projekt funkce Pythonu s triggerem HTTP.

Přidání výstupní vazby tabulky úložiště

Atributy vazby jsou definovány v souboru function.json pro danou funkci. Pokud chcete vytvořit vazbu, klikněte pravým tlačítkem myši (Ctrl+klikněte na macOS) function.json soubor ve složce funkce a zvolte Přidat vazbu... . Podle pokynů definujte následující vlastnosti vazby pro novou vazbu:

Instrukce Hodnota Popis
Výběr směru vazby out Vazba je výstupní vazba.
Výběr vazby se směrem... Azure Table Storage Vazba je vazba tabulky Azure Storage.
Název použitý k identifikaci této vazby v kódu outMessage Název, který identifikuje parametr vazby odkazovaný v kódu.
Název tabulky v účtu úložiště, kde se budou zapisovat data testTable Tabulka pojmenuje vaši funkci jako výstup. Pokud tabulka neexistuje, vytvořte tabulku s názvem testTable v účtu úložiště.
Výběr nastavení z local.setting.json Create new local app settings Vyberte účet úložiště, který vaše funkce zapíše jako výstup. Visual Studio Code načte připojovací řetězec pro připojení k místnímu projektu.

Chcete-li zkontrolovat úspěšné přidání vazby:

  1. TableStorageOutputFunc/function.json Otevřete soubor, zkontrolujte, zda byla do tohoto souboru přidána nová vazba type: table direction: out.
  2. local.settings.json Otevřete soubor a zkontrolujte, jestli do tohoto souboru byla přidána nová dvojice <your-storage-account-name>_STORAGE: <your-storage-account-connection-string> klíč-hodnota, která obsahuje váš účet úložiště, připojovací řetězec.

Po přidání vazby aktualizujte kódy funkcí tak, aby tuto vazbu spotřebovávají nahrazením TableStorageOutputFunc/__init__.py souboru Pythonu.

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

Místní spuštění funkce

Podle kurzu spusťte funkci místně a ověřte výstup tabulky.

  1. Vyberte účet úložiště, který jste zvolili při vytváření prostředku funkce Azure, pokud se zobrazí výzva k připojení k účtu úložiště. Tato hodnota se používá pro modul runtime funkce Azure Functions. Nemusí to být nutně stejný účet úložiště, který používáte pro výstup.
  2. Pokud chcete funkci spustit místně, stiskněte klávesu <kbd>F5 </kbd> nebo vyberte ikonu Spustit a Ladit na panelu aktivit na levé straně.
  3. Pokud chcete ověřit, že funkce může zapisovat do tabulky, klikněte pravým tlačítkem myši Execute Function Now... na funkci v zobrazení pracovního prostoru editoru Visual Studio Code a zkontrolujte odpověď funkce. Zpráva odpovědi by měla obsahovat rowKey zprávu, která byla zapsána do tabulky.

Vytvoření připojení pomocí konektoru Service Connector

V posledním kroku jste místně ověřili projekt funkce. Teď se dozvíte, jak nakonfigurovat připojení mezi funkcí Azure Functions a tabulkou Azure Storage v cloudu, aby vaše funkce po nasazení do cloudu mohl zapisovat do objektu blob úložiště.

  1. function.json Otevřete soubor v místním projektu, změňte hodnotu connection vlastnosti bindings tak, aby byla AZURE_STORAGETABLE_CONNECTIONSTRING.
  2. Spuštěním následujícího příkazu Azure CLI vytvořte připojení mezi vaší funkcí Azure a službou Azure Storage.
az functionapp connection create storage-table --source-id "<your-function-resource-id>" --target-id "<your-storage-table-resource-id>" --secret
  • --source-id formát: /subscriptions/{subscription}/resourceG roups/{source_resource_group}/providers/Microsoft.Web/sites/{site}
  • --target-id formát: /subscriptions/{subscription}/resourceGroups/{target_resource_group}/providers/Microsoft.Storage/storageAccounts/{account}/tableServices/default

Vytvořili jste prostředek konektoru služby, který konfiguruje proměnnou AZURE_STORAGETABLE_CONNECTIONSTRING v nastavení aplikace funkce. Toto nastavení aplikace pak bude využívat vazba funkce pro připojení k úložišti, aby funkce mohl zapisovat do tabulky úložiště. Další informace o tom, jak Service Connector pomáhá službě Azure Functions připojovat se ke službám.

Nasazení funkce do Azure

Teď můžete funkci nasadit do Azure a ověřit, že výstupní vazba tabulky úložiště funguje.

  1. Postupujte podle tohoto kurzu azure Functions a nasaďte funkci do Azure.
  2. Pokud chcete ověřit, že funkce může zapisovat do tabulky, klikněte pravým tlačítkem myši Execute Function Now... na funkci v zobrazení Visual Studio Code RESOURCES a zkontrolujte odpověď funkce. Zpráva odpovědi by měla obsahovat rowKey funkci, kterou jste právě napsali do tabulky.

Odstraňování potíží

Pokud dojde k nějakým chybám souvisejícím s hostitelem úložiště, například No such host is known (<acount-name>.table.core.windows.net:443)potřebujete zkontrolovat, jestli připojovací řetězec, které používáte pro připojení ke službě Azure Storage, obsahuje koncový bod tabulky, nebo ne. Pokud ne, přejděte na portál Azure Storage, zkopírujte připojovací řetězec z Access keys okna a nahraďte hodnoty.

Pokud k této chybě dojde při místním spuštění projektu, zkontrolujte local.settings.json soubor.

Pokud k tomu dojde, když funkci nasadíte do cloudu (v tomto případě se nasazení funkce obvykle nezdaří Syncing triggers ), zkontrolujte nastavení aplikace vaší funkce.

Vyčištění prostředků

Pokud tento projekt nebudete dál používat, odstraňte prostředek aplikace Funkcí, který jste vytvořili dříve.

  1. Na webu Azure Portal otevřete prostředek aplikace funkcí a vyberte Odstranit.
  2. Zadejte název aplikace a potvrďte to tak, že vyberete Odstranit .

Další kroky

Další informace o konceptech konektoru služeb a o tom, jak azure Functions pomáhá připojit se k dalším cloudovým službám, najdete v následujících článcích.