Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra come creare un'app di funzioni di Azure in Azure Container Apps, con regole di scalabilità automatica preconfigurate.
Prerequisiti
| Risorsa | Descrizione |
|---|---|
| Account di Azure | Un account Azure con una sottoscrizione attiva. Se non hai un account, puoi crearlo gratuitamente. |
| Account di archiviazione di Azure | Un account di archiviazione BLOB per archiviare lo stato per Funzioni di Azure. |
| Azure Application Insights | Istanza di Azure Application Insights per raccogliere dati sull'app contenitore. |
Creare un'app per le funzioni
I passaggi seguenti illustrano come usare un'immagine del contenitore di esempio per creare l'app contenitore. Per usare questa procedura con un'immagine del contenitore personalizzata, vedere Creare la prima app per le funzioni in App Contenitore di Azure.
Passare al portale di Azure e cercare App contenitore nella barra di ricerca.
Selezionare App contenitore.
Fare clic su Crea.
Selezionare Container App
Nella sezione Informazioni di base immettere i valori seguenti.
In Dettagli del progetto:
Proprietà Valore Abbonamento Seleziona la tua sottoscrizione di Azure. Gruppo di risorse Selezionare Crea nuovo gruppo di risorse, denominarlo my-aca-functions-group e selezionare OK. Nome app contenitore Immettere my-aca-functions-app. Accanto a Ottimizza per Funzioni di Azure, selezionare la casella di controllo.
In Ambiente app contenitore, immettere:
Proprietà Valore Area geografica Selezionare un'area vicina. Ambiente app contenitore Selezionare Crea nuovo ambiente. Nella finestra di installazione dell'ambiente immettere:
Proprietà Valore Nome dell'ambiente Immettere my-aca-functions-environment Ridondanza della zona selezionare Disabilitato. Selezionare Crea per salvare i valori.
Selezionare Avanti: Contenitore per passare alla sezione Contenitore .
Accanto a Usa immagine di avvio rapido lasciare deselezionata questa casella.
Nella sezione Dettagli contenitore immettere i valori seguenti.
Proprietà Valore Nome Questa casella è precompilata con la selezione nell'ultima sezione. Origine immagine Selezionare l'hub Docker o altri registri Abbonamento Selezionare la sottoscrizione. Tipo di immagine Selezionare Pubblico. Server di accesso del Registro di sistema Inserisci mcr.microsoft.com Immagine e tag Immettere k8se/quickstart-functions:latest In Variabili di ambiente, immettere i valori per le variabili seguenti:
AzureWebJobsStorage-
APPINSIGHTS_INSTRUMENTATIONKEYoAPPLICATIONINSIGHTS_CONNECTION_STRING
Immettere i valori di identità gestita o stringa di connessione per queste variabili. È consigliabile usare l'identità gestita.
La
AzureWebJobsStoragevariabile è una stringa di connessione dell'account di archiviazione di Azure necessaria per Funzioni di Azure. Questo account di archiviazione archivia i log di esecuzione delle funzioni, gestisce trigger e associazioni e mantiene lo stato per le funzioni durevoli.Application Insights è un servizio di monitoraggio e diagnostica che fornisce informazioni dettagliate sulle prestazioni e sull'utilizzo di Funzioni di Azure. Questo monitoraggio consente di tenere traccia della frequenza delle richieste, dei tempi di risposta, delle percentuali di errore e di altre metriche.
Selezionare Avanti > ingresso per passare alla sezione Ingresso e immettere i valori seguenti.
Proprietà Valore Dati in ingresso Selezionare la casella di controllo Abilitato per abilitare l'ingresso. Traffico in ingresso Selezionare Accettazione del traffico da qualsiasi posizione. Tipo di ingresso Selezionare HTTP. Porta di destinazione Immettere 80. Selezionare Verifica e crea.
Fare clic su Crea.
Una volta completata la distribuzione, selezionare Vai alla risorsa.
Nella pagina Panoramica selezionare il collegamento accanto a URL applicazione per aprire l'applicazione in una nuova scheda del browser.
Aggiungere
/api/HttpExamplealla fine dell'URL.Nel browser viene restituito un messaggio che indica che la funzione trigger HTTP ha elaborato una richiesta.
Prerequisiti
- Un account Azure con una sottoscrizione attiva.
- Se non hai un account, puoi crearlo gratuitamente.
- Installare l'interfaccia della riga di comando di Azure.
Creare un'app per le funzioni
Per accedere ad Azure dall'interfaccia della riga di comando, eseguire il comando seguente e seguire le istruzioni per completare il processo di autenticazione.
Accedere ad Azure.
az loginPer assicurarsi di eseguire l'ultima versione dell'interfaccia della riga di comando, eseguire il comando di upgrade.
az upgradeInstallare o aggiornare l'estensione App Azure Container per l'interfaccia della riga di comando.
Se ricevi errori relativi ai parametri mancanti quando esegui comandi nell'Azure CLI o cmdlet nel modulo
az containerappdi PowerShell, assicurati di avere installato la versione più recente dell'estensione Azure Container Apps.az extension add --name containerapp --allow-preview true --upgradeOra che l'estensione o il modulo corrente è installato, registrate gli spazi dei nomi
Microsoft.AppeMicrosoft.OperationalInsights.az provider register --namespace Microsoft.Appaz provider register --namespace Microsoft.OperationalInsightsCreare variabili di ambiente.
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"Creare un gruppo di risorse.
az group create \ --name $RESOURCE_GROUP_NAME \ --location $LOCATION \ --output noneCreare l'ambiente app contenitore.
az containerapp env create \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --location $LOCATION \ --output noneCreare l'account di archiviazione
az storage account create \ --name $STORAGE_ACCOUNT_NAME \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --sku $STORAGE_ACCOUNT_SKUAcquisire la stringa di connessione dell'account di Archiviazione
$STORAGE_ACCOUNT_CONNECTION_STRING = az storage account show-connection-string \ --name $STORAGE_ACCOUNT_NAME \ --resource-group $RESOURCE_GROUP \ --query connectionString \ --output tsvCreare le Insights di Applicazioni Azure
az monitor app-insights component create \ --app $APPLICATION_INSIGHTS_NAME \ --location $LOCATION \ --resource-group $RESOURCE_GROUP \ --application-type webAcquisire la stringa di connessione di Application Insights
$APPLICATION_INSIGHTS_CONNECTION_STRING = az monitor app-insights component show \ --app $APPLICATION_INSIGHTS_NAME \ --resource-group $RESOURCE_GROUP \ --query connectionString \ --output tsvCreare un'applicazione contenitore di Azure Functions.
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.fqdnQuesto comando restituisce l'URL dell'app per le funzioni. Copiare questo URL e incollarlo in un Web browser.
Creare un'applicazione container di Azure Functions con --revisions-mode multiple per lo scenario di multirevisione
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"Per lo scenario di multi-revisione, aggiornare il container app e dividere il traffico.
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}=50Aggiungere
/api/HttpExamplealla fine dell'URL.Nel browser viene restituito un messaggio che indica che la funzione trigger HTTP ha elaborato una richiesta.
Gestire le funzioni
È possibile gestire le funzioni distribuite in App Azure Container usando l'interfaccia della riga di comando di Azure. I comandi seguenti consentono di elencare, esaminare e interagire con le funzioni in esecuzione nell'ambiente in contenitori.
Annotazioni
Quando si gestiscono scenari di revisioni multiple, aggiungere il parametro --revision <REVISION_NAME> al comando per specificare una determinata revisione.
Funzioni di elenco
Visualizzare tutte le funzioni distribuite nell'app contenitore:
# List all functions
az containerapp function list \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME
Visualizzare i dettagli della funzione
Ottenere informazioni dettagliate su una funzione specifica:
az containerapp function show \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME \
--function-name <FUNCTIONS_APP_NAME>
Monitorare le chiamate di funzione
Il monitoraggio dell'app per le funzioni è essenziale per comprendere le prestazioni e diagnosticare i problemi. I comandi seguenti illustrano come recuperare gli URL delle funzioni, le chiamate ai trigger e visualizzare riepiloghi di telemetria e chiamate dettagliati usando l'interfaccia della riga di comando di Azure.
Assicurarsi di richiamare la funzione poche volte prima curl -X POST "fqdn/api/HttpExample" di chiamare le tracce
Per visualizzare le tracce di chiamata e ottenere tracce dettagliate delle invocazioni di funzione.
az containerapp function invocations traces \ --name $CONTAINERAPP_NAME \ --resource-group $RESOURCE_GROUP \ --function-name <FUNCTIONS_APP_NAME> \ --timespan 5h \ --limit 3Visualizzare un riepilogo delle chiamate per esaminare le chiamate riuscite e non riuscite.
az containerapp function invocations summary \ --name $CONTAINERAPP_NAME \ --resource-group $RESOURCE_GROUP \ --function-name <FUNCTIONS_APP_NAME> \ --timespan 5h
Gestire le chiavi di funzione
Funzioni di Azure usa le chiavi per l'autenticazione e l'autorizzazione. È possibile gestire i diversi tipi di chiavi seguenti:
- Chiavi host: accedere a qualsiasi funzione nell'app
- Chiavi master: fornire l'accesso amministrativo
- Chiavi di sistema: usate dai servizi di Azure
- Tasti funzione: accedere a funzioni specifiche
I comandi seguenti illustrano come gestire le chiavi per l'host. Per eseguire lo stesso comando per un'app per le funzioni specifica, aggiungere il --function-name <FUNCTIONS_APP_NAME> parametro al comando.
Elenco delle chiavi
Usare i seguenti comandi per elencare le chiavi a livello di host e specifiche della funzione per le Azure Functions in esecuzione nelle Container Apps.
Annotazioni
Mantenere almeno una replica in esecuzione per il funzionamento dei comandi di gestione delle chiavi seguenti.
az containerapp function keys list \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME \
--key-type hostKey
Mostra una chiave specifica
Visualizzare il valore di una chiave a livello di host specifica per l'app per le funzioni con il comando seguente:
az containerapp function keys show \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME \
--key-name <KEY_NAME> \
--key-type hostKey
Impostare una chiave
Impostare una chiave a livello di host specifica per l'app per le funzioni con il comando seguente:
az containerapp function keys set \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME \
--key-name <KEY_NAME> \
--key-value <KEY_VALUE> \
--key-type hostKey