gebeurtenis
17 mrt, 23 - 21 mrt, 23
Neem deel aan de meetup-serie om schaalbare AI-oplossingen te bouwen op basis van praktijkgebruiksvoorbeelden met collega-ontwikkelaars en experts.
Nu registrerenDeze browser wordt niet meer ondersteund.
Upgrade naar Microsoft Edge om te profiteren van de nieuwste functies, beveiligingsupdates en technische ondersteuning.
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.
Voordat u aan de slag kunt gaan, moet u beschikken over de volgende vereisten:
Een Azure-account met een actief abonnement. Gratis een account maken
Visual Studio Code op een van de ondersteunde platforms.
De Azure Functions-extensie voor Visual Studio Code.
Go (nieuwste versie wordt aanbevolen). Gebruik de opdracht go version
om uw versie te controleren.
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 wordt geprobeerd een installatie op basis van een pakket te starten van de nieuwste versie van Core Tools of een bestaande installatie op basis van een pakket bij te werken. Als u npm of Homebrew niet op uw lokale computer hebt geïnstalleerd, moet u Core Tools handmatig installeren of bijwerken.
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.
Druk in Visual Studio Code op F1 om het opdrachtenpalet te openen en de opdracht Azure Functions: Create New Project...
te zoeken en uit te voeren.
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.
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 Autorisatieniveau voor meer informatie. |
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.
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.
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).
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))
}
Druk op Ctrl+Shift+` of selecteer Nieuwe terminal in het menu Terminal om een nieuwe geïntegreerde terminal te openen in Visual Studio Code.
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
De functiehost moet worden geconfigureerd om het binaire bestand van uw aangepaste handler uit te voeren wanneer deze wordt gestart.
Open host.json.
Stel in de sectie customHandler.description
de waarde van defaultExecutablePath
in op handler
(in Windows moet u deze waarde instellen op handler.exe
).
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.
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.
U kunt dit project uitvoeren op uw lokale ontwikkelcomputer voordat u naar Azure publiceert.
Start de functie-app in de geïntegreerde terminal met behulp van Azure Functions Core Tools.
func start
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
Er wordt een antwoord geretourneerd die er in een browser als volgt uitziet:
Informatie over de aanvraag wordt weergegeven in het deelvenster Terminal.
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.
Voordat u Azure-resources kunt maken of uw app kunt publiceren, moet u zich aanmelden bij Azure.
Als u nog niet bent aangemeld, selecteert u in de activiteitenbalk het Azure-pictogram. Selecteer vervolgens onder Resources aanmelden bij Azure.
Als u al bent aangemeld en uw bestaande abonnementen kunt zien, gaat u naar de volgende sectie. Als u nog geen Azure-account hebt, selecteert u Een Azure-account maken. Leerlingen/studenten kunnen een Azure for Students-account maken selecteren.
Wanneer u hierom wordt gevraagd in de browser, selecteert u uw Azure-account en meldt u zich aan met behulp van uw Azure-accountreferenties. Als u een nieuw account maakt, kunt u zich aanmelden nadat uw account is gemaakt.
Nadat u zich hebt aangemeld, kunt u het nieuwe browservenster sluiten. De abonnementen die deel uitmaken van uw Azure-account, worden weergegeven in de zijbalk.
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.
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.
In deze sectie maakt u een functie-app en gerelateerde resources in uw Azure-abonnement.
Kies het Azure-pictogram in de activiteitenbalk. Selecteer vervolgens in het gebied Resources het + pictogram en kies de optie Functie-app maken in Azure .
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 .
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:
Nadat de functie-app is gemaakt en het implementatiepakket is toegepast, wordt er een melding weergegeven.
Tip
Standaard worden de Azure-resources die vereist zijn voor uw functie-app gemaakt op basis van de naam die u invoert voor uw functie-app. De resources worden standaard gemaakt met de functie-app in dezelfde, nieuwe resourcegroep. Als u de namen van de gekoppelde resources wilt aanpassen of bestaande resources opnieuw wilt gebruiken, publiceert u het project met geavanceerde opties voor maken.
Belangrijk
Als u implementeert in een bestaande functie-app, wordt de inhoud van die app altijd overschreven in Azure.
Voer in het opdrachtenpalet Azure Functions in en selecteer vervolgens Azure Functions: Implementeren in functie-app.
Selecteer de functie-app die u zojuist hebt gemaakt. Wanneer u wordt gevraagd om eerdere implementaties te overschrijven, selecteert u Implementeren om uw functiecode te implementeren in de nieuwe functie-app-resource.
Wanneer 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 te zien.
Druk op F1 om het opdrachtenpalet weer te geven en zoek en voer de opdracht Azure Functions:Execute Function Now...
uit. Selecteer uw abonnement als u hierom wordt gevraagd.
Selecteer de resource van uw nieuwe functie-app en HttpExample
als uw functie.
Druk in enter op { "name": "Azure" }
Enter om dit aanvraagbericht naar uw functie te verzenden.
Wanneer de functie wordt uitgevoerd in Azure, wordt het antwoord weergegeven in het systeemvak. Vouw de melding uit om het volledige antwoord te controleren.
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.
Druk in Visual Studio Code op F1 om het opdrachtenpalet te openen. In het opdrachtenpalet zoekt en selecteert u Azure: Open in portal
.
Kies uw functie-app en druk op Enter. De functie-app wordt geopend in de Azure-portal.
Selecteer op het tabblad Overzicht de benoemde koppeling naast Resourcegroep.
Controleer op de pagina Resourcegroep de lijst met opgenomen resources en controleer of ze de resources zijn die u wilt verwijderen.
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.
gebeurtenis
17 mrt, 23 - 21 mrt, 23
Neem deel aan de meetup-serie om schaalbare AI-oplossingen te bouwen op basis van praktijkgebruiksvoorbeelden met collega-ontwikkelaars en experts.
Nu registrerenTraining
Module
Serverloze apps bouwen met Go en aangepaste handlers - Training
U kunt serverloze apps bouwen met behulp van vrijwel elke programmeertaal die HTTP-primitieven ondersteunt. Met behulp van aangepaste handlers kunt u een runtime kiezen die bij u past.
Certificering
Bouw end-to-end-oplossingen in Microsoft Azure om Azure Functions te maken, web-apps te implementeren en te beheren, oplossingen te ontwikkelen die gebruikmaken van Azure Storage en meer.
Documentatie
Aangepaste handlers voor Azure Functions
Meer informatie over het gebruik van Azure Functions met elke taal- of runtimeversie.
Ondersteunde talen in Azure Functions
Meer informatie over welke talen worden ondersteund voor het ontwikkelen van uw functies in Azure, het ondersteuningsniveau van de verschillende taalversies en mogelijke einddatums voor ondersteuning.
Een Kotlin-functie in Azure Functions maken met behulp van IntelliJ
Ontdek het gebruik van IntelliJ om een eenvoudige, door HTTP geactiveerde Kotlin-functie te maken, die u vervolgens publiceert om te worden uitgevoerd in een serverloze omgeving in Azure.