Konfigurieren des eingehenden Datenverkehrs für Ihre App in Azure Container Apps

In diesem Artikel erfahren Sie, wie Sie Eingangs-Funktionen für Ihre Container-App aktivieren. Die Einstellung zum eingehenden Datenverkehr bezieht sich auf die gesamte Anwendung. Veränderungen, die an den Einstellungen zum eingehenden Datenverkehr vorgenommen werden, werden gleichzeitig auf alle Überarbeitungen angewendet und generieren keine neuen Überarbeitungen.

Eingangseinstellungen

Sie können die folgenden Eingangsvorlageneigenschaften festlegen:

Eigenschaft BESCHREIBUNG Werte Erforderlich
allowInsecure Erlaubt unsicheren Datenverkehr zu Ihrer Container-App Bei Festlegung auf true werden HTTP-Anforderungen an Port 80 nicht automatisch mithilfe von HTTPS an Port 443 umgeleitet, wodurch unsichere Verbindungen ermöglicht werden. false (Standard), true aktiviert unsichere Verbindungen Nein
clientCertificateMode Clientzertifikatmodus für die MTLS-Authentifizierung. „Ignorieren“ gibt an, dass das Server-Clientzertifikat bei der Weiterleitung abbricht. „Akzeptieren“ gibt an, dass das Clientzertifikat vom Server weitergeleitet wird, aber kein Clientzertifikat erforderlich ist. „Erforderlich“ gibt an, dass für den Server ein Clientzertifikat erforderlich ist. Required, Accept, Ignore (Standard) Nein
customDomains Benutzerdefinierte Domänenbindungen für Container-Apps-Hostnamen. Siehe Benutzerdefinierte Domänen und Zertifikate Ein Array von Bindungen Nein
exposedPort (Nur TCP-Eingangsschritt) Der Port TCP lauscht an. Wenn external gleich true ist, muss der Wert in der Container Apps-Umgebung eindeutig sein. Eine Portnummer von 1 bis 65535. (kann nicht 80 oder 443 sein) Nein
external Erlauben Sie den Zugriff auf Ihre Anwendung von außerhalb ihrer Container-Apps-Umgebung. true oder false (Standard) Ja
ipSecurityRestrictions IP-Eingangsbeschränkungen. Siehe Einrichten von IP-Eingangsbeschränkungen Ein Array von Regeln Nein
stickySessions.affinity Aktiviert die Sitzungsaffinität. none (Standard), sticky Nein
targetPort Der Port, dem Ihr Container für eingehende Anforderungen lauscht Geben Sie für diesen Wert die Portnummer ein, die Ihr Container verwendet. Für den HTTP-Eingang wird Ihr Anwendungseingangsendpunkt immer auf Port 443 dargelegt. Ja
traffic Datenverkehrstrennungs-Gewichtungen werden zwischen Revisionen aufgeteilt. Ein Array von Regeln Nein
transport Der Transportprotokolltyp. Auto (Standard) erkennt HTTP/1 oder HTTP/2 http für HTTP/1 für http2 HTTP/2 tcp für TCP. Nein

Aktivieren des eingehenden Datenverkehrs

Sie können den Eingang für Ihre Container-App mithilfe der Azure CLI, einer ARM-Vorlage oder über das Azure-Portal konfigurieren.

Mit diesem az containerapp ingress enable-Befehl wird der Eingang für Ihre Container-App aktiviert. Sie müssen den Zielanschluss angeben und können optional den exponierten Port festlegen, wenn Ihr Transporttyp tcp ist.

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-Eingangsargumente:

Option Eigenschaft BESCHREIBUNG Werte Erforderlich
--type external Ermöglichen Sie den Zugriff auf Ihre Anwendung von überall aus, oder beschränken Sie den Zugriff auf die interne Container-Apps-Umgebung. external oder internal Ja
--allow-insecure allowInsecure Zulassen von HTTP-Verbindungen mit Ihrer Anwendung. Nein
--target-port targetPort Der Port, dem Ihr Container für eingehende Anforderungen lauscht Geben Sie für diesen Wert die Portnummer ein, die Ihr Container verwendet. Der Eingangsendpunkt Ihrer Anwendung ist im Port 443 immer verfügbar. Ja
--exposed-port exposedPort (Nur TCP-Eingang) Ein Port für TCP-Eingang. Wenn external gleich true ist, muss der Wert in der Container-Apps-Umgebung eindeutig sein, wenn der Eingang extern ist. Eine Portnummer von 1 bis 65535. (kann nicht 80 oder 443 sein) Nein
--transport transport Der Transportprotokolltyp. Auto (Standard) erkennt HTTP/1 oder HTTP/2 http für HTTP/1 für http2 HTTP/2 tcp für TCP. Nein

Aktivieren Sie den Eingang für Ihre Container-App mithilfe des Portals.

Sie können den Eingang aktivieren, wenn Sie Ihre Container App erstellen, oder Sie können den Eingang für eine bestehende Container App aktivieren.

  • Wählen Sie zum Konfigurieren des Eingangs beim Erstellen der Container-App die Option Eingang auf der Registerkarte App-Konfiguration des Assistenten zum Erstellen von Container-Apps aus.
  • Um den Eingang für eine vorhandene Container-App zu konfigurieren, wählen Sie Eingang im Menü Einstellungen der Ressourcenseite der Container-App aus.

Aktivieren des Eingangs für Ihre Container-App:

Sie können den Eingang konfigurieren, wenn Sie Ihre Container-App mithilfe des Azure-Portals erstellen.

  1. Legen Sie Eingang auf Aktiviert fest.
  2. Konfigurieren Sie die Eingangseinstellungen für Ihre Container-App.
  3. Wählen Sie Beschränkt auf Container-Apps-Umgebung für den internen Eingang aus oder Akzeptieren von Datenverkehr von überall aus für den externen Eingang.
  4. Wählen Sie den Eingangstypaus: HTTP oder TCP (TCP-Eingangstyp ist nur in Umgebungen verfügbar, die mit einem benutzerdefinierten virtuellen Netzwerk konfiguriert sind).
  5. Wenn HTTP für den Eingangstyp ausgewählt ist, wählen Sie den Transportaus: Auto, HTTP/1 oder HTTP/2.
  6. Wählen Sie Unsichere Verbindungen aus, wenn Sie HTTP-Verbindungen mit Ihrer Anwendung zulassen möchten.
  7. Geben Sie den Zielanschluss für Ihre Container-App ein.
  8. Wenn Sie TCP für die Transport-Option ausgewählt haben, geben Sie den Exponierten Port für Ihre Container-App ein. Die verfügbar gemachte Portnummer kann 1 oder 65535 sein. (kann nicht 80 oder 443 sein)

Auf der Einstellungsseite Eingang für Ihre Container-App können Sie auch IP-Einschränkungen konfigurieren. Informationen zum Konfigurieren der IP-Einschränkung finden Sie unter IP-Einschränkungen.

Aktivieren Sie den Eingang für Ihre Container-App mithilfe der ingress-Konfigurationseigenschaft. Legen Sie die external-Eigenschaft auf true fest und legen Sie Ihre transport und targetPort-Eigenschaften fest. -external-Eigenschaft kann für den internen Eingangstyp auf true oder false für den internen Eingang festgelegt werden.

  • Legen Sie transport auf auto fest, um HTTP/1 oder HTTP/2, http für HTTP/1, http2 für HTTP/2, oder tcp für TCP zu erkennen.
  • Legen Sie die targetPort für die Portnummer fest, die Ihr Container verwendet. Der Eingangsendpunkt Ihrer Anwendung ist im Port 443 immer verfügbar.
  • Legen Sie die exposedPort-Eigenschaft fest, wenn der Transporttyp auf einen Port für TCP-Eingangstyp auf tcp festgelegt ist. Der Wert muss in der Container-Apps-Umgebung eindeutig sein, wenn der Eingang extern ist. Eine Portnummer von 1 bis 65535. (kann nicht 80 oder 443 sein)
{
  ...
  "configuration": {
    "ingress": {
        "external": true,
        "transport": "tcp",
        "targetPort": 80,
        "exposedPort": 8080,
    },
  }
}

Eingang deaktivieren

Deaktivieren Sie den Eingang für Ihre Container-App mithilfe des az containerapp ingress-Befehls.

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

Sie können den Eingang für Ihre Container-App über das Portal deaktivieren.

  1. Wählen Sie Eingang im Menü Einstellungen der Container-App-Seite aus.
  2. Heben Sie die Auswahl der Einstellung Eingang Aktiviert auf.
  3. Wählen Sie Speichern.

Screenshot: Deaktivieren des Container-App-Eingangs.

Deaktivieren Sie den Eingang für Ihre Container-App, indem Sie die ingress-Konfigurationseigenschaft vollständig von properties.configuration weglassen.

Verwenden anderer TCP-Ports

Sie können zusätzliche TCP-Ports aus Ihrer Anwendung verfügbar machen. Weitere Informationen finden Sie im Artikel zum Eingangskonzept.

Hinweis

Um diese Funktion verwenden zu können, müssen Sie über die CLI-Erweiterung für Container-Apps verfügen. Führen Sie az extension add -n containerapp aus, um die neueste Version der Cli-Erweiterung für Container-Apps zu installieren.

Das Hinzufügen anderer TCP-Ports kann über die CLI erfolgen, indem auf eine YAML-Datei mit Ihren TCP-Portkonfigurationen verwiesen wird.

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

Im Folgenden finden Sie ein Beispiel für eine YAML-Datei, auf die Sie im obigen CLI-Befehl verweisen können. Die Konfiguration für die zusätzlichen TCP-Ports befindet sich unter 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

Screenshot des Hinzufügens zusätzlicher TCP-Ports für den Eingang von Container Apps über das Portal

  1. Erweitern Sie den Abschnitt Zusätzliche TCP-Ports auf dem Blatt „Eingang“.
  2. Fügen Sie im Feld Zielport zusätzliche TCP-Ports hinzu, von denen Ihre Anwendung Datenverkehr akzeptiert. Wenn Verfügbar gemachter Port leer bleibt, wird der Wert verwendet, der als Zielport festgelegt ist.
  3. Ändern Sie das Feld Eingehender Datenverkehr nach Bedarf. Damit konfigurieren Sie für jeden Port, wo eingehender Datenverkehr beschränkt wird.
  4. Klicken Sie abschließend auf Speichern.

Die folgende ARM-Vorlage enthält ein Beispiel dafür, wie Sie Ihren Container-Apps zusätzliche Ports hinzufügen können. Jeder zusätzliche Port sollte hinzugefügt werden unter additionalPortMappings innerhalb des ingress-Abschnitts für configuration innerhalb von properties für die Container-App. Es folgt ein Beispiel:

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

Nächste Schritte