Číst v angličtině

Sdílet prostřednictvím


Rychlý start: Vytvoření funkce Pythonu v Azure z příkazového řádku

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.

Konfigurace místního prostředí

Než začnete, musíte mít splněné následující požadavky:

Instalace nástrojů Azure Functions Core

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.

  1. Nainstalujte klíč GPG úložiště balíčků Společnosti Microsoft, abyste ověřili integritu balíčku:

    Bash
    curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
    sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
    
  2. Před aktualizací APT nastavte zdrojový seznam APT.

    Ubuntu
    Bash
    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'
    
    Debian
    Bash
    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'
    
  3. /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
  4. Spusťte aktualizaci zdroje APT:

    Bash
    sudo apt-get update
    
  5. Nainstalujte balíček Core Tools:

    Bash
    sudo apt-get install azure-functions-core-tools-4
    

func --version Pomocí příkazu se ujistěte, že je 4.0.5530alespoň vaše verze nástrojů Core Tools .

Vytvoření a aktivace virtuálního prostředí

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.

Bash
python -m venv .venv
Bash
source .venv/bin/activate

Pokud Python nenainstaloval balíček venv do distribuce Linuxu, spusťte následující příkaz:

Bash
sudo apt-get install python3-venv

V tomto aktivovaném virtuálním prostředí spustíte všechny následující příkazy.

Vytvoření místní funkce

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.

  1. Spuštěním func init následujícího příkazu vytvořte projekt funkcí Pythonu v2 ve virtuálním prostředí.

    Console
    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 .

  2. 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).

    Console
    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í.

Místní spuštění funkce

  1. Spusťte funkci spuštěním místního hostitele modulu runtime Azure Functions ze složky LocalFunctionProj .

    Console
    func start
    

    Na konci výstupu se musí zobrazit následující řádky:

    Snímek obrazovky s výstupem okna terminálu při místním spuštění funkce

    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.

  2. 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.

  3. Až budete hotovi, stiskněte Ctrl+C a stisknutím y kláves Ctrl+C zastavte hostitele funkcí.

Vytvoření podpůrných prostředků Azure pro vaši funkci

Než budete moct nasadit kód funkce do Azure, musíte vytvořit tři prostředky:

  • Skupina prostředků, což je logický kontejner pro související prostředky.
  • Účet úložiště, který udržuje stav a další informace o vašich projektech.
  • Aplikace funkcí, která poskytuje prostředí pro spouštění kódu funkce. Aplikace funkcí se mapuje na místní projekt funkcí a umožňuje seskupit funkce jako logickou jednotku pro snadnější správu, nasazení a sdílení prostředků.

K vytvoření těchto položek použijte následující příkazy. Podporuje se Azure CLI i PowerShell.

  1. V případě potřeby se přihlaste k Azure.

    Azure CLI
    az login
    

    Příkaz az login vás přihlásí ke svému účtu Azure.

  2. Vytvořte skupinu prostředků s názvem AzureFunctionsQuickstart-rg ve zvolené oblasti.

    Azure CLI
    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ů.

  3. Ve skupině prostředků a oblasti vytvořte účet úložiště pro obecné účely.

    Azure CLI
    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).

  4. Vytvořte aplikaci funkcí v Azure.

    Azure CLI
    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.

Nasazení projektu funkce do Azure

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:

Console
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

Vyvolání funkce v Azure

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=Functionsdotazu . Prohlížeč by měl zobrazit podobný výstup jako při místním spuštění funkce.

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

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.

Azure CLI
az group delete --name AzureFunctionsQuickstart-rg

Další kroky

Máte problémy s tímto článkem?