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:
- Sada .NET 6.0 SDK
- Azure CLI verze 2.4 nebo novější
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:
- v4.x – Windows 64bitová verze (doporučeno. Ladění editoru Visual Studio Code vyžaduje 64bitovou verzi.)
- v4.x – Windows 32bitová verze
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.
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
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.
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
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í.
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=Functions
dotazu . Prohlížeč by měl zobrazit podobný výstup jako při místním spuštění funkce.
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.