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.
- Legen Sie Eingang auf Aktiviert fest.
- Konfigurieren Sie die Eingangseinstellungen für Ihre Container-App.
- 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.
- Wählen Sie den Eingangstypaus: HTTP oder TCP (TCP-Eingangstyp ist nur in Umgebungen verfügbar, die mit einem benutzerdefinierten virtuellen Netzwerk konfiguriert sind).
- Wenn HTTP für den Eingangstyp ausgewählt ist, wählen Sie den Transportaus: Auto, HTTP/1 oder HTTP/2.
- Wählen Sie Unsichere Verbindungen aus, wenn Sie HTTP-Verbindungen mit Ihrer Anwendung zulassen möchten.
- Geben Sie den Zielanschluss für Ihre Container-App ein.
- 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
oder65535
sein. (kann nicht80
oder443
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
aufauto
fest, um HTTP/1 oder HTTP/2,http
für HTTP/1,http2
für HTTP/2, odertcp
für TCP zu erkennen. - Legen Sie die
targetPort
für die Portnummer fest, die Ihr Container verwendet. Der Eingangsendpunkt Ihrer Anwendung ist im Port443
immer verfügbar. - Legen Sie die
exposedPort
-Eigenschaft fest, wenn der Transporttyp auf einen Port für TCP-Eingangstyp auftcp
festgelegt ist. Der Wert muss in der Container-Apps-Umgebung eindeutig sein, wenn der Eingang extern ist. Eine Portnummer von1
bis65535
. (kann nicht80
oder443
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.
- Wählen Sie Eingang im Menü Einstellungen der Container-App-Seite aus.
- Heben Sie die Auswahl der Einstellung Eingang Aktiviert auf.
- Wählen Sie Speichern.
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
- Erweitern Sie den Abschnitt Zusätzliche TCP-Ports auf dem Blatt „Eingang“.
- 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.
- Ändern Sie das Feld Eingehender Datenverkehr nach Bedarf. Damit konfigurieren Sie für jeden Port, wo eingehender Datenverkehr beschränkt wird.
- 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
}
]
}
}
...
}