Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
HTTP-Routenkonfigurationen unterstützen benutzerdefinierte Domänen, sodass Sie Datenverkehr von Ihren eigenen Domänennamen an Ihre Container-Apps weiterleiten können.
Voraussetzungen
- Eine vorhandene Azure-Container-Apps-Umgebung
- Eine benutzerdefinierte Domäne, die Sie besitzen
- SSL-Zertifikat für Ihre Domäne (es sei denn, es wird automatische Zertifikate verwendet)
- In Ihrer Umgebung bereitgestellte Container-Apps
Konfiguration benutzerdefinierter Domänen
Erstellen Sie mithilfe des DNS-Anbieters, der Ihre Domäne hostt, die entsprechenden DNS-Einträge für Ihre benutzerdefinierte Domäne.
Wenn Sie die Stammdomäne verwenden (z
contoso.com. B. ), erstellen Sie die folgenden DNS-Einträge:Eintragstyp Gastgeber Wert A @IP-Adresse Ihrer Container Apps-Umgebung TXT asuidDomänenprüfcode Wenn Sie eine Unterdomäne (z. B.
www.contoso.com) verwenden, erstellen Sie die folgenden DNS-Einträge:Eintragstyp Gastgeber Wert A Unterdomäne (z. B. www)IP-Adresse Ihrer Container Apps-Umgebung TXT asuid.{subdomain}(z. B.asuid.www)Domänenprüfcode
Hinweis
Die IP-Adresse Ihrer Container-Apps-Umgebung und des Domänenüberprüfungscodes finden Sie in den Benutzerdefinierten DNS-Suffixeinstellungen Ihrer Container-Apps-Umgebung.
Binden Sie die benutzerdefinierte Domäne nicht an Ihre Container-Apps-Umgebung oder an eine Container-App. Domänen sind nur an eine App, Route oder Umgebung gebunden.
Routenkonfiguration
Aktualisieren Sie Ihre YaML-Datei für Container-Apps so, dass sie einen customDomains Abschnitt enthält. Schließen Sie ein bindingType und certificateId auf der Grundlage der folgenden Kriterien ein.
| bindingType-Wert | BESCHREIBUNG |
|---|---|
| Arbeitsunfähig | Es wird kein Zertifikat bereitgestellt. Die Domäne ist nur über HTTP verfügbar, und HTTPS ist nicht verfügbar. |
| Auto | Ein Zertifikat ist optional. Wenn bereits ein verwaltetes Zertifikat für diese Domäne erstellt wurde, wird es automatisch zur Route hinzugefügt. Andernfalls ist die Domäne zunächst nur über HTTP verfügbar. Um ein verwaltetes Zertifikat für diese Domäne zu erstellen, erstellen Sie nach dem Erstellen der Route ein neues verwaltetes Zertifikat. Nachdem das Zertifikat erstellt wurde, wird es automatisch zur Route hinzugefügt. |
| SniEnabled | Ein Zertifikat ist erforderlich. |
| Art der Bescheinigung | Zertifikats-ID-Format |
|---|---|
| Nichts | Leer lassen |
| Verwaltet | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{ContainerAppEnvironmentName}/managedCertificates/{CertificateFriendlyName} |
| Nicht verwaltet | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{ContainerAppEnvironmentName}/certificates/{CertificateFriendlyName} |
Hinweis
Verwenden Sie eine der folgenden Methoden, um Ihrer Umgebung ein Zertifikat hinzuzufügen:
- Verwenden Sie den CLI-Befehl "az containerapp env certificate create", um ein verwaltetes Zertifikat für Container-Apps hinzuzufügen.
- Um Ihr eigenes vorhandenes Zertifikat mitzubringen, verwenden Sie den Befehl "az containerapp env certificate upload CLI".
Binden Sie das Zertifikat nicht an eine Container-App.
Im folgenden Beispiel wird veranschaulicht, wie die Routenkonfiguration eingerichtet wird.
customDomains:
- name: "<CUSTOM_DOMAIN_ENDPOINT>"
certificateId: "<CERTIFICATE_ID>"
bindingType: "SniEnabled" # Can also be "Disabled", "Auto"
rules:
- description: "Routing to App1"
routes:
- match:
prefix: "/1"
action:
prefixRewrite: "/"
targets:
- containerApp: "<APP1_CONTAINER_APP_NAME>"
- description: "Routing to App2"
routes:
- match:
prefix: "/2"
action:
prefixRewrite: "/"
- match:
prefix: "/"
targets:
- containerApp: "<APP2_CONTAINER_APP_NAME>"
Diese Konfiguration definiert zwei Routingregeln für HTTP-Datenverkehr.
| Eigentum | BESCHREIBUNG |
|---|---|
customDomains.name |
Der Domänenname, den Sie verwenden möchten (Beispiel: "app.contoso.com") |
customDomains.certificateId |
Ressourcen-ID Ihres Zertifikats (nicht erforderlich mit bindingType: "Auto") |
customDomains.bindingType |
Wie SSL behandelt wird: "SniEnabled" (Server Name Indication), "Disabled" (nur HTTP) oder "Auto" (automatisches Zertifikat) |
description |
Lesbare Bezeichnung für die Regel |
routes.match.prefix |
URL-Pfadpräfix, das übereinstimmen soll. Beispiel: /api. |
routes.action.prefixRewrite |
Wodurch das übereinstimmende Präfix vor der Weiterleitung ersetzt werden soll. |
targets.containerApp |
Der Name der Container-App, in der übereinstimmende Routenanforderungen gesendet werden. |
Diese Regeln ermöglichen es verschiedenen Pfaden in Ihrer benutzerdefinierten Domäne, an verschiedene Container-Apps weiterzuleiten und gleichzeitig den Anforderungspfad zu ändern, bevor sie die Ziel-App erreicht.
Andere nicht aufgeführte Eigenschaften, die sich auf Ihre Routen auswirken können, umfassen Folgendes.
| Eigentum | BESCHREIBUNG |
|---|---|
route.match.path |
Genaue Übereinstimmungspfaddefinition. |
route.match.pathSeparatedPrefix |
Entspricht Routen an „/“-Begrenzungen anstelle von Text. Wenn Sie z. B. den Wert auf /product" festlegen, wird er mit /product/1, aber nicht /product1übereinstimmen. |
route.match.caseSensitive |
Steuert, ob Routenmuster mit Berücksichtigung der Groß- und Kleinschreibung übereinstimmen. |
target.label |
Leiten Sie an eine bestimmte beschriftete Revision in einer Containeranwendung weiter. |
target.revision |
Leiten Sie an eine bestimmte Revision in einer Containeranwendung weiter. |
Arbeiten mit Ihrer Routenkonfiguration
Verwenden Sie die folgenden Befehle, um Ihre Routenkonfiguration zu verwalten.
Bevor Sie die folgenden Befehle ausführen, stellen Sie sicher, dass Sie Platzhalter, die von <> umgeben sind, durch Ihre eigenen Werte ersetzen.
Erstellen einer neuen Routenkonfiguration
Verwenden Sie az containerapp env http-route-config create, um eine neue Routenkonfiguration zu erstellen.
az containerapp env http-route-config create \
--resource-group <RESOURCE_GROUP_NAME> \
--name <ENVIRONMENT_NAME> \
--http-route-config-name <CONFIGURATION_NAME> \
--yaml <CONTAINER_APPS_CONFIG_FILE>
Routenkonfigurationen auflisten
Verwenden Sie az containerapp env http-route-config list, um alle definierten Routenkonfigurationen aufzulisten.
az containerapp env http-route-config list \
--resource-group <RESOURCE_GROUP_NAME> \
--name <ENVIRONMENT_NAME>
Aktualisieren einer Routenkonfiguration
Nutzen Sie az containerapp env http-route-config update, um eine vorhandene Routenkonfiguration zu aktualisieren.
az containerapp env http-route-config update \
--resource-group <RESOURCE_GROUP_NAME> \
--name <ENVIRONMENT_NAME> \
--http-route-config-name <CONFIGURATION_NAME> \
--yaml <CONTAINER_APPS_CONFIG_FILE>
Anzeigen einer bestimmten Routenkonfiguration
Verwenden Sie az containerapp env http-route-config show, um Details einer Routenkonfiguration anzuzeigen.
az containerapp env http-route-config show \
--resource-group <RESOURCE_GROUP_NAME> \
--name <ENVIRONMENT_NAME> \
--http-route-config-name <CONFIGURATION_NAME>
Löschen einer Routenkonfiguration
Verwenden Sie az containerapp env http-route-config delete, um eine Routenkonfiguration zu entfernen.
az containerapp env http-route-config delete \
--resource-group <RESOURCE_GROUP_NAME> \
--name <ENVIRONMENT_NAME> \
--http-route-config-name <CONFIGURATION_NAME>
Überprüfen des HTTP-Routings
Nach der Konfiguration Ihrer benutzerdefinierten Domäne mit regelbasiertem Routing:
Navigieren Sie in einem Browser zu Ihrer benutzerdefinierten Domäne. Beispiel:
https://app.contoso.com/1.Stellen Sie sicher, dass die Anforderung an die erste Container-App weitergeleitet wird.
Ändern Sie den Pfad in
/2. Beispiel:https://app.contoso.com/2.Stellen Sie sicher, dass die Anforderung jetzt an die zweite Container-App weitergeleitet wird.
Verwandte Inhalte
- Regelbasiertes Routing in Azure-Container-Apps
- Benutzerdefinierte Domänennamen und kostenlose verwaltete Zertifikate
- Azure CLI-Referenz für die HTTP-Routenkonfiguration
Tipp
Treten Probleme auf? Teilen Sie uns auf GitHub mit, indem Sie ein Problem im Azure Container Apps-Repository öffnen.