Kurz: Funkce Pythonu se službou Azure Queue Storage jako triggerem
V tomto kurzu se dozvíte, jak nakonfigurovat funkci Pythonu s frontou služby Storage jako trigger provedením následujících úloh.
- Pomocí editoru Visual Studio Code vytvořte projekt funkcí Pythonu.
- Pomocí editoru Visual Studio Code spusťte funkci místně.
- Pomocí Azure CLI vytvořte připojení mezi funkcí Azure Functions a frontou ú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 | Fronta služby Azure Storage |
Vazba funkce | Fronta úložiště jako trigger |
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 úložiště Azure a fronta úložiště. Pokud azure Storage nemáte, vytvořte si ho.
- V této příručce se předpokládá, že znáte základní koncepty uvedené v příručce pro vývojáře Azure Functions a jak se připojit ke službám ve službě 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 Azure Queue Storage trigger . |
Zadejte název funkce. | Zadejte QueueStorageTriggerFunc . |
Výběr nastavení z local.settings.json | Zvolte Create new local app settings , který vám umožní vybrat účet úložiště a zadat název fronty, který funguje jako trigger. |
Vytvořili jste projekt funkce Pythonu s frontou azure Storage jako triggerem. Místní projekt se připojí ke službě Azure Storage pomocí připojovací řetězec uloženého do local.settings.json
souboru. main
Funkce v __init__.py
souboru funkce může nakonec využívat připojovací řetězec pomocí vazby funkce definované v function.json
souboru.
Místní spuštění funkce
Podle kurzu spusťte funkci místně a ověřte trigger.
- Pokud se zobrazí výzva k připojení k úložišti, vyberte účet úložiště, který jste zvolili při vytváření prostředku funkce Azure Functions. Tato hodnota se používá pro modul runtime funkce Azure Functions a nemusí se nutně shodovat s účtem úložiště, který používáte pro trigger.
- 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 trigger funguje správně, nechte funkci spuštěnou místně a otevřete podokno Fronta úložiště na webu Azure Portal, vyberte Přidat zprávu a zadejte testovací zprávu. V terminálu editoru Visual Studio Code byste měli vidět, že se funkce aktivuje a zpracuje jako položka fronty.
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 frontou Azure Storage v cloudu, aby se vaše funkce po nasazení do cloudu aktivovala frontou úložiště.
function.json
Otevřete soubor v místním projektu, změňte hodnotuconnection
vlastnostibindings
tak, aby bylaAZURE_STORAGEQUEUE_CONNECTIONSTRING
.- Spuštěním následujícího příkazu Azure CLI vytvořte připojení mezi vaší funkcí Azure a účtem úložiště Azure.
az functionapp connection create storage-queue --source-id "<your-function-resource-id>" --target-id "<your-storage-queue-resource-id>" --secret
--source-id
formát:/subscriptions/{subscription}/resourceGroups/{source_resource_group}/providers/Microsoft.Web/sites/{site}
--target-id
formát:/subscriptions/{subscription}/resourceGroups/{target_resource_group}/providers/Microsoft.Storage/storageAccounts/{account}/queueServices/default
Tento krok vytvoří prostředek konektoru služby, který nakonfiguruje proměnnou AZURE_STORAGEQUEUE_CONNECTIONSTRING
v nastavení aplikace funkce. Modul runtime vazby funkce ho používá k připojení k úložišti, aby funkce mohl přijímat triggery z fronty úložiště. Další informace najdete v tématu, jak konektor 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 trigger fronty úložiště funguje.
- Postupujte podle tohoto kurzu azure Functions a nasaďte funkci do Azure.
- Otevřete podokno Fronta úložiště na webu Azure Portal, vyberte Přidat zprávu a zadejte testovací zprávu. Měli byste vidět, že se funkce aktivuje a zpracuje jako položka fronty v protokolech funkcí.
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 (<account-name>.queue.core.windows.net:443)
zkontrolujte, jestli připojovací řetězec, které používáte pro připojení ke službě Azure Storage, obsahuje koncový bod fronty, nebo ne. Pokud ne, přejděte do Azure Storage na webu Azure Portal, zkopírujte připojovací řetězec z Access keys
podokna 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 této chybě dojde, když funkci nasadíte do cloudu (v tomto případě nasazení funkce obvykle selže 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 ke službám, najdete v následujících článcích.