Configurer l’entrée 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é Description Valeurs Requis
allowInsecure Autorise le trafic non sécurisé vers votre application conteneur. Lorsque défini sur true, les requêtes HTTP sur le port 80 ne sont pas automatiquement redirigées vers le port 443 avec HTTPS, ce qui laisse libre cours aux 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. « Ignorer » signifie que le serveur supprime le certificat client lors du transfert. « Accepter » signifie que le serveur transfère le certificat client, mais ne nécessite pas de certificat client. « Exiger » signifie que le serveur requiert 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 conteneur écoute pour les demandes entrantes. Définissez cette valeur sur le numéro de port qu’utilise votre 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 (par défaut) détecte HTTP/1 ou HTTP/2, http pour HTTP/1, http2 pour HTTP/2, tcp pour TCP. Non

Activer l'entrée

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

Cette commande az containerapp ingress enable active les entrées 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 :

Option Propriété Description Valeurs Requis
--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 les entrées 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, mais vous pouvez aussi 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 (les entrées TCP ne sont disponibles que dans les environnements configurés avec un réseau virtuel personnalisé).
  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.La propriété -external peut être définie sur true pour les entrées externes ou false pour les entrées internes.

  • 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 les entrées 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. Cliquez sur Enregistrer.

Sceenshot de désactivation de l’entrée d’application 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 en savoir plus, consultez l’article sur le concept d’entrée.

Remarque

Pour utiliser cette fonctionnalité, vous devez disposer 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.

L’ajout d’autres ports TCP supplémentaires peut être effectué 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>

Voici un exemple de fichier YAML que vous pouvez référencer dans la commande CLI ci-dessus. La configuration des ports TCP supplémentaires se trouve 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 sur lesquels votre application acceptera le trafic dans le champ Port cible. Si le Port exposé est laissé vide, il prendra la même valeur définie dans le Port cible.
  3. Modifiez le champ Trafic d’entrée si nécessaire. Cela permet de configurer l’emplacement où le trafic d’entrée sera limité pour 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. Chaque port supplémentaire doit être ajouté sous additionalPortMappings au sein de la section ingress pour configuration à l’intérieur de properties pour l’application conteneur. Par exemple :

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

Étapes suivantes