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:
- .NET 6.0 SDK
- Azure CLI versie 2.4 of hoger
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:
- v4.x - Windows 64-bits (aanbevolen. Visual Studio Code-foutopsporing vereist 64-bits.)
- v4.x - Windows 32-bits
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.
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
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.
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
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:
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.
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 alshttp://localhost:7071/api/HttpExample?name=Functions
volgt 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.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.
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.