Partage via


Configurer l'ingress pour votre application dans Azure Container Apps

Cet article vous montre comment activer les fonctionnalités d’entrée pour votre application conteneur. Une entrée est un paramètre à l’échelle de l’application. Les modifications apportées aux paramètres d’entrée s’appliquent à toutes les révisions simultanément et ne génèrent pas de nouvelles révisions.

Paramètres d’entrée

Vous pouvez définir les propriétés de modèle d’entrée suivantes :

Propriété Descriptif Valeurs Obligatoire
allowInsecure Autorise le trafic non sécurisé vers votre application conteneur. Lorsque la valeur est définie true, les requêtes HTTP vers le port 80 ne sont pas automatiquement redirigées vers le port 443 à l’aide du protocole HTTPS, ce qui autorise les connexions non sécurisées. false (par défaut), true active les connexions non sécurisées Non
clientCertificateMode Mode de certificat client pour l’authentification mTLS. Ignore indique que le serveur supprime le certificat client lors du transfert. Accept indique que le serveur transfère le certificat client, mais ne nécessite pas de certificat client. Require indique que le serveur nécessite un certificat client. Required, Accept, Ignore (par défaut) Non
customDomains Liaisons de domaine personnalisées pour les noms d’hôte de Container Apps. Voir Domaines personnalisés et certificats Tableau de liaisons Non
exposedPort (Entrée TCP uniquement) Le port TCP écoute. Si external a la valeur true, la valeur doit être unique dans l’environnement Container Apps. Numéro de port compris entre 1 et 65535. (ne peut pas être 80 ni 443) Non
external Autorisez les entrées dans votre application en dehors de son environnement Container Apps. true ou false (par défaut) Oui
ipSecurityRestrictions Restrictions d’entrée IP. Voir Configurer des restrictions d’entrée IP Tableau de règles Non
stickySessions.affinity Active l’affinité de session. none (par défaut), sticky Non
targetPort Port que votre application conteneur écoute pour les requêtes entrantes. Définissez cette valeur sur le numéro de port qu’utilise votre application conteneur. Pour les entrées HTTP, le point de terminaison d’entrée de votre application est toujours exposé sur le port 443. Oui
traffic Les pondérations de fractionnement du trafic sont réparties parmi les révisions. Tableau de règles Non
transport Type de protocole de transport. auto (valeur par défaut) détecte HTTP/1 ou HTTP/2, http pour HTTP/1, http2 pour HTTP/2, tcp pour TCP. Non

Détection automatique de port

Si l’entrée HTTP de votre application conteneur est activée et que vous ne définissez pas de port cible, Azure Container Apps détecte automatiquement le port cible en analysant tous les ports d’écoute sur votre conteneur. S’il n’y a qu’un seul port détecté, ce port est défini comme port cible pour votre application conteneur. S’il existe plusieurs ports détectés, l’application conteneur ne définit pas automatiquement le port cible et vous devez définir le port cible manuellement.

  • La détection automatique de port fonctionne uniquement pour le trafic HTTP, pas pour le trafic TCP.
  • Si vous avez des sondes d’intégrité HTTP à l’écoute sur les ports 80 ou 443, cette configuration peut interférer avec la détection automatique des ports. La configuration d’entrée par défaut utilise des sondes d’intégrité TCP. Pour plus d’informations, consultez les sondes de santé.

Activer l'entrée

Vous pouvez configurer l’entrée pour votre application conteneur à l’aide d’Azure CLI, d’un modèle ARM ou du portail Azure.

La az containerapp ingress enable commande active l’entrée pour votre application conteneur. Vous devez spécifier le port cible et vous pouvez éventuellement définir le port exposé si votre type de transport est tcp.

az containerapp ingress enable \
    --name <app-name> \
    --resource-group <resource-group> \
    --target-port <target-port> \
    --exposed-port <tcp-exposed-port> \
    --transport <transport> \
    --type <external>
    --allow-insecure

Arguments d’entrée az containerapp ingress enable :

Choix Propriété Descriptif Valeurs Obligatoire
--type external Autorisez les entrées dans votre application n’importe où ou limitez les entrées à son environnement Container Apps interne. external ou internal Oui
--allow-insecure allowInsecure Autorisez les connexions HTTP à votre application. Non
--target-port targetPort Port que votre conteneur écoute pour les demandes entrantes. Définissez cette valeur sur le numéro de port qu’utilise votre conteneur. Le point de terminaison d’entrée de votre application est toujours exposé sur le port 443. Oui
--exposed-port exposedPort (Entrée TCP uniquement) Port pour l’entrée TCP. Si external est défini sur true, la valeur doit être unique dans l’environnement Container Apps si les entrées est externe. Numéro de port compris entre 1 et 65535. (ne peut pas être 80 ni 443) Non
--transport transport Type de protocole de transport. auto (par défaut) détecte HTTP/1 ou HTTP/2, http pour HTTP/1, http2 pour HTTP/2, tcp pour TCP. Non

Activez les entrées pour votre application conteneur à l’aide du portail.

Vous pouvez activer l’entrée lorsque vous créez votre application conteneur. Vous pouvez également le faire pour une application conteneur existante.

  • Pour configurer les entrées lorsque vous créez votre application conteneur, sélectionnez Entrée dans l’onglet Configuration de l’application de l’Assistant Création de l’application conteneur.
  • Pour configurer les entrées pour une application conteneur existante, sélectionnez Entrée dans le menu Paramètres de la page de ressources de l’application conteneur.

Activer les entrées pour votre application conteneur

Vous pouvez configurer les entrées lorsque vous créez votre application conteneur à l’aide du Portail Azure.

  1. Définissez Entrée sur Activée.
  2. Configurez les paramètres d’entrée pour votre application conteneur.
  3. Sélectionnez Limité à l’environnement Container Apps pour les entrées internes ou Accepter le trafic de n’importe où pour les entrées externes.
  4. Sélectionnez le type d’entrée : HTTP ou TCP (l’entrée TCP n’est disponible que dans les environnements configurés avec un réseau virtuel).
  5. Si HTTP est sélectionné pour le Type d’entrée, sélectionnez le Transport : Auto, HTTP/1 ou HTTP/2.
  6. Sélectionnez Connexions non sécurisées si vous souhaitez autoriser les connexions HTTP à votre application.
  7. Entrez le Port cible de votre application conteneur.
  8. Si vous avez sélectionné TCP : pour l’option Transport, entrez le Port exposé pour votre application conteneur. Le numéro de port exposé peut être compris 1 et 65535. (ne peut pas être 80 ni 443)

La page paramètres des Entrées de votre application conteneur vous permet également de configurer des Restrictions IP. Pour plus d’informations sur la configuration de restrictions IP, consultez Restrictions IP.

Activez les entrées pour votre application conteneur à l’aide de la propriété de configuration ingress. Définissez la propriété external sur true, puis définissez vos propriétés transport et targetPort.

  • Définissez la external propriété sur true pour l’entrée externe ou false pour l’entrée interne.
  • Définissez la valeur transport sur auto pour détecter HTTP/1 ou HTTP/2, http pour HTTP/1, http2 pour HTTP/2 ou tcp pour TCP.
  • Définissez la valeur targetPort sur le numéro de port qu’utilise votre conteneur. Le point de terminaison d’entrée de votre application est toujours exposé sur le port 443.
  • Définissez la propriété exposedPort si le type de transport est tcp sur un port pour les entrées TCP. Si les entrées est externe, la valeur doit être unique dans l’environnement Container Apps. Numéro de port compris entre 1 et 65535. (ne peut pas être 80 ni 443)
{
  ...
  "configuration": {
    "ingress": {
        "external": true,
        "transport": "tcp",
        "targetPort": 80,
        "exposedPort": 8080,
    },
  }
}

Désactiver les entrées

Désactivez les entrées pour votre application conteneur à l’aide de la commande az containerapp ingress.

az containerapp ingress disable \
    --name <app-name> \
    --resource-group <resource-group> \

Vous pouvez désactiver l’entrée de votre application conteneur à l’aide du portail.

  1. Sélectionnez Entrée dans le menu Paramètres de la page de l’application conteneur.
  2. Désélectionnez le paramètre EntréeActivée.
  3. Sélectionnez Enregistrer.

Capture d’écran de la désactivation de l’entrée de l’application de conteneur.

Désactivez les entrées pour votre application conteneur en omettant entièrement la propriété de configuration ingress de properties.configuration.

Utiliser d’autres ports TCP

Vous pouvez exposer des ports TCP supplémentaires à partir de votre application. Pour plus d’informations, consultez l’article sur le concept d’entrée.

Remarque

Pour utiliser cette fonctionnalité, vous avez besoin de l’extension CLI des applications conteneur. Exécutez az extension add -n containerapp pour installer la dernière version de l’extension CLI des applications conteneur.

Vous pouvez ajouter des ports TCP supplémentaires via l’interface CLI en référençant un fichier YAML avec vos configurations de port TCP.

az containerapp create \
    --name <app-name> \
    --resource-group <resource-group> \
    --yaml <your-yaml-file>

L’exemple suivant montre un fichier YAML que vous pouvez référencer dans la commande CLI précédente. La configuration des ports TCP supplémentaires est sous additionalPortMappings.

location: northcentralus
name: multiport-example
properties:
  configuration:
    activeRevisionsMode: Single
    ingress:
      additionalPortMappings:
      - exposedPort: 21025
        external: false
        targetPort: 1025
      allowInsecure: false
      external: true
      targetPort: 1080
      traffic:
      - latestRevision: true
        weight: 100
      transport: http
  managedEnvironmentId: <env id>
  template:
    containers:
    - image: maildev/maildev
      name: maildev
      resources:
        cpu: 0.25
        memory: 0.5Gi
    scale:
      maxReplicas: 1
      minReplicas: 1
  workloadProfileName: Consumption
type: Microsoft.App/containerApps

Capture d’écran de l’ajout de ports TCP supplémentaires pour l’entrée container Apps via le portail.

  1. Développez la section Ports TCP supplémentaires dans le volet Entrée.
  2. Ajoutez des ports TCP supplémentaires que votre application utilise pour accepter le trafic dans le champ Target port. Si vous laissez le port Exposé vide, il utilise la même valeur que le port cible.
  3. Modifiez le champ Trafic d’entrée si nécessaire. Ce champ configure l’emplacement où le trafic d’entrée est limité à chaque port.
  4. Lorsque vous avez terminé, cliquez sur Enregistrer.

Le modèle ARM suivant fournit un exemple de la façon dont vous pouvez ajouter des ports supplémentaires à vos applications conteneur. Ajoutez chaque port supplémentaire dans la section additionalPortMappings sous ingress pour configuration dans properties pour l'application conteneur. L’exemple suivant montre comment ajouter des ports supplémentaires :

{
  ...
  "properties": {
    ...
    "configuration": {
      "ingress": {
        ...
        "additionalPortMappings": [
          {
            "external": false
            "targetPort": 80
            "exposedPort": 12000
          }
        ]
      }
    }
  ...
}

Étapes suivantes