Sdílet prostřednictvím


Rychlý start: Vytvoření a nasazení kódu funkce do Azure pomocí editoru Visual Studio Code

Pomocí editoru Visual Studio Code vytvořte funkci, která reaguje na požadavky HTTP ze šablony. Pomocí GitHub Copilotu vylepšete vygenerovaný kód funkce, ověřte aktualizace kódu místně a pak ho nasaďte do bezserverového plánu hostování Flex Consumption ve službě Azure Functions.

Pomocí editoru Visual Studio Code vytvořte vlastní funkci obslužné rutiny , která reaguje na požadavky HTTP. Po místním ověření kódu ho nasadíte do plánu hostování Flex Consumption bez serveru ve službě Azure Functions.

Vlastní obslužné rutiny lze použít k vytváření funkcí v libovolném jazyce nebo modulu runtime spuštěním procesu serveru HTTP. Tento článek podporuje Go i Rust.

Při dokončení tohoto rychlého startu vzniknou ve vašem účtu Azure náklady ve výši několika málo centů či méně.

Nezapomeňte vybrat upřednostňovaný vývojový jazyk v horní části článku.

Požadavky

  • Node.js 18.x nebo vyšší. Pomocí příkazu node --version zkontrolujte svou verzi.

Instalace nebo aktualizace nástrojů Core Tools

Rozšíření Azure Functions pro Visual Studio Code se integruje s nástroji Azure Functions Core Tools, abyste mohli spouštět a ladit funkce místně v editoru Visual Studio Code pomocí modulu runtime Azure Functions. Než začnete, je vhodné nainstalovat Nástroje Core Tools místně nebo aktualizovat existující instalaci tak, aby používala nejnovější verzi.

V editoru Visual Studio Code výběrem klávesy F1 otevřete paletu příkazů a pak vyhledejte a spusťte příkaz Azure Functions: Instalace nebo aktualizace nástrojů Core Tools.

Tento příkaz se pokusí spustit instalaci založené na balíčku nejnovější verze nástrojů Core Tools nebo aktualizovat existující instalaci založenou na balíčku. Pokud nemáte na místním počítači nainstalovaný npm nebo Homebrew, musíte místo toho nainstalovat nebo aktualizovat nástroje Core Tools ručně.

Vytvoření místního projektu

V této části pomocí editoru Visual Studio Code vytvoříte místní projekt Azure Functions ve vašem upřednostňovaném jazyce. Později v článku aktualizujete, spustíte a pak publikujete kód funkce do Azure.

  1. V editoru Visual Studio Code stisknutím klávesy F1 otevřete paletu příkazů. Vyhledejte a spusťte příkaz Azure Functions: Create New Project....

  2. Zvolte umístění adresáře pro pracovní prostor projektu a zvolte Vybrat. Měli byste buď vytvořit novou složku, nebo zvolit prázdnou složku pro pracovní prostor projektu. Nevybírejte složku projektu, která už je součástí pracovního prostoru.

  3. Podle pokynů na obrazovce zadejte tyto informace:

    Podnět Výběr
    Výběr jazyka Zvolte C#.
    Výběr modulu runtime .NET Zvolte .NET 8.0 LTS.
    Výběr šablony pro první funkci projektu Zvolte HTTP trigger.
    Zadejte název funkce. Zadejte HttpExample.
    Zadání oboru názvů Zadejte My.Functions.
    Úroveň autorizace Zvolte Function, který vyžaduje přístupový klíč pro volání koncového bodu funkce. Další informace najdete v tématu Úroveň autorizace.
    Vyberte, jak chcete projekt otevřít. Zvolte Open in current window.
    Podnět Výběr
    Výběr jazyka Zvolte Java.
    Výběr verze Javy Zvolte Java 8verzi Jazyka Java, Java 11Java 17Java 21na které běží vaše funkce v Azure. Zvolte verzi Javy, kterou jste ověřili místně.
    Zadejte ID skupiny. Zvolte com.function.
    Zadejte ID artefaktu. Zvolte myFunction.
    Zadejte verzi. Zvolte 1.0-SNAPSHOT.
    Zadejte název balíčku. Zvolte com.function.
    Zadejte název aplikace. Zvolte myFunction-12345.
    Výběr šablony pro první funkci projektu Zvolte HTTP trigger.
    Výběr nástroje pro sestavení pro projekt Java Zvolte Maven.
    Vyberte, jak chcete projekt otevřít. Zvolte Open in current window.
    Podnět Výběr
    Výběr jazyka Zvolte JavaScript.
    Výběr programovacího modelu JavaScriptu Zvolte Model V4.
    Výběr šablony pro první funkci projektu Zvolte HTTP trigger.
    Zadejte název funkce. Zadejte HttpExample.
    Úroveň autorizace Zvolte Function, který vyžaduje přístupový klíč pro volání koncového bodu funkce. Další informace najdete v tématu Úroveň autorizace.
    Vyberte, jak chcete projekt otevřít. Zvolte Open in current window.
    Podnět Výběr
    Výběr jazyka Zvolte TypeScript.
    Výběr programovacího modelu JavaScriptu Zvolte Model V4.
    Výběr šablony pro první funkci projektu Zvolte HTTP trigger.
    Zadejte název funkce. Zadejte HttpExample.
    Úroveň autorizace Zvolte Function, který vyžaduje přístupový klíč pro volání koncového bodu funkce. Další informace najdete v tématu Úroveň autorizace.
    Vyberte, jak chcete projekt otevřít. Zvolte Open in current window.
    Podnět Výběr
    Výběr jazyka Zvolte Python.
    Výběr interpreta Pythonu pro vytvoření virtuálního prostředí Zvolte upřednostňovaný interpret Pythonu. Pokud se možnost nezobrazí, zadejte úplnou cestu k binárnímu souboru Pythonu.
    Výběr šablony pro první funkci projektu Zvolte HTTP trigger.
    Název funkce, kterou chcete vytvořit Zadejte HttpExample.
    Úroveň autorizace Zvolte FUNCTION, který vyžaduje přístupový klíč pro volání koncového bodu funkce. Další informace najdete v tématu Úroveň autorizace.
    Vyberte, jak chcete projekt otevřít. Zvolte Open in current window.
    Podnět Výběr
    Výběr jazyka pro projekt funkce Zvolte PowerShell.
    Výběr šablony pro první funkci projektu Zvolte HTTP trigger.
    Zadejte název funkce. Zadejte HttpExample.
    Úroveň autorizace Zvolte Function, který vyžaduje přístupový klíč pro volání koncového bodu funkce. Další informace najdete v tématu Úroveň autorizace.
    Vyberte, jak chcete projekt otevřít. Zvolte Open in current window.
    Podnět Výběr
    Výběr jazyka pro projekt funkce Zvolte Custom Handler.
    Výběr šablony pro první funkci projektu Zvolte HTTP trigger.
    Zadejte název funkce. Zadejte HttpExample.
    Úroveň autorizace Zvolte Function, který vyžaduje přístupový klíč pro volání koncového bodu funkce. Další informace najdete v tématu Úroveň autorizace.
    Vyberte, jak chcete projekt otevřít. Zvolte Open in current window.

    Pomocí těchto informací Visual Studio Code vygeneruje projekt kódu pro Azure Functions s koncovým bodem funkce triggeru HTTP. Soubory místního projektu můžete zobrazit v Průzkumníku. Další informace o vytvořených souborech najdete v tématu Vygenerované soubory projektu.

  1. V souboru local.settings.json aktualizujte AzureWebJobsStorage nastavení jako v následujícím příkladu:

    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    

    Toto nastavení říká místnímu hostiteli Functions, aby používal emulátor úložiště pro připojení k úložišti vyžadované modelem Pythonu v2. Když projekt publikujete do Azure, použije toto nastavení výchozí účet úložiště. Pokud používáte účet Azure Storage během místního vývoje, nastavte tady připojovací řetězec účtu úložiště.

Spusťte emulátor.

  1. V editoru Visual Studio Code stisknutím klávesy F1 otevřete paletu příkazů. Na paletě příkazů vyhledejte a vyberte Azurite: Start.

  2. Zkontrolujte dolní panel a ověřte, že jsou spuštěné emulační služby Azurite. Pokud ano, můžete funkci spustit místně.

Vytvoření a sestavení funkce

Soubor function.json ve složce HttpExample deklaruje funkci triggeru HTTP. Funkci dokončíte přidáním obslužné rutiny a jeho kompilací do spustitelného souboru.

  1. Stisknutím kombinace kláves Ctrl+ N (Cmd + N v macOS) vytvořte nový soubor. Uložte ho jako obslužnou rutinu.go v kořenovém adresáři aplikace funkcí (ve stejné složce jako host.json).

  2. Do souboru handler.go přidejte následující kód a soubor uložte. Toto je vaše vlastní obslužná rutina Go.

    package main
    
    import (
        "fmt"
        "log"
        "net/http"
        "os"
    )
    
    func helloHandler(w http.ResponseWriter, r *http.Request) {
        message := "This HTTP triggered function executed successfully. Pass a name in the query string for a personalized response.\n"
        name := r.URL.Query().Get("name")
        if name != "" {
            message = fmt.Sprintf("Hello, %s. This HTTP triggered function executed successfully.\n", name)
        }
        fmt.Fprint(w, message)
    }
    
    func main() {
        listenAddr := ":8080"
        if val, ok := os.LookupEnv("FUNCTIONS_CUSTOMHANDLER_PORT"); ok {
            listenAddr = ":" + val
        }
        http.HandleFunc("/api/HttpExample", helloHandler)
        log.Printf("About to listen on %s. Go to https://127.0.0.1%s/", listenAddr, listenAddr)
        log.Fatal(http.ListenAndServe(listenAddr, nil))
    }
    
  3. Stisknutím kombinace kláves Ctrl + Shift + ' nebo vyberte Nový terminál z nabídky Terminál a otevřete nový integrovaný terminál v editoru VS Code.

  4. Zkompilujte vlastní obslužnou rutinu pomocí následujícího příkazu. Spustitelný soubor s názvem handler (handler.exe ve Windows) je výstupem v kořenové složce aplikace funkcí.

    go build handler.go
    

Konfigurace aplikace funkcí

Hostitel funkce musí být nakonfigurovaný tak, aby při spuštění spustil binární soubor vlastní obslužné rutiny.

  1. Otevřete host.json.

  2. customHandler.description V části nastavte hodnotu defaultExecutablePath na handler hodnotu (ve Windows, nastavte ji na handler.exehodnotu ).

  3. customHandler V části přidejte vlastnost s názvem enableForwardingHttpRequest a nastavte její hodnotu na true. Pro funkce, které se skládají pouze z triggeru HTTP, toto nastavení zjednodušuje programování tím, že umožňuje pracovat s typickým požadavkem HTTP místo vlastní datové části požadavku obslužné rutiny.

  4. Potvrďte, že oddíl vypadá jako v tomto příkladu customHandler . Uložte soubor.

    "customHandler": {
      "description": {
        "defaultExecutablePath": "handler",
        "workingDirectory": "",
        "arguments": []
      },
      "enableForwardingHttpRequest": true
    }
    

Aplikace funkcí je nakonfigurovaná tak, aby spustila spustitelný soubor vlastní obslužné rutiny.

Místní spuštění funkce

Visual Studio Code se integruje s nástroji Azure Functions Core, které vám umožní spustit tento projekt na místním vývojovém počítači před publikováním do Azure.

  1. Pokud chcete funkci spustit místně, stiskněte klávesu F5 nebo ikonu Spustit a ladit na panelu aktivit na levé straně. Na panelu Terminál se zobrazí výstup ze základních nástrojů. Aplikace se spustí na panelu Terminálu . Můžete vidět koncový bod URL vaší funkce aktivované protokolem HTTP spuštěné místně.

    Snímek obrazovky s výstupem místní funkce VS Code

    Pokud máte potíže se spuštěním ve Windows, ujistěte se, že výchozí terminál pro Visual Studio Code není nastavený na WSL Bash.

  2. S nástroji Core Tools stále běží v terminálu, zvolte na panelu aktivit ikonu Azure. V oblasti Pracovní prostor rozbalte položku Funkce místního projektu>. Klikněte pravým tlačítkem myši (Windows) nebo Ctrl – klikněte na novou funkci (macOS) a zvolte Spustit funkci nyní....

    Funkce Execute now from Visual Studio Code

  3. V Zadejte tělo požadavku uvidíte hodnotu těla zprávy { "name": "Azure" }. Stisknutím klávesy Enter odešlete tento požadavek do své funkce.

  4. Když se funkce spustí místně a vrátí odpověď, v editoru Visual Studio Code se vyvolá oznámení. Informace o spuštění funkce se zobrazují na panelu terminálu .

  5. Stisknutím kombinace kláves Ctrl +C zastavte nástroje Core Tools a odpojte ladicí program.

Po ověření správného spuštění funkce na místním počítači můžete volitelně použít nástroje AI, jako je GitHub Copilot v editoru Visual Studio Code, k aktualizaci kódu funkce generované šablonou.

Použití AI k normalizaci a ověření vstupu

Tento příklad příkazu pro Copilot Chat aktualizuje stávající kód funkce, aby načetl parametry z řetězce dotazu nebo těla JSON. Použije formátování nebo převody typů a vrátí parametry jako JSON v odpovědi:

Modify the function to accept name, email, and age from the JSON body of the
request. If any of these parameters are missing from the query string, read
them from the JSON body. Return all three parameters in the JSON response, 
applying these rules:
Title-case the name
Lowercase the email
Convert age to an integer if possible, otherwise return "not provided"
Use sensible defaults if any parameter is missing
Make sure that any added packages are compatible with the version of the packages already in the project
Modify the function to accept name, email, and age from the JSON body of the
request. If any of these parameters are missing from the query string, read
them from the JSON body. Return all three parameters in the JSON response, 
applying these rules:
Title-case the name
Lowercase the email
Convert age to an integer if possible, otherwise return "not provided"
Use sensible defaults if any parameter is missing
Modify the function to accept name, email, and age from the JSON body of the
request. If any of these parameters are missing from the query string, read
them from the JSON body. Return all three parameters in the JSON response, 
applying these rules:
Title-case the name
Lowercase the email
Convert age to an integer if possible, otherwise return "not provided"
Use sensible defaults if any parameter is missing
Update the FunctionTest.java file to test the new logic. 

Podle potřeby můžete přizpůsobit výzvu, abyste mohli přidat konkrétní údaje. Potom znovu spusťte aplikaci místně a po změně kódu ověřte, že funguje podle očekávání. Tentokrát použijte text zprávy, například:

{ "name": "devon torres", "email": "torres.devon@contoso.com", "age": "34" }

Tip

GitHub Copilot využívá technologii AI, takže jsou možná překvapení a chyby. Pokud během provádění dojde k nějakým chybám, vložte chybovou zprávu do okna chatu, vyberte režim agenta a požádejte Copilot, aby chybu vyřešil. Další informace najdete v nejčastějších dotazech ke copilotu.

Při spuštění v režimu agenta závisí výsledky tohoto přizpůsobení na konkrétních nástrojích dostupných pro vašeho agenta.

Až budete s aplikací spokojeni, publikujte projekt přímo do Azure pomocí editoru Visual Studio Code.

Po ověření správného spuštění funkce na místním počítači pomocí editoru Visual Studio Code publikujte projekt přímo do Azure.

Přihlásit se do Azure

Než budete moct vytvářet prostředky Azure nebo publikovat aplikaci, musíte se přihlásit do Azure.

  1. Pokud ještě nejste přihlášení, vyberte ikonu Azure na panelu Aktivit. Pak v části Prostředky vyberte Přihlásit se k Azure.

    Snímek obrazovky s oknem přihlášení k Azure v editoru Visual Studio Code

    Pokud už jste přihlášení a uvidíte stávající předplatná, přejděte k další části. Pokud ještě nemáte účet Azure, vyberte Vytvořit účet Azure. Studenti můžou vybrat Vytvořit účet Azure for Students.

  2. Po zobrazení výzvy v prohlížeči vyberte svůj účet Azure a přihlaste se pomocí svých přihlašovacích údajů k účtu Azure. Pokud vytvoříte nový účet, můžete se přihlásit po vytvoření účtu.

  3. Po úspěšném přihlášení můžete zavřít nové okno prohlížeče. Předplatná, která patří k vašemu účtu Azure, se zobrazí na bočním panelu.

Vytvoření aplikace funkcí v Azure

V této části vytvoříte aplikaci funkcí v plánu Flex Consumption spolu se souvisejícími prostředky ve vašem předplatném Azure. Mnoho rozhodnutí o vytváření prostředků se pro vás provádí na základě výchozího chování. Pokud chcete mít větší kontrolu nad vytvořenými prostředky, musíte místo toho vytvořit aplikaci funkcí s pokročilými možnostmi.

  1. V editoru Visual Studio Code výběrem klávesy F1 otevřete paletu příkazů. Na příkazovém řádku (>) zadejte a pak vyberte Azure Functions: Vytvořit aplikaci funkcí v Azure.

  2. Na příkazovém řádku zadejte následující informace:

    Podnět Činnost
    Výběr předplatného Vyberte předplatné Azure, které chcete použít. Výzva se nezobrazí, pokud v části Prostředky uvidíte jenom jedno předplatné.
    Zadejte nový název aplikace funkcí. Zadejte globálně jedinečný název platný v cestě URL. Zadaný název se ověří, abyste měli jistotu, že je v Azure Functions jedinečný.
    Výběr umístění pro nové prostředky Vyberte oblast Azure. Pokud chcete dosáhnout lepšího výkonu , vyberte oblast blízko vás. Zobrazí se pouze oblasti podporované plány Flex Consumption.
    Výběr zásobníku modulu runtime Vyberte jazykovou verzi, kterou aktuálně spouštíte lokálně.
    Vyberte typ ověřování zdroje Vyberte Spravovanou identitu, což je nejbezpečnější možnost připojení k výchozímu účtu úložiště hostitele.

    Na panelu Azure: Protokol aktivit zobrazuje rozšíření Azure stav jednotlivých prostředků, když jsou vytvářeny v Azure.

    Snímek obrazovky zobrazující záznam o vytvoření prostředku Azure

  3. Po vytvoření funkční aplikace se ve vašem předplatném Azure vytvoří následující související prostředky. Prostředky se pojmenují na základě názvu, který jste zadali pro vaši aplikaci funkcí.

    • Skupina prostředků, což je logický kontejner pro související prostředky.
    • Aplikace funkcí, která poskytuje prostředí pro spouštění kódu funkce. Aplikace funkcí umožňuje seskupit funkce jako logickou jednotku pro snadnější správu, nasazení a sdílení prostředků ve stejném plánu hostování.
    • Plán služby Aplikace Azure, který definuje základního hostitele vaší aplikace funkcí.
    • Standardní účet Azure Storage, který používá hostitel Functions k udržování stavu a dalších informací o vaší aplikaci funkcí.
    • Instance Application Insights, která je připojená k funkční aplikaci a sleduje použití vašich funkcí v této aplikaci.
    • Spravovaná identita přiřazená uživatelem přidaná do role Přispěvatel dat objektů blob služby Storage v novém výchozím účtu úložiště hostitele.

    Po vytvoření aplikace funkcí a použití balíčku nasazení se zobrazí oznámení.

    Tip

    Ve výchozím nastavení jsou prostředky Azure potřebné pro vaši aplikaci funkcí vytvořeny na základě názvu, který zadáte pro svou aplikaci funkcí. Ve výchozím nastavení se prostředky vytvářejí pomocí aplikace funkcí ve stejné nové skupině prostředků. Pokud chcete přizpůsobit názvy přidružených zdrojů nebo znovu použít existující zdroje, publikujte projekt s rozšířenými možnostmi vytvoření.

Kompilace vlastní obslužné rutiny pro Azure

V této části zkompilujete projekt pro nasazení do Azure v aplikaci funkcí s Linuxem. Ve většině případů je potřeba před publikováním do Azure znovu zkompilovat binární soubor a upravit konfiguraci tak, aby odpovídala cílové platformě.

  • V integrovaném terminálu zkompilujte obslužnou rutinu do Linuxu/x64.

    GOOS=linux GOARCH=amd64 go build handler.go
    

V kořenovém adresáři aplikace funkcí se vytvoří binární název handler .

Nasazení projektu do Azure

Důležité

Nasazení do stávající funkční aplikace vždy přepíše obsah této aplikace v Azure.

  1. Na paletě příkazů zadejte a pak vyberte Azure Functions: Nasadit do Function App.

  2. Vyberte aplikaci funkcí, kterou jste právě vytvořili. Po zobrazení výzvy k přepsání předchozích nasazení vyberte Nasadit a nasaďte kód funkce do nového prostředku aplikace funkcí.

  3. Po dokončení nasazení vyberte Zobrazit výstup a zobrazte výsledky vytváření a nasazení, včetně prostředků Azure, které jste vytvořili. Pokud oznámení vynecháte, vyberte ikonu zvonku v pravém dolním rohu a znovu ho zobrazíte.

    Snímek obrazovky okna Zobrazit výstup

Spuštění funkce v Azure

  1. Stisknutím klávesy F1 zobrazte paletu příkazů a pak vyhledejte a spusťte příkaz Azure Functions:Execute Function Now.... Pokud se zobrazí výzva, vyberte své předplatné.

  2. Vyberte nový prostředek aplikace funkcí a HttpExample jako funkci.

  3. V části Zadejte text požadavku a { "name": "Contoso", "email": "me@contoso.com", "age": "34" }stisknutím klávesy Enter odešlete tuto zprávu požadavku do funkce.

  4. Když se funkce spustí v Azure, zobrazí se odpověď v oznamovací oblasti. Rozbalte oznámení a zkontrolujte úplnou odpověď.

Řešení problémů

Při řešení nejběžnějších problémů, ke kterým dochází při použití tohoto článku, použijte následující tabulku.

Problém Řešení
Nemůžete vytvořit projekt místní funkce? Ujistěte se, že máte nainstalované rozšíření Azure Functions.
Nemůžete funkci spustit místně? Ujistěte se, že máte nainstalovanou nejnovější verzi nástrojů Azure Functions Core Tools.
Při spuštění ve Windows se ujistěte, že výchozí prostředí terminálu pro Visual Studio Code není nastavené na WSL Bash.
Nemůžete funkci nasadit do Azure? Projděte si informace o chybě ve výstupu. Ikona zvonku v pravém dolním rohu je dalším způsobem zobrazení výstupu. Publikovali jste ji do existující aplikace funkcí? Tato akce přepíše obsah této aplikace v Azure.
Nepodařilo se spustit cloudovou aplikaci funkcí? Nezapomeňte použít řetězec dotazu k odeslání parametrů nebo tělo žádosti pro vlastní obslužné rutiny.

Vyčistěte zdroje

Až budete pokračovat k dalšímu kroku a přidáte vazbu fronty Azure Storage do funkce, budete muset zachovat všechny prostředky, abyste mohli stavět na tom, co jste už udělali.

Jinak můžete pomocí následujícího postupu odstranit aplikaci funkcí a související prostředky, abyste se vyhnuli dalším nákladům.

  1. V editoru Visual Studio Code výběrem ikony Azure otevřete Průzkumníka Azure.
  2. V části Skupiny prostředků najděte svou skupinu prostředků.
  3. Klikněte pravým tlačítkem na skupinu prostředků a vyberte Odstranit.

Další informace o nákladech na službu Functions najdete v tématu Odhad nákladů na plán Consumption.

Další kroky

Visual Studio Code jste použili k vytvoření aplikace funkcí s jednoduchou funkcí aktivovanou protokolem HTTP. V dalších článcích tuto funkci rozbalíte připojením ke službě Azure Cosmos DB nebo Azure Storage. Další informace o připojení k dalším službám Azure najdete v tématu Přidání vazeb do existující funkce ve službě Azure Functions. Další informace o zabezpečení najdete v tématu Zabezpečení služby Azure Functions.