Remarque
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.
Dans ce tutoriel, vous déployez une application conteneur sur un environnement connecté existant à Container Apps sur un cluster Kubernetes compatible Azure Arc. Vous vérifiez ensuite le provisionnement, le DNS, les entrées, la réponse de l’application et les journaux.
- Récupérez un environnement connecté spécifique par son nom.
- Créez une application conteneur avec une entrée externe.
- Vérifiez la révision de l’application et le nom de domaine entièrement qualifié.
- Envoyez une requête à l’application.
- Consultez les journaux d’application dans Log Analytics, si configurés.
- Supprime l’application tutoriel.
Prérequis
Avant de commencer, vérifiez les exigences suivantes :
- Un environnement connecté créé en complétant Enable Azure Container Apps sur Azure Arc-enabled Kubernetes.
- Accès à Azure CLI pour l’abonnement qui contient l’environnement connecté.
- Permission Azure de créer des applications conteneurs dans le groupe de ressources cible et l’environnement connecté.
- Le groupe de ressources et le nom de l’environnement connecté.
- Accès réseau et DNS depuis votre poste de travail à l’adresse d’entrée de l’environnement connecté.
- Permission optionnelle pour interroger l’espace de travail Log Analytics configuré lors de l’installation de l’extension.
Avant de déployer une application de production, consultez Azure Container Apps sur Azure Arc. Si l'application ne se provisionne pas ou ne devient pas accessible, consultez Troubleshoot Azure Container Apps on Azure Arc-enabled Kubernetes.
Ajouter l’extension Azure CLI
Lancez l’environnement Bash dans Azure Cloud Shell.
Ensuite, ajoutez l’extension Azure CLI requise.
az extension add --name containerapp --upgrade --yes
Créez un groupe de ressources pour l’application
L’application conteneur peut utiliser un groupe de ressources différent de l’environnement connecté. Définissez le groupe de ressources applicatifs et la région Azure utilisée pour stocker ses métadonnées de ressources. Le conteneur applicatif s’exécute dans le cluster Kubernetes associé à l’environnement connecté.
APP_RESOURCE_GROUP="my-container-apps-resource-group"
AZURE_LOCATION="eastus"
az group create --name $APP_RESOURCE_GROUP --location $AZURE_LOCATION
Obtenez un environnement connecté
Définissez le groupe de ressources et le nom de l’environnement connecté :
CONNECTED_ENVIRONMENT_RESOURCE_GROUP="<CONNECTED_ENVIRONMENT_RESOURCE_GROUP>"
CONNECTED_ENVIRONMENT_NAME="<CONNECTED_ENVIRONMENT_NAME>"
Récupérez cet environnement connecté spécifique et vérifiez qu’il est prêt :
CONNECTED_ENVIRONMENT_ID=$(az containerapp connected-env show \
--resource-group $CONNECTED_ENVIRONMENT_RESOURCE_GROUP \
--name $CONNECTED_ENVIRONMENT_NAME \
--query id \
--output tsv)
az containerapp connected-env show \
--resource-group $CONNECTED_ENVIRONMENT_RESOURCE_GROUP \
--name $CONNECTED_ENVIRONMENT_NAME \
--query "{Id:id,State:properties.provisioningState,Domain:properties.defaultDomain}" \
--output yaml
Continuer seulement lorsque State est Succeeded.
Créez et vérifiez l’application
Créez l’exemple d’application :
CONTAINER_APP_NAME="my-container-app"
az containerapp create \
--resource-group $APP_RESOURCE_GROUP \
--name $CONTAINER_APP_NAME \
--environment $CONNECTED_ENVIRONMENT_ID \
--environment-type connected \
--image mcr.microsoft.com/k8se/quickstart:latest \
--target-port 80 \
--ingress external
Attendez que le provisionnement réussisse :
CONTAINER_APP_ID=$(az containerapp show \
--resource-group $APP_RESOURCE_GROUP \
--name $CONTAINER_APP_NAME \
--query id \
--output tsv)
az resource wait --ids $CONTAINER_APP_ID --created --timeout 600
az containerapp show \
--resource-group $APP_RESOURCE_GROUP \
--name $CONTAINER_APP_NAME \
--query "{State:properties.provisioningState,Revision:properties.latestReadyRevisionName,FQDN:properties.configuration.ingress.fqdn}" \
--output yaml
APP_FQDN=$(az containerapp show \
--resource-group $APP_RESOURCE_GROUP \
--name $CONTAINER_APP_NAME \
--query properties.configuration.ingress.fqdn \
--output tsv)
Continuer seulement lorsque State est Succeeded, Revision n’est pas vide, et FQDN contient le domaine de l’environnement connecté. Test DNS et réponse de l’application depuis un réseau pouvant atteindre l’adresse d’entrée de l’environnement connecté :
nslookup $APP_FQDN
curl --fail --show-error "https://$APP_FQDN"
Vous pouvez également ouvrir l’application dans un navigateur :
az containerapp browse \
--resource-group $APP_RESOURCE_GROUP \
--name $CONTAINER_APP_NAME
Si DNS ne se résout pas, si la requête expire ou si la réponse n’est pas réussie, voir L’entrée d’application n’est pas joignable.
Récupérer des journaux de diagnostic à l’aide de Log Analytics
Remarque
Cette section ne s’applique que lorsque vous configurez Log Analytics lors de l’installation de l’extension Container Apps. Si vous n'avez pas configuré Log Analytics, passez cette section.
Ouvrez l’espace de travail Log Analytics configuré pour l’extension Conteneurs Applications et sélectionnez Logs. Exécutez la requête suivante pour afficher les journaux des 72 dernières heures. L’ingestion initiale peut prendre 10 à 15 minutes.
let StartTime = ago(72h);
let EndTime = now();
ContainerAppConsoleLogs_CL
| where TimeGenerated between (StartTime .. EndTime)
| where ContainerAppName_s =~ "my-container-app"
Les journaux d’application pour toutes les applications hébergées dans votre cluster Kubernetes sont enregistrés dans l’espace de travail Log Analytics de la table de journaux personnalisée nommée ContainerAppConsoleLogs_CL.
-
Log_scontient les messages de journal d’application et les messages du cycle de vie du conteneur. -
ContainerAppName_sidentifie l’application conteneur. Ce champ est utilisé par la requête précédente.
Pour en savoir plus sur les requêtes de journal, consultez Commencer avec Kusto.
Nettoyez l’application tutoriel
Supprimez l’application conteneur exemple :
az containerapp delete \
--resource-group $APP_RESOURCE_GROUP \
--name $CONTAINER_APP_NAME \
--yes
Si vous avez créé le groupe de ressources applicatif uniquement pour ce tutoriel et qu’il ne contient aucune autre ressource, supprimez-le.
az group delete --name $APP_RESOURCE_GROUP --yes --no-wait
Ne supprimez pas l’environnement connecté, la localisation personnalisée, l’extension ou le cluster connecté car d’autres applications peuvent partager ces ressources.