Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
Dans cet article, vous allez apprendre à utiliser le routage basé sur des règles avec Azure Container Apps. Avec le routage basé sur des règles, vous créez un nom de domaine complet (FQDN) sur votre environnement d’applications conteneur. Vous utilisez ensuite des règles pour router les demandes de ce nom de domaine complet vers différentes applications conteneur, en fonction du chemin d’accès de chaque requête.
Conditions préalables
Compte Azure avec un abonnement actif.
- Si vous n’en avez pas, vous pouvez en créer un gratuitement.
Installez Azure CLI.
Programme d’installation
Exécutez la commande suivante pour vous connecter à Azure à partir de l’interface CLI.
az loginPour être sûr d’utiliser la dernière version de l’interface CLI, exécutez la commande upgrade.
az upgradeIgnorez les éventuels avertissements concernant les modules actuellement utilisés.
Maintenant 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.OperationalInsights
Créer des variables d’environnement
Créez les variables d’environnement suivantes.
CONTAINER_APP_1_NAME="my-container-app-1"
CONTAINER_APP_1_IMAGE="mcr.microsoft.com/k8se/quickstart:latest"
CONTAINER_APP_1_TARGET_PORT="80"
CONTAINER_APP_2_NAME="my-container-app-2"
CONTAINER_APP_2_IMAGE="mcr.microsoft.com/dotnet/samples:aspnetapp"
CONTAINER_APP_2_TARGET_PORT="8080"
LOCATION="eastus"
RESOURCE_GROUP="my-container-apps"
ENVIRONMENT_NAME="my-container-apps-env"
ROUTE_CONFIG_NAME="my-route-config"
Créer des applications conteneur
Exécutez la commande suivante pour créer votre première application conteneur. Cette application conteneur utilise l’image de démarrage rapide Container Apps.
az containerapp up \ --name $CONTAINER_APP_1_NAME \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --environment $ENVIRONMENT_NAME \ --image $CONTAINER_APP_1_IMAGE \ --target-port $CONTAINER_APP_1_TARGET_PORT \ --ingress external \ --query properties.configuration.ingress.fqdnExécutez la commande suivante pour créer votre deuxième application conteneur. Cette application conteneur utilise l’image de démarrage rapide ASP.NET.
az containerapp up \ --name $CONTAINER_APP_2_NAME \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --environment $ENVIRONMENT_NAME \ --image $CONTAINER_APP_2_IMAGE \ --target-port $CONTAINER_APP_2_TARGET_PORT \ --ingress external \ --query properties.configuration.ingress.fqdnCréez la configuration de l’itinéraire HTTP.
Créez le fichier suivant et enregistrez-le sous
routing.yml.rules: - description: App 1 rule routes: - match: prefix: /app1 action: prefixRewrite: / targets: - containerApp: my-container-app-1 - description: App 2 rule routes: - match: path: /app2 action: prefixRewrite: / - match: path: / targets: - containerApp: my-container-app-2Cette configuration définit deux règles de routage pour le trafic HTTP.
Propriété Descriptif descriptionÉtiquette lisible par l’homme pour la règle routes.match.prefixPréfixe de chemin d’URL à mettre en correspondance. Par exemple : /api.routes.action.prefixRewritePar quoi remplacer le préfixe correspondant avant le transfert. targets.containerAppNom de l’application conteneur dans laquelle la demande de routage correspondante est envoyée. Ces règles permettent à différents chemins d’accès sur votre domaine d’acheminer vers différentes applications conteneur tout en modifiant le chemin de la requête avant qu’il n’atteigne l’application de destination.
Les autres propriétés non répertoriées qui peuvent affecter vos itinéraires incluent les éléments suivants.
Propriété Descriptif route.match.pathDéfinition du chemin d’accès pour correspondance exacte. route.match.pathSeparatedPrefixCorrespond aux itinéraires sur les limites « / » plutôt que sur n’importe quel texte. Par exemple, si vous définissez la valeur sur /product, elle correspondra à/product/1, mais pas à/product1.route.match.caseSensitiveContrôle si les modèles de routage correspondent ou non à la sensibilité de la casse. target.labelRoute vers une révision étiquetée spécifique dans une application conteneur. target.revisionAcheminer vers une révision spécifique au sein d’une application conteneur. Exécutez la commande suivante pour créer la configuration de l’itinéraire HTTP.
az containerapp env http-route-config create \ --http-route-config-name $ROUTE_CONFIG_NAME \ --resource-group $RESOURCE_GROUP \ --name $ENVIRONMENT_NAME \ --yaml routing.yml \ --query properties.fqdnLe nom de domaine complet (FQDN) de votre configuration de routage HTTP ressemble à cet exemple :
my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io
Vérifiez que les deux applications conteneur existent déjà.
Créez le fichier Bicep suivant et enregistrez-le sous
routing.bicep.resource containerAppsEnvironment 'Microsoft.App/managedEnvironments@2024-10-02-preview' = { name: 'my-container-apps-env' location: 'eastus' tags: {} properties: { workloadProfiles: [ { workloadProfileType: 'Consumption' name: 'Consumption' } ] } } resource httpRouteConfig 'Microsoft.App/managedEnvironments/httpRouteConfigs@2024-10-02-preview' = { parent: containerAppsEnvironment name: 'my-route-config' location: 'eastus' properties: { rules: [ { description: 'App 1 rule' routes: [ { match: { prefix: '/app1' } action: { prefixRewrite: '/' } } ] targets: [ { containerApp: 'my-container-app-1' } ] } { description: 'App 2 rule' routes: [ { match: { path: '/app2' } action: { prefixRewrite: '/' } } { match: { path: '/' } } ] targets: [ { containerApp: 'my-container-app-2' } ] } ] } } output fqdn string = httpRouteConfig.properties.fqdnDéployez le fichier Bicep avec la commande suivante :
az deployment group create ` --name $ROUTE_CONFIG_NAME ` --resource-group $RESOURCE_GROUP ` --template-file routing.bicepDans la sortie, recherchez
outputs, qui contient le nom de domaine complet (FQDN) de votre configuration de routage HTTP. Par exemple:"outputs": { "fqdn": { "type": "String", "value": "my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io" } },
Vérifier la configuration de l’itinéraire HTTP
Accédez à votre nom de domaine complet de configuration de routage HTTP avec le chemin d’accès
/app1.Par exemple :
my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io/app1.Vous voyez l’image de démarrage rapide Container Apps.
Accédez à votre nom de domaine complet de configuration de routage HTTP avec le chemin d’accès
/app2.Par exemple :
my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io/app2.Vous voyez l’image de démarrage rapide ASP.NET.
Nettoyer les ressources
Si vous ne souhaitez pas continuer à utiliser cette application, exécutez la commande suivante pour supprimer le groupe de ressources ainsi que toutes les ressources créées pendant ce démarrage rapide.
Avertissement
La commande suivante supprime le groupe de ressources spécifié et toutes les ressources qu’il contient. Si des ressources en dehors de l’étendue de ce guide de démarrage rapide existent dans le groupe de ressources spécifié, elles seront également supprimées.
az group delete --name my-container-apps