Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Z tego artykułu dowiesz się, jak używać routingu opartego na regułach w usłudze Azure Container Apps. W przypadku routingu opartego na regułach należy utworzyć w pełni kwalifikowaną nazwę domeny (FQDN) w środowisku aplikacji kontenera. Następnie użyjesz reguł, aby kierować żądania dla tego FQDN do różnych aplikacji kontenerowych, w zależności od ścieżki każdego żądania.
Wymagania wstępne
Konto platformy Azure z aktywną subskrypcją.
- Jeśli nie masz konta, możesz je utworzyć teraz za darmo.
Zainstaluj interfejs wiersza polecenia platformy Azure.
Konfiguracja
Uruchom następujące polecenie, aby zalogować się do platformy Azure z poziomu interfejsu wiersza polecenia.
az loginAby upewnić się, że używasz najnowszej wersji interfejsu wiersza polecenia, uruchom polecenie uaktualniania.
az upgradeIgnoruj wszelkie ostrzeżenia dotyczące aktualnie używanych modułów.
Teraz, gdy bieżące rozszerzenie lub moduł jest zainstalowane, zarejestruj przestrzenie nazw
Microsoft.ApporazMicrosoft.OperationalInsights.az provider register --namespace Microsoft.Appaz provider register --namespace Microsoft.OperationalInsights
Tworzenie zmiennych środowiskowych
Utwórz następujące zmienne środowiskowe.
CONTAINER_APP_1_NAME="my-container-app-1"
CONTAINER_APP_1_IMAGE="mcr.microsoft.com/k8se/quickstart:latest"
CONTAINER_APP_1_TARGET_PORT="80"
CONTAINER_APP_2_NAME="my-container-app-2"
CONTAINER_APP_2_IMAGE="mcr.microsoft.com/dotnet/samples:aspnetapp"
CONTAINER_APP_2_TARGET_PORT="8080"
LOCATION="eastus"
RESOURCE_GROUP="my-container-apps"
ENVIRONMENT_NAME="my-container-apps-env"
ROUTE_CONFIG_NAME="my-route-config"
Tworzenie aplikacji kontenera
Uruchom następujące polecenie, aby utworzyć pierwszą aplikację kontenera. Ta aplikacja kontenera używa obrazu szybkiego startu usługi Container Apps.
az containerapp up \ --name $CONTAINER_APP_1_NAME \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --environment $ENVIRONMENT_NAME \ --image $CONTAINER_APP_1_IMAGE \ --target-port $CONTAINER_APP_1_TARGET_PORT \ --ingress external \ --query properties.configuration.ingress.fqdnUruchom następujące polecenie, aby utworzyć drugą aplikację kontenera. Ta aplikacja kontenera używa obrazu szybkiego startu ASP.NET.
az containerapp up \ --name $CONTAINER_APP_2_NAME \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --environment $ENVIRONMENT_NAME \ --image $CONTAINER_APP_2_IMAGE \ --target-port $CONTAINER_APP_2_TARGET_PORT \ --ingress external \ --query properties.configuration.ingress.fqdnUtwórz konfigurację trasy HTTP.
Utwórz następujący plik i zapisz go jako
routing.yml.rules: - description: App 1 rule routes: - match: prefix: /app1 action: prefixRewrite: / targets: - containerApp: my-container-app-1 - description: App 2 rule routes: - match: path: /app2 action: prefixRewrite: / - match: path: / targets: - containerApp: my-container-app-2Ta konfiguracja definiuje dwie reguły routingu dla ruchu HTTP.
Majątek Opis descriptionCzytelna dla człowieka etykieta reguły routes.match.prefixPrefiks ścieżki adresu URL zgodny. Na przykład /api.routes.action.prefixRewriteCo zastąpić dopasowany prefiks przed przekazaniem dalej. targets.containerAppNazwa aplikacji kontenerowej, do której wysyłane są pasujące żądania dotyczace tras. Te reguły umożliwiają kierowanie różnych ścieżek do różnych aplikacji kontenera podczas modyfikowania ścieżki żą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.pathDokładna definicja ścieżki dopasowania. route.match.pathSeparatedPrefixDopasuje 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.caseSensitiveOkreśla, czy wzorce tras są zgodne z poufnością wielkości liter. target.labelKierowanie do konkretnej poprawki oznaczonej etykietą wewnątrz aplikacji kontenera. target.revisionPrzejście do określonej wersji w aplikacji kontenerowej. Uruchom następujące polecenie, aby utworzyć konfigurację trasy HTTP.
az containerapp env http-route-config create \ --http-route-config-name $ROUTE_CONFIG_NAME \ --resource-group $RESOURCE_GROUP \ --name $ENVIRONMENT_NAME \ --yaml routing.yml \ --query properties.fqdnW pełni kwalifikowana nazwa domeny (FQDN) konfiguracji Twojej trasy HTTP wygląda następująco:
my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io
Upewnij się, że obie aplikacje kontenerowe są już istniejące.
Utwórz następujący plik Bicep i zapisz go jako
routing.bicep.resource containerAppsEnvironment 'Microsoft.App/managedEnvironments@2024-10-02-preview' = { name: 'my-container-apps-env' location: 'eastus' tags: {} properties: { workloadProfiles: [ { workloadProfileType: 'Consumption' name: 'Consumption' } ] } } resource httpRouteConfig 'Microsoft.App/managedEnvironments/httpRouteConfigs@2024-10-02-preview' = { parent: containerAppsEnvironment name: 'my-route-config' location: 'eastus' properties: { rules: [ { description: 'App 1 rule' routes: [ { match: { prefix: '/app1' } action: { prefixRewrite: '/' } } ] targets: [ { containerApp: 'my-container-app-1' } ] } { description: 'App 2 rule' routes: [ { match: { path: '/app2' } action: { prefixRewrite: '/' } } { match: { path: '/' } } ] targets: [ { containerApp: 'my-container-app-2' } ] } ] } } output fqdn string = httpRouteConfig.properties.fqdnWdróż plik Bicep za pomocą następującego polecenia:
az deployment group create ` --name $ROUTE_CONFIG_NAME ` --resource-group $RESOURCE_GROUP ` --template-file routing.bicepW danych wyjściowych znajdź
outputs, który zawiera w pełni kwalifikowaną nazwę domeny (FQDN) konfiguracji trasy HTTP. Na przykład:"outputs": { "fqdn": { "type": "String", "value": "my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io" } },
Weryfikowanie konfiguracji tras HTTP
Przejdź do konfiguracji FQDN trasy HTTP poprzez ścieżkę
/app1.Na przykład:
my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io/app1.Zobaczysz obraz przewodnika szybkiego startu dla usługi Container Apps.
Przejdź do konfiguracji FQDN trasy HTTP poprzez ścieżkę
/app2.Na przykład:
my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io/app2.Zostanie wyświetlony obraz szybkiego startu ASP.NET.
Czyszczenie zasobów
Jeśli nie zamierzasz nadal korzystać z tej aplikacji, uruchom następujące polecenie, aby usunąć grupę zasobów wraz ze wszystkimi zasobami utworzonymi w tym przewodniku szybkiego startu.
Ostrożność
Następujące polecenie usuwa określoną grupę zasobów i wszystkie zawarte w niej zasoby. Jeśli zasoby niezwiązane z zakresem tego przewodnika szybkiego startu istnieją w określonej grupie zasobów, zostaną również usunięte.
az group delete --name my-container-apps