Události
Vytváření inteligentních aplikací
17. 3. 23 - 21. 3. 23
Připojte se k řadě meetupů a vytvořte škálovatelná řešení AI založená na skutečných případech použití s kolegy vývojáři a odborníky.
ZaregistrovatTento prohlížeč se už nepodporuje.
Upgradujte na Microsoft Edge, abyste mohli využívat nejnovější funkce, aktualizace zabezpečení a technickou podporu.
V tomto článku pomocí nástrojů příkazového řádku vytvoříte funkci Pythonu, která reaguje na požadavky HTTP. Po místním otestování kód nasadíte do bezserverového prostředí Azure Functions.
Tento článek používá programovací model Pythonu v2 pro Azure Functions, který poskytuje přístup založený na dekorátoru pro vytváření funkcí. Další informace o programovacím modelu Pythonu v2 najdete v referenční příručce pro vývojáře.
Při dokončení tohoto rychlého zprovoznění vzniknou ve vašem účtu Azure náklady ve výši několika centů USD (nebo menší).
K dispozici je také verze tohoto článku založená na editoru Visual Studio Code.
Než začnete, musíte mít splněné následující požadavky:
Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
Jeden z následujících nástrojů pro vytváření prostředků Azure:
Emulátor úložiště Azurite. I když můžete použít skutečný účet služby Azure Storage, článek předpokládá, že používáte tento emulátor.
Doporučený způsob instalace nástrojů Core Tools závisí na operačním systému místního vývojového počítače.
Následující kroky používají APT k instalaci Nástrojů Core Tools do distribuce Ubuntu/Debian Linuxu. Další linuxové distribuce najdete v souboru readme core Tools.
Nainstalujte klíč GPG úložiště balíčků Společnosti Microsoft, abyste ověřili integritu balíčku:
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
Před aktualizací APT nastavte zdrojový seznam APT.
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-$(lsb_release -cs 2>/dev/null)-prod $(lsb_release -cs 2>/dev/null) main" > /etc/apt/sources.list.d/dotnetdev.list'
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/debian/$(lsb_release -rs 2>/dev/null | cut -d'.' -f 1)/prod $(lsb_release -cs 2>/dev/null) main" > /etc/apt/sources.list.d/dotnetdev.list'
/etc/apt/sources.list.d/dotnetdev.list
Zkontrolujte v souboru jeden z příslušných řetězců verze Linuxu v následující tabulce:
Linuxová distribuce | Verze |
---|---|
Debian 12 | bookworm |
Debian 11 | bullseye |
Debian 10 | buster |
Debian 9 | stretch |
Ubuntu 22.04 | jammy |
Ubuntu 20.04 | focal |
Ubuntu 19.04 | disco |
Ubuntu 18.10 | cosmic |
Ubuntu 18.04 | bionic |
Ubuntu 17.04 | zesty |
Ubuntu 16.04/Linux Mint 18 | xenial |
Spusťte aktualizaci zdroje APT:
sudo apt-get update
Nainstalujte balíček Core Tools:
sudo apt-get install azure-functions-core-tools-4
func --version
Pomocí příkazu se ujistěte, že je 4.0.5530
alespoň vaše verze nástrojů Core Tools .
V vhodné složce spusťte následující příkazy pro vytvoření a aktivaci virtuálního prostředí s názvem .venv
. Ujistěte se, že používáte verzi Pythonu podporovanou službou Azure Functions.
python -m venv .venv
source .venv/bin/activate
Pokud Python nenainstaloval balíček venv do distribuce Linuxu, spusťte následující příkaz:
sudo apt-get install python3-venv
V tomto aktivovaném virtuálním prostředí spustíte všechny následující příkazy.
Ve službě Azure Functions je projekt funkcí kontejnerem pro jednu nebo více jednotlivých funkcí, které každá reaguje na konkrétní trigger. Všechny funkce v projektu sdílejí stejné místní a hostitelské konfigurace.
V této části vytvoříte projekt funkce a přidáte funkci aktivovanou protokolem HTTP.
Spuštěním func init
následujícího příkazu vytvořte projekt funkcí Pythonu v2 ve virtuálním prostředí.
func init --python
Prostředí teď obsahuje různé soubory projektu, včetně konfiguračních souborů s názvem local.settings.json a host.json. Protože local.settings.json může obsahovat tajné kódy stažené z Azure, soubor je ve výchozím nastavení vyloučen ze správy zdrojového kódu v souboru .gitignore .
Přidejte do projektu funkci pomocí následujícího příkazu, kde --name
argument je jedinečný název funkce (HttpExample) a --template
argument určuje trigger funkce (HTTP).
func new --name HttpExample --template "HTTP trigger" --authlevel "anonymous"
Pokud se zobrazí výzva, zvolte možnost ANONYMNÍ . func new
přidá koncový bod triggeru HTTP pojmenovaný HttpExample
do function_app.py
souboru, který je přístupný bez ověřování.
Spusťte funkci spuštěním místního hostitele modulu runtime Azure Functions ze složky LocalFunctionProj .
func start
Na konci výstupu se musí zobrazit následující řádky:
Poznámka
Pokud se httpExample nezobrazí, jak je znázorněno výše, pravděpodobně jste hostitele spustili mimo kořenovou složku projektu. V takovém případě pomocí ctrl+C zastavte hostitele, přejděte do kořenové složky projektu a spusťte předchozí příkaz znovu.
Zkopírujte adresu URL funkce HTTP z tohoto výstupu do prohlížeče a připojte řetězec ?name=<YOUR_NAME>
dotazu, čímž se úplná adresa URL podobá http://localhost:7071/api/HttpExample?name=Functions
. Prohlížeč by měl zobrazit zprávu s odpovědí, která vrací hodnotu řetězce dotazu. V terminálu, ve kterém jste spustili projekt, se při provádění požadavků zobrazuje také výstup protokolu.
Až budete hotovi, stiskněte Ctrl+C a stisknutím y
kláves Ctrl+C zastavte hostitele funkcí.
Než budete moct nasadit kód funkce do Azure, musíte vytvořit tři prostředky:
K vytvoření těchto položek použijte následující příkazy. Podporuje se Azure CLI i PowerShell.
V případě potřeby se přihlaste k Azure.
az login
Příkaz az login
vás přihlásí ke svému účtu Azure.
Vytvořte skupinu prostředků s názvem AzureFunctionsQuickstart-rg
ve zvolené oblasti.
az group create --name AzureFunctionsQuickstart-rg --location <REGION>
Příkaz az group create vytvoří skupinu prostředků. Ve výše uvedeném příkazu nahraďte <REGION>
oblastí blízko vás pomocí dostupného kódu oblasti vráceného z příkazu az account list-locations .
Poznámka
Aplikace pro Linux a Windows nemůžete hostovat ve stejné skupině prostředků. Pokud máte existující skupinu prostředků s názvem AzureFunctionsQuickstart-rg
aplikace funkcí pro Windows nebo webovou aplikaci, musíte použít jinou skupinu prostředků.
Ve skupině prostředků a oblasti vytvořte účet úložiště pro obecné účely.
az storage account create --name <STORAGE_NAME> --location <REGION> --resource-group AzureFunctionsQuickstart-rg --sku Standard_LRS
Příkaz az storage account create vytvoří účet úložiště.
V předchozím příkladu nahraďte <STORAGE_NAME>
názvem, který je vhodný pro vás a jedinečný v Azure Storage. Názvy musí obsahovat jenom číslice 3 až 24 znaků a malá písmena. Standard_LRS
určuje účet pro obecné účely podporovaný službou Functions.
Pro účely tohoto rychlého startu se účtu úložiště účtují jen pár centů (USD).
Vytvořte aplikaci funkcí v Azure.
az functionapp create --resource-group AzureFunctionsQuickstart-rg --consumption-plan-location westeurope --runtime python --runtime-version <PYTHON_VERSION> --functions-version 4 --name <APP_NAME> --os-type linux --storage-account <STORAGE_NAME>
Příkaz az functionapp create vytvoří aplikaci funkcí v Azure. Musíte zadat --os-type linux
, protože funkce Pythonu běží jenom v Linuxu.
V předchozím příkladu nahraďte <APP_NAME>
globálně jedinečným názvem, který je pro vás vhodný. Jedná se <APP_NAME>
také o výchozí subdoménu aplikace funkcí. Ujistěte se, že hodnota, pro <PYTHON_VERSION>
kterou jste nastavili, je verze podporovaná funkcí a že je stejná verze, jakou jste použili při místním vývoji.
Tento příkaz vytvoří aplikaci funkcí spuštěnou v zadaném modulu runtime jazyka v rámci plánu Consumption služby Azure Functions, která je bezplatná pro množství využití, které se zde účtují. Příkaz také vytvoří přidruženou instanci Aplikace Azure lication Insights ve stejné skupině prostředků, pomocí které můžete monitorovat aplikaci funkcí a zobrazit protokoly. Další informace najdete v tématu Monitorování azure Functions. Instance se neúčtují žádné náklady, dokud ji neaktivujete.
Po úspěšném vytvoření aplikace funkcí v Azure teď můžete pomocí příkazu nasadit místní projekt func azure functionapp publish
funkcí.
Ve složce kořenového projektu spusťte tento func azure functionapp publish
příkaz:
func azure functionapp publish <APP_NAME>
V tomto příkladu nahraďte <APP_NAME>
názvem vaší aplikace. Úspěšné nasazení ukazuje výsledky podobné následujícímu výstupu (zkráceně kvůli jednoduchosti):
... Getting site publishing info... Creating archive for current directory... Performing remote build for functions project. ... Deployment successful. Remote build succeeded! Syncing triggers... Functions in msdocs-azurefunctions-qs: HttpExample - [httpTrigger] Invoke url: https://msdocs-azurefunctions-qs.azurewebsites.net/api/httpexample
Vzhledem k tomu, že vaše funkce používá trigger HTTP, vyvoláte ji tak, že v prohlížeči nebo pomocí nástroje, jako je curl, vytvoří požadavek HTTP na jeho adresu URL.
Zkopírujte úplnou adresu URL vyvolání zobrazené ve výstupu publish
příkazu do adresního řádku prohlížeče a připojte parametr ?name=Functions
dotazu . Prohlížeč by měl zobrazit podobný výstup jako při místním spuštění funkce.
Pokud budete pokračovat k dalšímu kroku a přidáte výstupní vazbu fronty Azure Storage, ponechte všechny prostředky na místě, protože budete vycházet z toho, co jste už udělali.
Jinak pomocí následujícího příkazu odstraňte skupinu prostředků a všechny její obsažené prostředky, abyste se vyhnuli dalším nákladům.
az group delete --name AzureFunctionsQuickstart-rg
Máte problémy s tímto článkem?
Události
Vytváření inteligentních aplikací
17. 3. 23 - 21. 3. 23
Připojte se k řadě meetupů a vytvořte škálovatelná řešení AI založená na skutečných případech použití s kolegy vývojáři a odborníky.
ZaregistrovatŠkolení
Postup výuky
Studijní program Vytváření aplikací bez serverů - Training
V tomto studijním programu objevíte funkce Azure Functions, které s využitím logiky na straně serveru vytvářejí systémy výpočtů na vyžádání řízené událostmi a umožňují tak vývoj bezserverových architektur.
Certifikace
Microsoft Certifikát: Azure Vývojářský Asistent - Certifications
Vytvářejte ucelená řešení v Microsoft Azure pro vytváření funkcí Azure, implementaci a správu webových aplikací, vývoj řešení využívajících úložiště Azure a další.