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
- Nainstalujte Visual Studio Code na jedné z podporovaných platforem.
- Rozhraní příkazového řádku Azure. Můžete ho použít v Azure Cloud Shellu nebo ho nainstalovat místně.
- Účet služby Azure Storage a tabulka úložiště. Pokud účet úložiště nemáte, vytvořte si ho.
- Průvodce předpokládá, že znáte koncepty uvedené v příručce pro vývojáře functions a jak se připojit ke službám ve službě Azure Functions.
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:
TableStorageOutputFunc/function.json
Otevřete soubor, zkontrolujte, zda byla do tohoto souboru přidána nová vazbatype: table
direction: out
.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.
- 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.
- 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ě. - 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 obsahovatrowKey
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ě.
function.json
Otevřete soubor v místním projektu, změňte hodnotuconnection
vlastnostibindings
tak, aby bylaAZURE_STORAGETABLE_CONNECTIONSTRING
.- 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.
- Postupujte podle tohoto kurzu azure Functions a nasaďte funkci do Azure.
- 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 obsahovatrowKey
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.
- Na webu Azure Portal otevřete prostředek aplikace funkcí a vyberte Odstranit.
- 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.