Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article explique comment créer une application Azure Functions dans Azure Container Apps, avec des règles de mise à l’échelle automatique préconfigurées.
Conditions préalables
| Ressource | Descriptif |
|---|---|
| Compte Azure | Un compte Azure avec un abonnement actif. Si vous n’en avez pas, vous pouvez en créer un gratuitement. |
| Compte de stockage Azure | Un compte de stockage d’objets blob pour stocker l’état de votre instance Azure Functions. |
| Azure Application Insights | Instance d’Azure Application Insights pour collecter des données sur votre application conteneur. |
Créer une application Functions
Les étapes suivantes vous montrent comment utiliser un exemple d’image conteneur pour créer votre application conteneur. Si vous souhaitez utiliser cette procédure avec une image conteneur personnalisée, consultez Créer votre première application de fonction dans Azure Container Apps.
Accédez au portail Azure et recherchez Container Apps dans la barre de recherche.
Sélectionnez Container Apps.
Cliquez sur Créer.
Sélectionner Container App
Dans la section Informations de base , entrez les valeurs suivantes.
Sous Détails du projet :
Propriété Valeur Abonnement Sélectionnez votre abonnement Azure. groupe de ressources Sélectionnez Créer un groupe de ressources, nommez-le my-aca-functions-group, puis sélectionnez OK. Nom de l’application conteneur Saisissez my-aca-functions-app. À côté d’Optimiser pour Azure Functions, cochez la case.
Sous l’environnement Container Apps, entrez :
Propriété Valeur Région Sélectionnez la région la plus proche de vous. Environnement Container Apps Sélectionnez Créer un environnement. Dans la fenêtre de configuration de l’environnement, entrez :
Propriété Valeur Nom de l’environnement Saisissez my-aca-functions-environment Redondance de zone Sélectionnez Désactivé. Sélectionnez Créer pour enregistrer vos valeurs.
Sélectionnez Suivant : Conteneur pour basculer vers la section Conteneur.
À côté de Utiliser l’image de démarrage rapide, laissez cette case décochée.
Dans la section Détails du conteneur , entrez les valeurs suivantes.
Propriété Valeur Nom Cette zone est préremplie avec votre sélection dans la dernière section. Source d’image Sélectionner Docker Hub ou d’autres registres Abonnement Sélectionnez votre abonnement. Type d’image Sélectionnez Public. Serveur de connexion au registre Entrez mcr.microsoft.com Image et étiquette Entrez k8se/quickstart-functions:latest Sous Variables d’environnement, entrez les valeurs des variables suivantes :
AzureWebJobsStorage-
APPINSIGHTS_INSTRUMENTATIONKEYouAPPLICATIONINSIGHTS_CONNECTION_STRING
Entrez les valeurs de chaîne d’identité managée ou de chaîne de connexion pour ces variables. L’identité managée est recommandée.
La
AzureWebJobsStoragevariable est une chaîne de connexion de compte de stockage Azure requise pour Azure Functions. Ce compte de stockage stocke les journaux d’exécution des fonctions, gère les déclencheurs et les liaisons, et conserve l’état des fonctions durables.Application Insights est un service de supervision et de diagnostic qui fournit des insights sur les performances et l’utilisation de vos fonctions Azure. Cette surveillance vous aide à suivre les taux de demandes, les temps de réponse, les taux d’échec et d’autres métriques.
Sélectionnez Suivant Ingress > pour basculer vers la section Ingress et entrer les valeurs suivantes.
Propriété Valeur Entrée Cochez la case Activé pour activer l’entrée. Trafic d’entrée Sélectionnez Accepter le trafic n’importe où. Type d’entrée Sélectionnez HTTP. Port cible Entrez 80. Sélectionnez Vérifier + créer.
Cliquez sur Créer.
Une fois le déploiement effectué, sélectionnez Accéder à la ressource.
Dans la page Vue d’ensemble , sélectionnez le lien en regard de l’URL de l’application pour ouvrir l’application dans un nouvel onglet de navigateur.
Ajoutez
/api/HttpExampleà la fin de l’URL.Un message indiquant « Fonction de déclencheur HTTP a traité une requête » est retourné dans le navigateur.
Conditions préalables
- Un compte Azure avec un abonnement actif.
- Si vous n’en avez pas, vous pouvez en créer un gratuitement.
- Installez Azure CLI.
Créer une application Functions
Pour vous connecter à Azure à partir de l’interface CLI, exécutez la commande suivante et suivez les invites pour procéder à l’authentification.
Connectez-vous à Azure.
az loginPour être sûr d’utiliser la dernière version de l’interface CLI, exécutez la commande upgrade.
az upgradeInstallez ou mettez à jour l’extension Azure Container Apps pour l’interface CLI.
Si vous recevez des erreurs concernant des paramètres manquants lorsque vous exécutez des commandes
az containerappdans Azure CLI ou des cmdlets du moduleAz.Appdans PowerShell, assurez-vous que la dernière version de l’extension Azure Container Apps est installée.az extension add --name containerapp --allow-preview true --upgradeMaintenant que la version actuelle de l’extension ou du module est installée, inscrivez les espaces de noms
Microsoft.AppetMicrosoft.OperationalInsights.az provider register --namespace Microsoft.Appaz provider register --namespace Microsoft.OperationalInsightsCréez des variables d’environnement.
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"Créez un groupe de ressources.
az group create \ --name $RESOURCE_GROUP_NAME \ --location $LOCATION \ --output noneCréez l’environnement Container Apps.
az containerapp env create \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --location $LOCATION \ --output noneCréer le compte de stockage
az storage account create \ --name $STORAGE_ACCOUNT_NAME \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --sku $STORAGE_ACCOUNT_SKUObtenir la chaîne de connexion du compte de stockage
$STORAGE_ACCOUNT_CONNECTION_STRING = az storage account show-connection-string \ --name $STORAGE_ACCOUNT_NAME \ --resource-group $RESOURCE_GROUP \ --query connectionString \ --output tsvCréer Azure Applications Insights
az monitor app-insights component create \ --app $APPLICATION_INSIGHTS_NAME \ --location $LOCATION \ --resource-group $RESOURCE_GROUP \ --application-type webObtenir la chaîne de connexion Application Insights
$APPLICATION_INSIGHTS_CONNECTION_STRING = az monitor app-insights component show \ --app $APPLICATION_INSIGHTS_NAME \ --resource-group $RESOURCE_GROUP \ --query connectionString \ --output tsvCréez une application conteneur 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.fqdnCette commande retourne l’URL de votre application Functions. Copiez cette URL et collez-la dans un navigateur web.
Créer une application conteneur Azure Functions avec --revisions-mode multiple pour le scénario multirévision
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"Pour le scénario multirévision, mettez à niveau l’application conteneur et fractionnez le trafic
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}=50Ajoutez
/api/HttpExampleà la fin de l’URL.Un message indiquant « Fonction de déclencheur HTTP a traité une requête » est retourné dans le navigateur.
Gérer les fonctions
Vous pouvez gérer vos fonctions déployées dans Azure Container Apps à l’aide d’Azure CLI. Les commandes suivantes vous aident à répertorier, inspecter et interagir avec les fonctions en cours d’exécution dans votre environnement conteneurisé.
Note
Lorsque vous traitez des scénarios multirévisionnement, ajoutez le --revision <REVISION_NAME> paramètre à votre commande pour cibler une révision spécifique.
Fonctions de liste
Affichez toutes les fonctions déployées dans votre application conteneur :
# List all functions
az containerapp function list \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME
Afficher les détails de la fonction
Obtenez des informations détaillées sur une fonction spécifique :
az containerapp function show \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME \
--function-name <FUNCTIONS_APP_NAME>
Surveiller les appels de fonction
La supervision de votre application de fonction est essentielle pour comprendre ses performances et diagnostiquer les problèmes. Les commandes suivantes vous montrent comment récupérer des URL de fonction, déclencher des appels et afficher des synthèses détaillées de télémétrie et d’appel à l’aide d’Azure CLI.
Veillez à appeler la fonction quelques fois par curl -X POST "fqdn/api/HttpExample" avant de lancer les fonctions de trace
Pour afficher les traces d'invocation, obtenez des traces détaillées des invocations de fonction.
az containerapp function invocations traces \ --name $CONTAINERAPP_NAME \ --resource-group $RESOURCE_GROUP \ --function-name <FUNCTIONS_APP_NAME> \ --timespan 5h \ --limit 3Affichez un résumé d’appel pour passer en revue les appels réussis et ayant échoué.
az containerapp function invocations summary \ --name $CONTAINERAPP_NAME \ --resource-group $RESOURCE_GROUP \ --function-name <FUNCTIONS_APP_NAME> \ --timespan 5h
Gérer les clés de fonction
Azure Functions utilise des clés pour l’authentification et l’autorisation. Vous pouvez gérer les différents types de clés suivants :
- Clés d’hôte : Accéder à n’importe quelle fonction dans l’application
- Clés principales : fournir un accès administratif
- Clés système : utilisées par les services Azure
- Clés de fonction : Accéder à des fonctions spécifiques
Les commandes suivantes vous montrent comment gérer les clés pour l’hôte. Pour exécuter la même commande pour une application Functions spécifique, ajoutez le --function-name <FUNCTIONS_APP_NAME> paramètre à votre commande.
Afficher la liste des clés
Utilisez les commandes suivantes pour répertorier les clés propres à l’hôte et à la fonction pour vos fonctions Azure s’exécutant dans Container Apps.
Note
Maintenez au moins une réplique active afin que les commandes suivantes de gestion des clés fonctionnent.
az containerapp function keys list \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME \
--key-type hostKey
Afficher une clé spécifique
Affichez la valeur d’une clé de niveau hôte spécifique pour votre application de fonction avec la commande suivante :
az containerapp function keys show \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME \
--key-name <KEY_NAME> \
--key-type hostKey
Définir une clé
Définissez une clé de niveau hôte spécifique pour votre application de fonction avec la commande suivante :
az containerapp function keys set \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME \
--key-name <KEY_NAME> \
--key-value <KEY_VALUE> \
--key-type hostKey