Rychlý start: Vytvoření funkce jazyka C# v Azure z příkazového řádku
V tomto článku pomocí nástrojů příkazového řádku vytvoříte funkci jazyka C#, 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 vytvoří funkci aktivovanou protokolem HTTP, která běží v .NET 8 v izolovaném pracovním procesu. Informace o verzích .NET podporovaných pro funkce jazyka C# naleznete v tématu Podporované verze. K dispozici je také verze tohoto článku založená na editoru Visual Studio Code.
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ší).
Konfigurace místního prostředí
Než začnete, musíte mít následující:
Jeden z následujících nástrojů pro vytváření prostředků Azure:
Potřebujete také účet Azure s aktivním předplatným. Vytvoření účtu zdarma
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í místního projektu 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, 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 --worker-runtime dotnet-isolated --target-framework net8.0
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. 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"
func new
vytvoří soubor kódu HttpExample.cs.
(Volitelné) Prozkoumání obsahu souboru
V případě potřeby můžete funkci spustit místně a později obsah souboru prozkoumat.
HttpExample.cs
HttpExample.cs obsahuje metoduRun
, která přijímá data požadavku v req
proměnné jako HttpRequest objekt. Tento parametr je zdobený atributem HttpTriggerAttribute, který definuje chování triggeru.
using System.Net;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.Logging;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace Company.Function
{
public class HttpExample
{
private readonly ILogger<HttpExample> _logger;
public HttpExample(ILogger<HttpExample> logger)
{
_logger = logger;
}
[Function("HttpExample")]
public IActionResult Run([HttpTrigger(AuthorizationLevel.AuthLevelValue, "get", "post")] HttpRequest req)
{
_logger.LogInformation("C# HTTP trigger function processed a request.");
return new OkObjectResult("Welcome to Azure Functions!");
}
}
}
Návratový objekt je IActionResult objekt, který obsahuje data, která jsou předána zpět do odpovědi HTTP.
Další informace najdete v tématu Triggery a vazby HTTP služby Azure Functions.
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 by se měly zobrazit následující řádky:
... Now listening on: http://0.0.0.0:7071 Application started. Press Ctrl+C to shut down. Http Functions: HttpExample: [GET,POST] http://localhost:7071/api/HttpExample ...
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
HttpExample
z tohoto výstupu do prohlížeče a přejděte na adresu URL funkce a měli byste obdržet zprávu Vítá vás služba Azure Functions .Až budete hotovi, pomocí kláves Ctrl+C zastavte
y
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ý slouží k udržování stavu a dalších informací o vašich funkcích.
- 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.
Pokud jste to ještě neudělali, přihlaste se 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 .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 --allow-blob-public-access false
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 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.
Důležité
Účet úložiště slouží k ukládání důležitých dat aplikace, někdy včetně samotného kódu aplikace. Přístup z jiných aplikací a uživatelů byste měli omezit na účet úložiště.
Vytvoření aplikace funkcí v Azure:
az functionapp create --resource-group AzureFunctionsQuickstart-rg --consumption-plan-location <REGION> --runtime dotnet-isolated --functions-version 4 --name <APP_NAME> --storage-account <STORAGE_NAME>
Příkaz az functionapp create vytvoří aplikaci funkcí v Azure.
V předchozím příkladu nahraďte
<STORAGE_NAME>
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ý.<APP_NAME>
je také výchozí doména DNS pro aplikaci funkcí.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:
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 a podporuje požadavky GET, vyvoláte ji tak, že na její adresu URL vytvoříte požadavek HTTP. Nejjednodušší je to udělat v prohlížeči.
Zkopírujte úplnou adresu URL vyvolání zobrazené ve výstupu příkazu publish do adresního řádku prohlížeče. Když přejdete na tuto adresu URL, prohlížeč by měl zobrazit podobný výstup jako při místním spuštění funkce.
Spuštěním následujícího příkazu zobrazte protokoly streamování téměř v reálném čase:
func azure functionapp logstream <APP_NAME>
V samostatném okně terminálu nebo v prohlížeči znovu volejte vzdálenou funkci. Podrobný protokol spuštění funkce v Azure se zobrazí v terminálu.
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.
az group delete --name AzureFunctionsQuickstart-rg