Quickstart: Een Go- of Rust-functie maken in Azure met behulp van Visual Studio Code

In dit artikel gebruikt u Visual Studio Code om een aangepaste handler-functie te maken die reageert op HTTP-aanvragen. Nadat u de code lokaal hebt getest, implementeert u deze in de serverloze omgeving van Azure Functions.

Aangepaste handlers kunnen worden gebruikt om functies in elke taal of runtime te maken door een HTTP-serverproces uit te voeren. Dit artikel biedt ondersteuning voor zowel Go als Rust.

Voor het voltooien van deze quickstart worden kosten van een paar dollarcent of minder in rekening gebracht bij uw Azure-account.

Uw omgeving configureren

Voordat u aan de slag kunt gaan, moet u beschikken over de volgende vereisten:

Core Tools installeren of bijwerken

De Azure Functions-extensie voor Visual Studio Code kan worden geïntegreerd met Azure Functions Core Tools, zodat u uw functies lokaal in Visual Studio Code kunt uitvoeren en fouten kunt opsporen met behulp van de Azure Functions-runtime. Voordat u aan de slag gaat, is het een goed idee om Core Tools lokaal te installeren of een bestaande installatie bij te werken om de nieuwste versie te gebruiken.

Selecteer in Visual Studio Code F1 om het opdrachtenpalet te openen en zoek en voer vervolgens de opdracht Azure Functions uit: Installeren of Core Tools bijwerken.

Met deze opdracht start u een installatie op basis van een pakket van de nieuwste versie van Core Tools.

Uw lokale project maken

In deze sectie gebruikt u Visual Studio Code om een lokaal Azure Functions-project voor aangepaste handlers te maken. Verderop in dit artikel publiceert u de functiecode in Azure.

  1. Kies het Azure-pictogram in de activiteitenbalk. Selecteer vervolgens in het gebied Werkruimte (lokaal) de + knop, kies Functie maken in de vervolgkeuzelijst. Wanneer u hierom wordt gevraagd, kiest u Nieuw project maken.

    Schermopname van het maken van een nieuw projectvenster.

  2. Kies de maplocatie voor uw projectwerkruimte en kies Selecteren. U moet een nieuwe map maken of een lege map voor de projectwerkruimte kiezen. Kies geen projectmap die al deel uitmaakt van een werkruimte.

  3. Geef de volgende informatie op bij de prompts:

    Prompt Selectie
    Selecteer een taal voor uw functieproject Kies Custom Handler.
    Selecteer een sjabloon voor de eerste functie van uw project Kies HTTP trigger.
    Geef een functienaam op Typ HttpExample.
    Verificatieniveau Kies Anonymous, waarmee iedereen uw functie-eindpunt kan aanroepen. Zie Autorisatiesleutels voor meer informatie over autorisatieniveau.
    Selecteer hoe u uw project wilt openen Kies Open in current window.

    Met behulp van deze informatie wordt met Visual Studio Code een Azure Functions-project gegenereerd met een HTTP-trigger. U kunt de lokale projectbestanden weergeven in de Explorer.

Uw functie maken en compileren

Het bestand function.json in de map HttpExample declareert een HTTP-triggerfunctie. U voltooit de functie door een handler toe te voegen en deze te compileren in een uitvoerbaar bestand.

  1. Druk op Ctrl+N (Cmd+N in macOS) om een nieuw bestand te maken. Sla het bestand op als handler.go in de hoofdmap van de functie-app (in dezelfde map als host.json).

  2. Voeg de volgende code toe aan handler.go en sla het bestand op. Dit is uw aangepaste handler in 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. Druk op Ctrl+Shift+` of selecteer Nieuwe terminal in het menu Terminal om een nieuwe geïntegreerde terminal te openen in Visual Studio Code.

  4. Compileer uw aangepaste handler met de volgende opdracht. Een uitvoerbaar bestand met de naam handler (handler.exe in Windows) wordt uitgevoerd in de hoofdmap van de functie-app.

    go build handler.go
    

    VS code - Aangepaste handler in Go compileren

Uw functie-app configureren

De functiehost moet worden geconfigureerd om het binaire bestand van uw aangepaste handler uit te voeren wanneer deze wordt gestart.

  1. Open host.json.

  2. Stel in de sectie customHandler.description de waarde van defaultExecutablePath in op handler (in Windows moet u deze waarde instellen op handler.exe).

  3. Voeg in de sectie customHandler een eigenschap toe met de naam enableForwardingHttpRequest en stel de waarde ervan in op true. Deze maakt het programmeren voor functies die uitsluitend bestaan uit een HTTP-trigger eenvoudiger, omdat u een typische HTTP-aanvraag kunt gebruiken in plaats van de aangepaste handler request payload.

  4. Controleer of de sectie customHandler eruitziet als in dit voorbeeld. Sla het bestand op.

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

De functie-app is geconfigureerd om het uitvoerbare bestand van de aangepaste handler te starten.

De functie lokaal uitvoeren

U kunt dit project uitvoeren op uw lokale ontwikkelcomputer voordat u naar Azure publiceert.

  1. Start de functie-app in de geïntegreerde terminal met behulp van Azure Functions Core Tools.

    func start
    
  2. Als Core Tools wordt uitgevoerd, navigeert u naar de volgende URL om een GET-aanvraag uit te voeren die de querytekenreeks ?name=Functions bevat.

    http://localhost:7071/api/HttpExample?name=Functions

  3. Er wordt een antwoord geretourneerd die er in een browser als volgt uitziet:

    Browser - voorbeelduitvoer van localhost

  4. Informatie over de aanvraag wordt weergegeven in het deelvenster Terminal.

    Taakhost starten - VS Code-terminaluitvoer

  5. Druk op Ctrl+C om Core Tools te stoppen.

Nadat u hebt gecontroleerd of de functie correct wordt uitgevoerd op uw lokale computer, is het tijd om het project te publiceren in Azure met behulp van Visual Studio Code.

Aanmelden bij Azure

Voordat u Azure-resources kunt maken of uw app kunt publiceren, moet u zich aanmelden bij Azure.

  1. Als u nog niet bent aangemeld, kiest u het Azure-pictogram op de activiteitenbalk. Kies vervolgens in het gebied Resources aanmelden bij Azure....

    Schermopname van het aanmeldingsvenster bij Azure in VS Code.

    Als u al bent aangemeld en uw bestaande abonnementen kunt zien, gaat u naar de volgende sectie. Als u nog geen Azure-account hebt, kiest u Een Azure-account maken.... Leerlingen/studenten kunnen een Azure for Students-account maken kiezen ....

  2. Wanneer u hierom wordt gevraagd in de browser, kiest u uw Azure-account en meld u zich aan met uw Azure-accountreferenties. Als u een nieuw account maakt, kunt u zich aanmelden nadat uw account is gemaakt.

  3. Nadat u bent aangemeld, kunt u het nieuwe browservenster sluiten. De abonnementen die deel uitmaken van uw Azure-account, worden weergegeven in de zijbalk.

De aangepaste handler voor Azure compileren

In deze sectie publiceert u uw project naar Azure in een functie-app met Linux. In de meeste gevallen moet u uw binaire bestand opnieuw compileren en de configuratie aanpassen aan het doelplatform voordat u het naar Azure publiceert.

  1. Compileer de handler in Linux/x64 in de geïntegreerde terminal. Er wordt een binair bestand met de naam handler gemaakt in de hoofdmap van de functie-app.

    GOOS=linux GOARCH=amd64 go build handler.go
    

De functie-app maken in Azure

In deze sectie maakt u een functie-app en gerelateerde resources in uw Azure-abonnement.

  1. Kies het Azure-pictogram in de activiteitenbalk. Selecteer vervolgens in het gebied Resources het + pictogram en kies de optie Functie-app maken in Azure .

    Een resource maken in uw Azure-abonnement

  2. Geef de volgende informatie op bij de prompts:

    Prompt Selectie
    Abonnement selecteren Kies het abonnement dat u wilt gebruiken. U ziet dit niet wanneer er slechts één abonnement zichtbaar is onder Resources.
    Voer een wereldwijd unieke naam in voor de functie-app Typ een naam die geldig is in een URL-pad. De naam die u typt, wordt gevalideerd om er zeker van te zijn dat deze uniek is in Azure Functions.
    Een runtimestack selecteren Kies Aangepaste handler.
    Selecteer een locatie voor nieuwe resources Kies voor betere prestaties een regio bij u in de buurt.

    In de extensie ziet u de status van afzonderlijke resources wanneer deze worden gemaakt in Azure in het deelvenster Activiteitenlogboek .

    Logboek van het maken van Azure-resources

  3. Wanneer het maken is voltooid, worden de volgende Azure-resources in uw abonnement gemaakt. De resources hebben een naam op basis van de naam van uw functie-app:

    • Een resourcegroep, een logische container voor gerelateerde resources.
    • Een standaard Azure Storage-account dat de status en andere informatie over uw projecten onderhoudt.
    • Een functie-app, die de omgeving biedt voor het uitvoeren van uw functiecode. Met een functie-app kunt u functies groeperen in een logische eenheid, zodat u resources eenvoudiger kunt beheren, implementeren en delen binnen hetzelfde hostingabonnement.
    • Een App Service-plan, waarmee de onderliggende host voor uw functie-app wordt gedefinieerd.
    • Een Application Insights-exemplaar dat is verbonden met de functie-app, waarmee het gebruik van uw functies in de app wordt bijgehouden.

    Nadat de functie-app is gemaakt en het implementatiepakket is toegepast, wordt er een melding weergegeven.

    Tip

    Standaard worden de Azure-resources die door uw functie-app zijn vereist, gemaakt op basis van de naam van de functie-app die u opgeeft. Ze worden standaard ook gemaakt in dezelfde nieuwe resourcegroep met de functie-app. Als u de namen van deze resources wilt aanpassen of bestaande resources opnieuw wilt gebruiken, moet u het project publiceren met geavanceerde opties voor maken.

Het project implementeren in Azure

Belangrijk

Als u implementeert in een bestaande functie-app, wordt de inhoud van die app altijd overschreven in Azure.

  1. Zoek in het gebied Resources van de Azure-activiteit de functie-app-resource die u zojuist hebt gemaakt, klik met de rechtermuisknop op de resource en selecteer Implementeren in functie-app....

  2. Wanneer u wordt gevraagd om eerdere implementaties te overschrijven, selecteert u Implementeren om uw functiecode te implementeren in de nieuwe functie-app-resource.

  3. Nadat de implementatie is voltooid, selecteert u Uitvoer weergeven om de resultaten van het maken en implementeren weer te geven, inclusief de Azure-resources die u hebt gemaakt. Als u de melding mist, selecteert u het belpictogram in de rechterbenedenhoek om deze opnieuw weer te geven.

    Schermopname van het venster Uitvoer weergeven.

De functie in Azure uitvoeren

  1. Vouw in het gedeelte Resources in de zijbalk uw abonnement, uw nieuwe functie-app en Functions uit. Klik met de rechtermuisknop (Windows) of Ctrl - klik op de HttpExample functie (macOS) en kies Nu functie uitvoeren....

    Schermopname van het uitvoeren van de functie in Azure vanuit Visual Studio Code.

  2. In de hoofdtekst van de aanvraag wordt de hoofdtekstwaarde van het aanvraagbericht weergegeven.{ "name": "Azure" } Druk op Enter om dit aanvraagbericht naar uw functie te verzenden.

  3. Wanneer de functie wordt uitgevoerd in Azure en een antwoord retourneert, wordt er een melding gegenereerd in Visual Studio Code.

Resources opschonen

Wanneer u verder gaat met de volgende stap en een Azure Storage-wachtrijbinding aan uw functie toevoegt, moet u alle resources op dezelfde plaats laten staan, zodat u hiermee verder kunt gaan met wat u al hebt gedaan.

Als dat niet het geval is, kunt u de volgende stappen gebruiken om de functie-app en de bijbehorende resources te verwijderen om te voorkomen dat er verdere kosten in rekening worden gebracht.

  1. Druk in Visual Studio Code op F1 om het opdrachtenpalet te openen. In het opdrachtenpalet zoekt en selecteert u Azure: Open in portal.

  2. Kies uw functie-app en druk op Enter. De functie-app wordt geopend in de Azure-portal.

  3. Selecteer op het tabblad Overzicht de benoemde koppeling naast Resourcegroep.

    Schermopname van het selecteren van de resourcegroep die u wilt verwijderen van de pagina van de functie-app.

  4. Controleer op de pagina Resourcegroep de lijst met opgenomen resources en controleer of ze de resources zijn die u wilt verwijderen.

  5. Selecteer Resourcegroep verwijderen en volg de instructies.

    Verwijderen kan enkele minuten duren. Wanneer dit is voltooid, verschijnt een aantal seconden een melding in beeld. U kunt ook het belpictogram bovenaan de pagina selecteren om de melding te bekijken.

Zie Kosten van verbruiksabonnementen schatten voor meer informatie over de kosten van Functions.

Volgende stappen