Delen via


Uw eerste functie maken in Azure Arc (preview)

In deze quickstart maakt u een Azure Functions-project en implementeert u dit in een functie-app die wordt uitgevoerd op een Kubernetes-cluster met Azure Arc. Zie App Service, Functions en Logic Apps in Azure Arc voor meer informatie. Dit scenario ondersteunt alleen functie-apps die worden uitgevoerd op Linux.

Notitie

Ondersteuning voor het uitvoeren van functies in een Kubernetes-cluster met Azure Arc is momenteel in preview.

Het publiceren van PowerShell-functieprojecten naar Kubernetes-clusters met Azure Arc wordt momenteel niet ondersteund. Als u PowerShell-functies wilt implementeren in Kubernetes-clusters met Azure Arc, maakt u uw functie-app in een container.

Als u de container wilt aanpassen waarin uw functie-app wordt uitgevoerd, raadpleegt u In plaats daarvan Uw eerste containerfuncties maken in Azure Arc (preview).

Vereisten

Op uw lokale computer:

Azure Functions Core Tools installeren

De aanbevolen manier om Core Tools te installeren, is afhankelijk van het besturingssysteem van uw lokale ontwikkelcomputer.

In de volgende stappen wordt een Windows Installer (MSI) gebruikt om Core Tools v4.x te installeren. Zie de leesmij voor Core Tools voor meer informatie over andere installatieprogramma's op basis van pakketten.

Download en voer het Core Tools-installatieprogramma uit op basis van uw versie van Windows:

Als u eerder Windows Installer (MSI) hebt gebruikt om Core Tools in Windows te installeren, moet u de oude versie verwijderen uit Programma's toevoegen voordat u de nieuwste versie installeert.

Een App Service Kubernetes-omgeving maken

Voordat u begint, moet u een App Service Kubernetes-omgeving maken voor een Kubernetes-cluster met Azure Arc.

Notitie

Wanneer u de omgeving maakt, moet u zowel de naam van de aangepaste locatie als de naam van de resourcegroep met de aangepaste locatie noteren. U kunt deze gebruiken om de aangepaste locatie-id te vinden, die u nodig hebt bij het maken van uw functie-app in de omgeving.

Als u de omgeving niet hebt gemaakt, neem dan contact op met de clusterbeheerder.

Azure CLI-extensies toevoegen

Start de Bash-omgeving in Azure Cloud Shell.

Omdat deze CLI-opdrachten nog geen deel uitmaken van de cli-kernset, voegt u deze toe met de volgende opdrachten:

az extension add --upgrade --yes --name customlocation
az extension remove --name appservice-kube
az extension add --upgrade --yes --name appservice-kube

Het lokale functieproject maken

In Azure Functions is een functieproject de eenheid van implementatie en uitvoering voor een of meer afzonderlijke functies die elk op een specifieke trigger reageren. Alle functies in een project delen dezelfde lokale configuratie en hostingconfiguratie. In deze sectie maakt u een functieproject dat één functie bevat.

  1. Voer de opdracht func init als volgt uit om een functieproject te maken in een map met de naam LocalFunctionProj met de opgegeven runtime:

    func init LocalFunctionProj --dotnet
    
  2. Navigeer naar de projectmap:

    cd LocalFunctionProj
    

    Deze map bevat verschillende bestanden voor het project,waaronder configuratiebestanden met de naam local.settings.json en host.json. Standaard wordt het local.settings.json-bestand uitgesloten van broncodebeheer in het .gitignore-bestand . Deze uitsluiting komt doordat het bestand geheimen kan bevatten die zijn gedownload uit Azure.

  3. Voeg een functie toe aan uw project met behulp van de volgende opdracht, waarbij het argument --name de unieke naam van de functie is (HttpExample) en het argument --template de trigger van de functie (HTTP).

    func new --name HttpExample --template "HTTP trigger" --authlevel "anonymous"
    

De functie lokaal uitvoeren

  1. Voer uw functie uit door de lokale Azure Functions-runtimehost te starten vanuit de map LocalFunctionProj .

    func start
    

    Aan het einde van de uitvoer moeten de volgende regels worden weergegeven:

    Schermopname van uitvoer van terminalvensters wanneer u de functie lokaal uitvoert.

    Notitie

    Als HttpExample niet verschijnt zoals hierboven weergegeven, hebt u waarschijnlijk de host gestart van buiten de hoofdmap van het project. In dat geval gebruikt u Ctrl+C om de host te stoppen, naar de hoofdmap van het project te gaan en de vorige opdracht opnieuw uit te voeren.

  2. Kopieer de URL van uw HTTP-functie van deze uitvoer naar een browser en voeg de querytekenreeks ?name=<YOUR_NAME>toe, waardoor de volledige URL er als http://localhost:7071/api/HttpExample?name=Functionsvolgt uitziet. In de browser moet een antwoordbericht worden weergegeven dat de waarde van de querytekenreeks weergeeft. De terminal waarin u uw project hebt gestart, toont ook de logboek uitvoer wanneer u aanvragen doet.

  3. Wanneer u klaar bent, drukt u op Ctrl+C en typt y u om de functiehost te stoppen.

De aangepaste locatie ophalen

Als u een functie-app op een aangepaste locatie wilt maken, moet u informatie over de omgeving krijgen.

Haal de volgende informatie op over de aangepaste locatie van uw clusterbeheerder (zie Een aangepaste locatie maken).

customLocationGroup="<resource-group-containing-custom-location>"
customLocationName="<name-of-custom-location>"

Haal de aangepaste locatie-id op voor de volgende stap.

customLocationId=$(az customlocation show \
    --resource-group $customLocationGroup \
    --name $customLocationName \
    --query id \
    --output tsv)

Azure-resources maken

Voordat u uw functiecode kunt implementeren in uw nieuwe App Service Kubernetes-omgeving, moet u nog twee resources maken:

  • Een opslagaccount. Hoewel in dit artikel een opslagaccount wordt gemaakt, is in sommige gevallen mogelijk geen opslagaccount vereist. Zie voor meer informatie clusters met Azure Arc in het artikel met overwegingen voor opslag.
  • Een functie-app, die de context biedt voor het uitvoeren van uw functiecode. De functie-app wordt uitgevoerd in de App Service Kubernetes-omgeving en wordt toegewezen aan uw lokale functieproject. Met een functie-app kunt u functies groeperen in een logische eenheid, zodat u resources eenvoudiger kunt beheren, implementeren en delen.

Notitie

Functie-apps worden uitgevoerd in een App Service Kubernetes-omgeving op een Toegewezen (App Service)-plan. Wanneer u uw functie-app maakt zonder een bestaand plan, wordt het juiste plan voor u gemaakt.

Een opslagaccount maken

Gebruik de opdracht az storage account create om een algemeen opslagaccount in uw resourcegroep en regio te maken:

az storage account create --name <STORAGE_NAME> --location westeurope --resource-group myResourceGroup --sku Standard_LRS

Notitie

In sommige gevallen is een opslagaccount mogelijk niet vereist. Zie voor meer informatie clusters met Azure Arc in het artikel met overwegingen voor opslag.

Vervang <STORAGE_NAME> in het vorige voorbeeld door een naam die voor u passend is en die uniek is in Azure Storage. Namen mogen drie tot 24 tekens bevatten en u mag alleen kleine letters gebruiken. Met Standard_LRS geeft u een account voor algemeen gebruik op dat wordt ondersteund door Functions. De --location waarde is een standaard Azure-regio.

De functie-app maken

Voer de opdracht az functionapp create uit om een nieuwe functie-app in de omgeving te maken.

az functionapp create --resource-group MyResourceGroup --name <APP_NAME> --custom-location <CUSTOM_LOCATION_ID> --storage-account <STORAGE_NAME> --functions-version 4 --runtime dotnet 

Vervang in dit voorbeeld door <CUSTOM_LOCATION_ID> de id van de aangepaste locatie die u hebt bepaald voor de App Service Kubernetes-omgeving. <STORAGE_NAME> Vervang ook door de naam van het account dat u in de vorige stap hebt gebruikt en vervang deze door <APP_NAME> een wereldwijd unieke naam die voor u geschikt is.

Het functieproject implementeren in Azure

Nadat u uw functie-app in Azure hebt gemaakt, bent u nu klaar om uw lokale functions-project te implementeren met behulp van de func azure functionapp publish opdracht.

Voer deze func azure functionapp publish opdracht uit in de hoofdprojectmap:

func azure functionapp publish <APP_NAME>

Vervang in dit voorbeeld door <APP_NAME> de naam van uw app. Een geslaagde implementatie toont resultaten die vergelijkbaar zijn met de volgende uitvoer (afgekapt voor eenvoud):

...

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

Omdat het enige tijd kan duren voordat een volledige implementatie is voltooid op een Kubernetes-cluster met Azure Arc, kunt u de volgende opdracht opnieuw uitvoeren om uw gepubliceerde functies te controleren:

func azure functionapp list-functions

De functie aanroepen in Azure

Omdat uw functie gebruikmaakt van een HTTP-trigger, roept u deze aan door een HTTP-aanvraag naar de URL in de browser of met een hulpprogramma zoals curl.

Kopieer de volledige Aanroep-URL die wordt weergegeven in de uitvoer van de publicatieopdracht naar de adresbalk van een browser en voeg de queryparameter ?name=Functions toe. De browser moet vergelijkbare uitvoer weergeven als u de functie lokaal hebt uitgevoerd.

De uitvoer van de functie die wordt uitgevoerd op Azure in een browser

Volgende stappen

Nu uw functie-app wordt uitgevoerd in een container in een App Service Kubernetes-omgeving met Azure Arc, kunt u deze verbinden met Azure Storage door een Queue Storage-uitvoerbinding toe te voegen.