Toegangsconfiguratie voor uw app in Azure Container Apps instellen

In dit artikel leest u hoe u toegangsbeheerfuncties voor uw container-app inschakelt. Ingress is een toepassingsbrede instelling. Wijzigingen in instellingen voor inkomend verkeer zijn van toepassing op alle revisies tegelijk en genereren geen nieuwe revisies.

Ingress-instellingen

U kunt de volgende eigenschappen van de ingress-sjabloon instellen:

Eigenschap Beschrijving Waarden Vereist
allowInsecure Hiermee staat u onveilig verkeer naar uw container-app toe. Wanneer deze instelling is ingesteld true, worden HTTP-aanvragen naar poort 80 niet automatisch omgeleid naar poort 443 via HTTPS, waardoor onveilige verbindingen mogelijk zijn. false (standaard), true schakelt onveilige verbindingen in Nee
clientCertificateMode Clientcertificaatmodus voor mTLS-verificatie. Ignore geeft aan dat de server het clientcertificaat bij het doorsturen laat vallen. Accept geeft aan dat server clientcertificaat doorstuurt, maar geen clientcertificaat vereist. Require geeft aan dat voor de server een clientcertificaat is vereist. Required, , AcceptIgnore (standaard) Nee
customDomains Aangepaste domeinbindingen voor hostnamen van Container Apps. Aangepaste domeinen en certificaten bekijken Een matrix met bindingen Nee
exposedPort (Alleen TCP-inkomend verkeer) De poort TCP luistert. Als externaltrue is, moet de waarde uniek zijn in de Container Apps-omgeving. Een poortnummer van 1 naar 65535. (kan niet 80 of 443 zijn) Nee
external Inkomend verkeer naar uw app toestaan van buiten de Container Apps-omgeving. true of false(standaard) Ja
ipSecurityRestrictions Beperkingen voor inkomend IP-verkeer. Zie Beperkingen voor inkomend IP-verkeer instellen Een matrix met regels Nee
stickySessions.affinity Hiermee schakelt u sessieaffiniteit in. none (standaard), sticky Nee
targetPort De poort waar uw container-app naar luistert voor binnenkomende aanvragen. Stel deze waarde in op het poortnummer dat uw container-app gebruikt. Voor inkomend HTTP-verkeer wordt uw eindpunt voor inkomend verkeer van uw toepassing altijd weergegeven op poort 443. Ja
traffic Verkeersverdeling gewichten verdeeld tussen revisies. Een matrix met regels Nee
transport Het type transportprotocol. auto (standaard) detecteert HTTP/1 of HTTP/2 voor http HTTP/1, http2 voor HTTP/2, tcp voor TCP. Nee

Automatische poortdetectie

Als http-inkomend verkeer is ingeschakeld voor uw container-app en u geen doelpoort instelt, detecteert Azure Container Apps automatisch de doelpoort door alle luisterpoorten in uw container te scannen. Als er slechts één poort is gedetecteerd, is die poort ingesteld als de doelpoort voor uw container-app. Als er meer dan één poort is gedetecteerd, wordt de doelpoort niet automatisch door de container-app ingesteld en moet u de doelpoort handmatig instellen.

  • Automatische poortdetectie werkt alleen voor HTTP-verkeer, niet VOOR TCP-verkeer.
  • Als u HTTP-gezondheidstests hebt die luisteren op poort 80 of 443, kan deze configuratie de automatische poortdetectie verstoren. De standaardconfiguratie voor inkomend verkeer maakt gebruik van TCP-statustests. Zie gezondheidcontroles voor meer informatie.

Inkomend verkeer inschakelen

U kunt inkomend verkeer voor uw container-app configureren met behulp van de Azure CLI, een ARM-sjabloon of Azure Portal.

De az containerapp ingress enable opdracht staat inkomend verkeer voor uw container-app toe. U moet de doelpoort opgeven en u kunt desgewenst de weergegeven poort instellen als uw transporttype is 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

az containerapp ingress enable argumenten voor inkomend verkeer:

Optie Eigenschap Beschrijving Waarden Vereist
--type extern Inkomend verkeer naar uw app van overal toestaan, of dit beperken tot de interne Container Apps-omgeving ervan. external of internal Ja
--allow-insecure toestaanOnveilig HTTP-verbindingen met uw app toestaan. Nee
--target-port Doelpoort De poort waar uw container naar luistert voor binnenkomende aanvragen. Stel deze waarde in op het poortnummer dat door uw container wordt gebruikt. Uw eindpunt voor inkomend verkeer van uw toepassing wordt altijd weergegeven op poort 443. Ja
--exposed-port blootgestelde poort (Alleen TCP-inkomend verkeer) Een poort voor TCP-inkomend verkeer. Als externaltrue is, moet de waarde uniek zijn in de Container Apps-omgeving als ingress extern is. Een poortnummer van 1 naar 65535. (kan niet 80 of 443 zijn) Nee
--transport vervoer Het type transportprotocol. automatisch (standaard) detecteert HTTP/1 of HTTP/2, http voor HTTP/1, http2 voor HTTP/2, tcp voor TCP. Nee

Notitie

In een interne omgeving --type external stelt het je app niet bloot aan het publieke internet, omdat de omgeving geen openbaar eindpunt heeft. Het maakt de app bereikbaar vanuit je virtuele netwerk via de interne load balancer van de omgeving. Het gebruik --type internal beperkt de app tot andere container-apps in dezelfde omgeving, en clients elders in je virtuele netwerk ontvangen een HTTP 404-antwoord. Voor meer informatie, zie Hoe ingress-zichtbaarheid interacteert met het type omgeving.

Schakel ingress in voor uw container-app via de Azure-portal.

U kunt inkomend verkeer inschakelen wanneer u uw container-app maakt of u kunt inkomend verkeer inschakelen voor een bestaande container-app.

  • Als u inkomend verkeer wilt configureren wanneer u uw container-app maakt, selecteert u Inkomend verkeer op het tabblad App Configuration van de wizard voor het maken van de container-app.
  • Als u inkomend verkeer voor een bestaande container-app wilt configureren, selecteert u Inkomend in het menu Instellingen van de resourcepagina van de container-app.

Ingress inschakelen voor uw container-toepassing

U kunt inkomend verkeer configureren bij het maken van uw container-app via de Azure-portal.

  1. Stel Ingress in op Ingeschakeld.

  2. Configureer de instellingen voor inkomend verkeer voor uw container-app.

  3. Selecteer Beperkt tot Container Apps Environment voor intern inkomend verkeer of verkeer vanaf elke locatie accepteren voor extern inkomend verkeer.

    In een interne omgeving betekent het accepteren van verkeer van overal niet dat je app wordt blootgesteld aan het openbare internet. Het maakt de app bereikbaar vanuit je virtuele netwerk via de interne load balancer van de omgeving. Voor meer informatie, zie Hoe ingress-zichtbaarheid interacteert met het type omgeving.

  4. Selecteer het ingresstype: HTTP of TCP (TCP-toegangsbeheer is alleen beschikbaar in omgevingen die zijn geconfigureerd met een virtueel netwerk).

  5. Als HTTP is geselecteerd voor het Ingangstype, selecteert u het transport: Auto, HTTP/1 of HTTP/2.

  6. Selecteer Onveilige verbindingen als u HTTP-verbindingen met uw app wilt toestaan.

  7. Voer de doelpoort voor uw container-app in.

  8. Als u TCP hebt geselecteerd voor de optie Transport, voert u de blootgestelde poort voor uw container-app in. Het vrijgegeven poortnummer kan van 1 tot 65535 zijn. (kan niet 80 of 443 zijn)

Op de pagina Instellingen voor inkomend verkeer voor uw container-app kunt u ook IP-beperkingen configureren. Zie IP-beperkingen voor informatie over het configureren van IP-beperkingen.

Schakel inkomend verkeer in voor uw container-app met behulp van de ingress configuratie-eigenschap. Stel de external eigenschap in op trueen stel uw transport en targetPort eigenschappen in.

  • Stel de external eigenschap in op true voor extern inkomend verkeer of onwaar voor intern inkomend verkeer.
  • Stel de transport optie in om auto HTTP/1 of HTTP/2 te detecteren, http voor HTTP/1, http2 voor HTTP/2 of tcp voor TCP.
  • Stel het targetPort poortnummer in dat door uw container wordt gebruikt. Uw eindpunt voor inkomend verkeer van uw toepassing wordt altijd weergegeven op poort 443.
  • Stel de exposedPort-eigenschap in op een poort als het transporttype tcp is, voor TCP-ingang. De waarde moet uniek zijn in de Container Apps-omgeving als inkomend verkeer extern is. Een poortnummer van 1 naar 65535. (kan niet 80 of 443 zijn)
{
  ...
  "configuration": {
    "ingress": {
        "external": true,
        "transport": "tcp",
        "targetPort": 80,
        "exposedPort": 8080,
    },
  }
}

Ingress uitschakelen

Schakel inkomend verkeer voor uw container-app uit met behulp van de az containerapp ingress opdracht.

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

U kunt inkomend verkeer voor uw container-app uitschakelen met behulp van de portal.

  1. Selecteer Inkomend verkeer in het menu Instellingen van de pagina container-app.
  2. Schakel de instelling IngressEnabled uit.
  3. Selecteer Opslaan.

Schermopname van het uitschakelen van inkomend verkeer van container-apps.

Schakel inkomende toegang voor uw container-app uit door de configuratie-eigenschap ingress volledig weg te laten uit properties.configuration.

Andere TCP-poorten gebruiken

U kunt extra TCP-poorten beschikbaar maken vanuit uw toepassing. Zie voor meer informatie het ingress conceptartikel.

Notitie

Als u deze functie wilt gebruiken, hebt u de CLI-extensie voor container-apps nodig. Voer deze opdracht uit az extension add -n containerapp om de nieuwste versie van de CLI-extensie voor container-apps te installeren.

U kunt extra TCP-poorten toevoegen via de CLI door te verwijzen naar een YAML-bestand met uw TCP-poortconfiguraties.

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

In het volgende voorbeeld ziet u een YAML-bestand waarnaar u kunt verwijzen in de voorgaande CLI-opdracht. De configuratie voor de extra TCP-poorten is onder 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

Schermopname van het toevoegen van extra TCP-poorten voor inkomend verkeer van Container Apps via de portal.

  1. Vouw de sectie Aanvullende TCP-poorten uit in de blade Ingress.
  2. Voeg extra TCP-poorten toe waaraan uw toepassing verkeer accepteert in het veld Doelpoort . Als u de weergegeven poort leeg laat, wordt dezelfde waarde gebruikt als de doelpoort.
  3. Wijzig indien nodig het veld Inkomend verkeer . Dit veld configureert de beperkingen voor inkomend verkeer bij elke poort.
  4. Klik op Opslaan als u klaar bent.

De volgende ARM-sjabloon bevat een voorbeeld van hoe u extra poorten kunt toevoegen aan uw container-apps. Voeg elke extra poort toe onder additionalPortMappings binnen de ingress-sectie van configuration binnen properties voor de container-app. In het volgende voorbeeld ziet u hoe u extra poorten toevoegt:

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

Volgende stappen