Udostępnij przez


Używanie domeny niestandardowej z routingiem opartym na regułach w usłudze Azure Container Apps

Konfiguracje tras HTTP obsługują domeny niestandardowe, umożliwiając kierowanie ruchu z własnych nazw domen do aplikacji kontenera.

Wymagania wstępne

  • Istniejące środowisko usługi Azure Container Apps
  • Domena niestandardowa, której jesteś właścicielem
  • Certyfikat SSL dla domeny (chyba że używasz certyfikatów automatycznych)
  • Aplikacje kontenerowe wdrożone w twoim środowisku

Konfiguracja domeny niestandardowej

Korzystając z dostawcy DNS hostowania domeny, utwórz odpowiednie rekordy DNS dla domeny niestandardowej.

  • Jeśli używasz domeny głównej (na przykład contoso.com), utwórz następujące rekordy DNS:

    Typ rekordu Gospodarz Wartość
    A @ Adres IP środowiska usługi Container Apps.
    plik TXT asuid Kod weryfikacyjny domeny.
  • Jeśli używasz poddomeny (na przykład www.contoso.com), utwórz następujące rekordy DNS:

    Typ rekordu Gospodarz Wartość
    A Poddomena (na przykład www) Adres IP środowiska usługi Container Apps.
    plik TXT asuid.{subdomain} (na przykład asuid.www) Kod weryfikacyjny domeny.

Uwaga / Notatka

Adres IP środowiska usługi Container Apps i kod weryfikacyjny domeny można znaleźć w ustawieniach sufiksu niestandardowego DNS środowiska usługi Container Apps.

Nie należy powiązać domeny niestandardowej ze środowiskiem usługi Container Apps ani z aplikacją kontenera. Domeny są powiązane tylko z jedną aplikacją, trasą lub środowiskiem.

Konfiguracja trasy

Zaktualizuj plik YAML usługi Container Apps, aby uwzględnić sekcję customDomains . Uwzględnij elementy bindingType i certificateId, na podstawie następujących kryteriów:

wartość bindingType Opis
Niepełnosprawny Nie podano certyfikatu. Domena jest dostępna tylko za pośrednictwem protokołu HTTP, a protokół HTTPS jest niedostępny.
Samochód Certyfikat jest opcjonalny. Jeśli dla tej domeny został już utworzony zarządzany certyfikat, zostanie on automatycznie dodany do trasy. W przeciwnym razie domena jest początkowo dostępna tylko za pośrednictwem protokołu HTTP. Aby utworzyć certyfikat zarządzany dla tej domeny, utwórz nowy certyfikat zarządzany po utworzeniu trasy. Po utworzeniu certyfikatu zostanie on automatycznie dodany do trasy.
SniEnabled Wymagany jest certyfikat.
Typ certyfikatu format certyfikatuId
Żaden Pozostaw puste.
Zarządzane /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{ContainerAppEnvironmentName}/managedCertificates/{CertificateFriendlyName}
Niezarządzany /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{ContainerAppEnvironmentName}/certificates/{CertificateFriendlyName}

Uwaga / Notatka

Aby dodać certyfikat do środowiska, użyj jednej z następujących metod:

Nie powiąż certyfikatu z aplikacją kontenera.

W poniższym przykładzie pokazano, jak skonfigurować konfigurację trasy.

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>"

Ta konfiguracja definiuje dwie reguły routingu dla ruchu HTTP.

Majątek Opis
customDomains.name Nazwa domeny, której chcesz użyć (na przykład: "app.contoso.com")
customDomains.certificateId Identyfikator zasobu certyfikatu (nie jest wymagany w programie bindingType: "Auto")
customDomains.bindingType Sposób obsługi protokołu SSL: "SniEnabled" (wskazanie nazwy serwera), "Wyłączone" (tylko HTTP) lub "Auto" (automatyczny certyfikat)
description Czytelna dla człowieka etykieta reguły
routes.match.prefix Prefiks ścieżki adresu URL zgodny. Na przykład /api.
routes.action.prefixRewrite Co zastąpić dopasowany prefiks przed przekazaniem dalej.
targets.containerApp Nazwa aplikacji kontenerowej, do której wysyłane są pasujące żądania dotyczace tras.

Te reguły umożliwiają kierowanie różnych ścieżek na twojej domenie niestandardowej do różnych aplikacji kontenerów, jednocześnie modyfikując ścieżkę żądania przed dotarciem do aplikacji docelowej.

Inne właściwości, które nie są wymienione, które mogą mieć wpływ na trasy, obejmują następujące.

Majątek Opis
route.match.path Dokładna definicja ścieżki dopasowania.
route.match.pathSeparatedPrefix Dopasuje trasy w granicach "/", a nie do żadnego tekstu. Na przykład, jeśli ustawisz wartość na /product, to będzie ona zgodna z wartością /product/1, ale nie z /product1.
route.match.caseSensitive Określa, czy wzorce tras są zgodne z poufnością wielkości liter.
target.label Kierowanie do konkretnej poprawki oznaczonej etykietą wewnątrz aplikacji kontenera.
target.revision Przejście do określonej wersji w aplikacji kontenerowej.

Praca nad swoją konfiguracją trasy

Użyj następujących poleceń, aby zarządzać konfiguracją trasy.

Przed uruchomieniem następujących poleceń pamiętaj, aby zastąpić symbole zastępcze otoczone <> własnymi wartościami.

Tworzenie nowej konfiguracji trasy

Użyj az containerapp env http-route-config create polecenia, aby utworzyć nową konfigurację trasy.

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>

Lista konfiguracji tras

Użyj az containerapp env http-route-config list polecenia , aby wyświetlić listę wszystkich zdefiniowanych konfiguracji tras.

az containerapp env http-route-config list \
    --resource-group <RESOURCE_GROUP_NAME> \
    --name <ENVIRONMENT_NAME>

Aktualizowanie konfiguracji trasy

Użyj az containerapp env http-route-config update polecenia , aby zaktualizować istniejącą konfigurację trasy.

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>

Pokaż określoną konfigurację trasy

Służy az containerapp env http-route-config show do wyświetlania szczegółów konfiguracji trasy.

az containerapp env http-route-config show \
    --resource-group <RESOURCE_GROUP_NAME> \
    --name <ENVIRONMENT_NAME> \
    --http-route-config-name <CONFIGURATION_NAME>

Usuwanie konfiguracji trasy

Użyj polecenia az containerapp env http-route-config delete , aby usunąć konfigurację trasy.

az containerapp env http-route-config delete \
    --resource-group <RESOURCE_GROUP_NAME> \
    --name <ENVIRONMENT_NAME> \
    --http-route-config-name <CONFIGURATION_NAME>

Weryfikowanie routingu HTTP

Po skonfigurowaniu domeny niestandardowej przy użyciu routingu opartego na regułach:

  1. Otwórz swoją domenę niestandardową w przeglądarce. Na przykład https://app.contoso.com/1.

  2. Sprawdź, czy żądanie jest kierowane do pierwszej aplikacji kontenera.

  3. Zmień ścieżkę na /2. Na przykład https://app.contoso.com/2.

  4. Sprawdź, czy żądanie jest teraz kierowane do drugiej aplikacji kontenera.

Wskazówka

Masz problemy? Daj nam znać na GitHubie, otwierając zgłoszenie w repozytorium Azure Container Apps.