Sdílet prostřednictvím


Vytvoření první funkce ve službě Azure Arc (Preview)

V tomto rychlém startu vytvoříte projekt Azure Functions a nasadíte ho do aplikace funkcí spuštěné v clusteru Kubernetes s podporou Azure Arc. Další informace najdete v tématu App Service, Functions a Logic Apps ve službě Azure Arc. Tento scénář podporuje jenom aplikace funkcí spuštěné v Linuxu.

Poznámka:

Podpora spouštění funkcí v clusteru Kubernetes s podporou Azure Arc je aktuálně ve verzi Preview.

Publikování projektů funkcí PowerShellu do clusterů Kubernetes s podporou Azure Arc se v současné době nepodporuje. Pokud potřebujete nasadit funkce PowerShellu do clusterů Kubernetes s podporou Azure Arc, vytvořte aplikaci funkcí v kontejneru.

Pokud potřebujete přizpůsobit kontejner, ve kterém běží vaše aplikace funkcí, přečtěte si místo toho téma Vytvoření prvních kontejnerizovaných funkcí ve službě Azure Arc (Preview).

Požadavky

Na místním počítači:

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í instalační službu systému Windows (MSI) k instalaci nástrojů Core Tools verze 4.x. Další informace o dalších instalačních programech založených na balíčcích najdete v souboru readme nástroje Core Tools.

Stáhněte a spusťte instalační program Core Tools na základě vaší verze Windows:

Pokud jste dříve použili instalační službu systému Windows (MSI) k instalaci nástrojů Core Tools ve Windows, měli byste před instalací nejnovější verze odinstalovat starou verzi z nástroje Přidat odebrat programy.

Vytvoření prostředí Kubernetes služby App Service

Než začnete, musíte vytvořit prostředí Kubernetes služby App Service pro cluster Kubernetes s podporou Azure Arc.

Poznámka:

Při vytváření prostředí nezapomeňte poznamenat název vlastního umístění i název skupiny prostředků, která obsahuje vlastní umístění. Můžete je použít k vyhledání ID vlastního umístění, které budete potřebovat při vytváření aplikace funkcí v prostředí.

Pokud jste prostředí nevytvořili, obraťte se na správce clusteru.

Přidání rozšíření Azure CLI

Spusťte prostředí Bash v Azure Cloud Shellu.

Protože tyto příkazy rozhraní příkazového řádku ještě nejsou součástí základní sady rozhraní příkazového řádku, přidejte je následujícími příkazy:

az extension add --upgrade --yes --name customlocation
az extension remove --name appservice-kube
az extension add --upgrade --yes --name appservice-kube

Vytvoření projektu místní funkce

Ve službě Azure Functions je projekt funkcí jednotkou nasazení a spouštění 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, který obsahuje jednu funkci.

  1. Spuštěním func init následujícího příkazu vytvořte projekt funkcí ve složce s názvem LocalFunctionProj se zadaným modulem runtime:

    func init LocalFunctionProj --dotnet
    
  2. Přejděte do složky projektu:

    cd LocalFunctionProj
    

    Tato složka obsahuje různé soubory projektu, včetně konfiguračních souborů pojmenovaných local.settings.json a host.json. Ve výchozím nastavení je soubor local.settings.json vyloučen ze správy zdrojového kódu v souboru .gitignore . Toto vyloučení je způsobeno tím, že soubor může obsahovat tajné kódy, které se stáhnou z Azure.

  3. 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"
    

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 .

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

Získání vlastního umístění

Abyste mohli vytvořit aplikaci funkcí ve vlastním umístění, budete muset získat informace o prostředí.

Získejte následující informace o vlastním umístění od správce clusteru (viz Vytvoření vlastního umístění).

customLocationGroup="<resource-group-containing-custom-location>"
customLocationName="<name-of-custom-location>"

Získejte ID vlastního umístění pro další krok.

customLocationId=$(az customlocation show \
    --resource-group $customLocationGroup \
    --name $customLocationName \
    --query id \
    --output tsv)

Vytvoření zdrojů Azure

Než budete moct nasadit kód funkce do nového prostředí Kubernetes služby App Service, musíte vytvořit dva další prostředky:

  • Účet úložiště. Tento článek sice vytvoří účet úložiště, ale v některých případech se nemusí vyžadovat účet úložiště. Další informace najdete v článku o aspektech úložiště v clusterech s podporou Služby Azure Arc.
  • Aplikace funkcí, která poskytuje kontext pro spuštění kódu funkce. Aplikace funkcí běží v prostředí Kubernetes služby App Service a mapuje se na místní projekt funkcí. Aplikace funkcí umožňuje seskupit funkce jako logickou jednotku pro snadnější správu, nasazení a sdílení prostředků.

Poznámka:

Aplikace funkcí běží v prostředí Kubernetes služby App Service v plánu Dedicated (App Service). Když vytvoříte aplikaci funkcí bez existujícího plánu, vytvoří se pro vás správný plán.

Vytvoření účtu úložiště

Pomocí příkazu az storage account create vytvořte účet úložiště pro obecné účely ve vaší skupině prostředků a oblasti:

az storage account create --name <STORAGE_NAME> --location westeurope --resource-group myResourceGroup --sku Standard_LRS

Poznámka:

V některých případech se nemusí vyžadovat účet úložiště. Další informace najdete v článku o aspektech úložiště v clusterech s podporou Služby Azure Arc.

V předchozím příkladu nahraďte <STORAGE_NAME> názvem, který je pro vás a jedinečný v Azure Storage. Názvy musí obsahovat jenom číslice se třemi až 24 znaky a malými písmeny. Standard_LRS určuje účet pro obecné účely, který služba Functions podporuje. Hodnota --location je standardní oblast Azure.

Vytvoření aplikace funkcí

Spuštěním příkazu az functionapp create vytvořte novou aplikaci funkcí v prostředí.

az functionapp create --resource-group MyResourceGroup --name <APP_NAME> --custom-location <CUSTOM_LOCATION_ID> --storage-account <STORAGE_NAME> --functions-version 4 --runtime dotnet 

V tomto příkladu nahraďte <CUSTOM_LOCATION_ID> ID vlastního umístění, které jste určili pro prostředí Kubernetes služby App Service. Nahraďte <STORAGE_NAME> také názvem účtu, který jste použili v předchozím kroku, a nahraďte <APP_NAME> globálně jedinečným názvem, který je pro vás vhodný.

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:

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 dokončení úplného nasazení v clusteru Kubernetes s podporou Azure Arc může nějakou dobu trvat, můžete znova spustit následující příkaz, abyste ověřili publikované funkce:

func azure functionapp list-functions

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 příkazu publish 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.

Výstup funkce spuštěné v Azure v prohlížeči

Další kroky

Teď, když máte aplikaci funkcí spuštěnou v kontejneru v prostředí Kubernetes s podporou Služby App Service s podporou Služby Azure Arc, můžete ji připojit ke službě Azure Storage přidáním výstupní vazby Queue Storage.