Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln visar hur du skapar en Azure Functions-app i Azure Container Apps, komplett med förkonfigurerade regler för automatisk skalning.
Förutsättningar
| Resurs | Beskrivning |
|---|---|
| Azure-konto | Ett Azure-konto med en aktiv prenumeration. Om du inte har någon sådan nu kan du skapa en kostnadsfritt. |
| Azure Storage-konto | Ett bloblagringskonto för att lagra tillståndet för dina Azure Functions. |
| Azure Application Insights | En instans av Azure Application Insights för att samla in data om din containerapp. |
Skapa en Functions-app
Följande steg visar hur du använder en exempelcontaineravbildning för att skapa din containerapp. Om du vill använda den här proceduren med en anpassad containeravbildning läser du Skapa din första funktionsapp i Azure Container Apps.
Gå till Azure-portalen och sök efter Container Apps i sökfältet.
Välj ContainerAppar.
Välj Skapa.
Välj containerapp
I avsnittet Grundläggande anger du följande värden.
Under Projektinformation:
Fastighet Värde Prenumeration Välj din Azure-prenumeration. Resursgrupp Välj Skapa ny resursgrupp, ge den namnet my-aca-functions-group och välj OK. Namn på containerapp Ange my-aca-functions-app. Markera kryssrutan bredvid Optimera för Azure Functions.
Under Container Apps-miljö anger du:
Fastighet Värde Region Välj en region som är närmast dig. Container Apps-miljö Välj Skapa ny miljö. I fönstret för miljökonfiguration anger du:
Fastighet Värde Miljönamn Ange my-aca-functions-environment Zon-redundans Välj Inaktiverad. Välj Skapa för att spara dina värden.
Välj Nästa: Container för att växla till avsnittet Container .
Bredvid Använd snabbstartsbild, lämna den här rutan avmarkerad.
Under avsnittet Containerinformation anger du följande värden.
Fastighet Värde Namn Den här rutan är förfylld med ditt val i det sista avsnittet. Bildkälla Välj Docker Hub eller andra register Prenumeration Välj din prenumeration. Bildtyp Välj Offentlig. Registerinloggningsserver Ange mcr.microsoft.com Bild och tagg Ange k8se/quickstart-functions:latest Under Miljövariabler anger du värden för följande variabler:
AzureWebJobsStorage-
APPINSIGHTS_INSTRUMENTATIONKEYellerAPPLICATIONINSIGHTS_CONNECTION_STRING
Ange värden för hanterad identitet eller anslutningssträng för dessa variabler. Hanterad identitet rekommenderas.
Variabeln
AzureWebJobsStorageär en obligatorisk anslutningssträng för Azure Storage-kontot för Azure Functions. Det här lagringskontot lagrar funktionskörningsloggar, hanterar utlösare och bindningar och underhåller tillstånd för varaktiga funktioner.Application Insights är en övervaknings- och diagnostiktjänst som ger insikter om prestanda och användning av dina Azure Functions. Den här övervakningen hjälper dig att spåra begärandefrekvenser, svarstider, felfrekvenser och andra mått.
Välj Nästa > ingress för att växla till avsnittet Ingress och ange följande värden.
Fastighet Värde Inledning Markera kryssrutan Aktiverad för att aktivera ingress. Inkommande trafik Välj Acceptera trafik var som helst. Ingresstyp Välj HTTP. Målport Ange 80. Välj Granska + Skapa.
Välj Skapa.
När distributionen är klar väljer du Gå till resurs.
På sidan Översikt väljer du länken bredvid Program-URL:en för att öppna programmet på en ny webbläsarflik.
Lägg till
/api/HttpExamplei slutet av URL:en.Ett meddelande om att "HTTP-utlösarfunktionen bearbetade en begäran" returneras i webbläsaren.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration.
- Om du inte har någon sådan nu kan du skapa en kostnadsfritt.
- Installera Azure CLI.
Skapa en Functions-app
Om du vill logga in på Azure från CLI kör du följande kommando och följer anvisningarna för att slutföra autentiseringsprocessen.
Logga in på Azure.
az loginKör uppgraderingskommandot för att säkerställa att du kör den senaste versionen av CLI.
az upgradeInstallera eller uppdatera Azure Container Apps-tillägget för CLI.
Om du får fel om saknade parametrar när du kör
az containerappkommandon i Azure CLI eller cmdlets från modulenAz.Appi PowerShell, kontrollera att den senaste versionen av Azure Container Apps-tillägget är installerad.az extension add --name containerapp --allow-preview true --upgradeNu när det aktuella tillägget eller modulen har installerats registrerar du
Microsoft.Appnamnrymderna ochMicrosoft.OperationalInsights.az provider register --namespace Microsoft.Appaz provider register --namespace Microsoft.OperationalInsightsSkapa miljövariabler.
RESOURCE_GROUP_NAME="my-aca-functions-group" CONTAINER_APP_NAME="my-aca-functions-app" ENVIRONMENT_NAME="my-aca-functions-environment" LOCATION="westus" STORAGE_ACCOUNT_NAME="storage-account-name" STORAGE_ACCOUNT_SKU="storage-account-sku" APPLICATION_INSIGHTS_NAME="application-insights-name"Skapa en resursgrupp.
az group create \ --name $RESOURCE_GROUP_NAME \ --location $LOCATION \ --output noneSkapa Container Apps-miljön.
az containerapp env create \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --location $LOCATION \ --output noneSkapa lagringskontot
az storage account create \ --name $STORAGE_ACCOUNT_NAME \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --sku $STORAGE_ACCOUNT_SKUHämta anslutningssträng för lagringskonto
$STORAGE_ACCOUNT_CONNECTION_STRING = az storage account show-connection-string \ --name $STORAGE_ACCOUNT_NAME \ --resource-group $RESOURCE_GROUP \ --query connectionString \ --output tsvSkapa Azure Applications Insights
az monitor app-insights component create \ --app $APPLICATION_INSIGHTS_NAME \ --location $LOCATION \ --resource-group $RESOURCE_GROUP \ --application-type webHämta Application Insights-anslutningssträngen
$APPLICATION_INSIGHTS_CONNECTION_STRING = az monitor app-insights component show \ --app $APPLICATION_INSIGHTS_NAME \ --resource-group $RESOURCE_GROUP \ --query connectionString \ --output tsvSkapa en Azure Functions-containerapp.
az containerapp create \ --resource-group $RESOURCE_GROUP_NAME \ --name $CONTAINER_APP_NAME \ --environment $ENVIRONMENT_NAME \ --image mcr.microsoft.com/azure-functions/dotnet8-quickstart-demo:1.0 \ --ingress external \ --target-port 80 \ --kind functionapp \ --query properties.outputs.fqdnDet här kommandot returnerar URL:en för din Functions-app. Kopiera den här URL:en och klistra in den i en webbläsare.
Skapa en Azure Functions-containerapp med --revisions-mode multiple för ett scenario med flera revisioner
az containerapp create \ --name $CONTAINERAPP_NAME \ --resource-group $RESOURCE_GROUP \ --environment $CONTAINERAPPS_ENVIRONMENT \ --image mcr.microsoft.com/azure-functions/dotnet8-quickstart-demo:1.0 \ --target-port 80 \ --ingress external \ --kind functionapp \ --workload-profile-name $WORKLOAD_PROFILE_NAME \ --env-vars AzureWebJobsStorage="$STORAGE_ACCOUNT_CONNECTION_STRING" APPLICATIONINSIGHTS_CONNECTION_STRING="$APPLICATION_INSIGHTS_CONNECTION_STRING"För scenario med multirevision uppgraderar du containerappen och delar trafik
az containerapp update \ --resource-group $RESOURCE_GROUP \ --name $CONTAINERAPP_NAME \ --image mcr.microsoft.com/azure-functions/dotnet8-quickstart-demo:latest az containerapp ingress traffic set -resource-group \ --name $CONTAINERAPP_NAME \ --resource-group $RESOURCE_GROUP \ --revision-weight {revision1_name}=50 \ --revision-weight {revision2_name}=50Lägg till
/api/HttpExamplei slutet av URL:en.Ett meddelande om att "HTTP-utlösarfunktionen bearbetade en begäran" returneras i webbläsaren.
Hantera funktioner
Du kan hantera dina distribuerade funktioner i Azure Container Apps med hjälp av Azure CLI. Följande kommandon hjälper dig att lista, inspektera och interagera med funktionerna som körs i din containerbaserade miljö.
Anmärkning
När du hanterar scenarier med multirevision lägger du till parametern --revision <REVISION_NAME> i kommandot för att rikta in dig på en specifik revision.
Lista över funktioner
Visa alla funktioner som distribueras i containerappen:
# List all functions
az containerapp function list \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME
Visa funktionsinformation
Få detaljerad information om en specifik funktion:
az containerapp function show \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME \
--function-name <FUNCTIONS_APP_NAME>
Övervaka funktionsanrop
Det är viktigt att övervaka funktionsappen för att förstå dess prestanda och diagnostisera problem. Följande kommandon visar hur du hämtar funktions-URL:er, utlöser anrop och visar detaljerade telemetri- och anropssammanfattningar med hjälp av Azure CLI.
Se till att anropa funktionen några gånger med curl -X POST "fqdn/api/HttpExample" innan du kallar på spårningarna
För att visa anropsspårningar, se detaljerade spårningar av funktionsanrop.
az containerapp function invocations traces \ --name $CONTAINERAPP_NAME \ --resource-group $RESOURCE_GROUP \ --function-name <FUNCTIONS_APP_NAME> \ --timespan 5h \ --limit 3Visa en anropssammanfattning för att granska lyckade och misslyckade anrop.
az containerapp function invocations summary \ --name $CONTAINERAPP_NAME \ --resource-group $RESOURCE_GROUP \ --function-name <FUNCTIONS_APP_NAME> \ --timespan 5h
Hantera funktionsnycklar
Azure Functions använder nycklar för autentisering och auktorisering. Du kan hantera följande olika typer av nycklar:
- Värdnycklar: Åtkomst till alla funktioner i appen
- Huvudnycklar: Ge administrativ åtkomst
- Systemnycklar: Används av Azure-tjänster
- Funktionsnycklar: Åtkomst till specifika funktioner
Följande kommandon visar hur du hanterar nycklar för värdmaskinen. Om du vill köra samma kommando för en specifik Functions-app lägger du till parametern i --function-name <FUNCTIONS_APP_NAME> kommandot.
Visa en lista med nycklar
Använd följande kommandon för att visa en lista över värdnivå- och funktionsspecifika nycklar för dina Azure Functions som körs i Container Apps.
Anmärkning
Låt minst en replik köras för att följande nyckelhanteringskommandon ska fungera.
az containerapp function keys list \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME \
--key-type hostKey
Visa en specifik nyckel
Visa värdet för en specifik nyckel på värdnivå för funktionsappen med följande kommando:
az containerapp function keys show \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME \
--key-name <KEY_NAME> \
--key-type hostKey
Ange en nyckel
Ange en specifik nyckel på värdnivå för funktionsappen med följande kommando:
az containerapp function keys set \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME \
--key-name <KEY_NAME> \
--key-value <KEY_VALUE> \
--key-type hostKey