Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto článku se dozvíte, jak používat směrování založené na pravidlech se službou Azure Container Apps. Pomocí směrování založeného na pravidlech vytvoříte plně kvalifikovaný název domény (FQDN) v prostředí kontejnerových aplikací. Potom použijete pravidla ke směrování požadavků pro tento plně kvalifikovaný název domény do různých kontejnerových aplikací v závislosti na cestě jednotlivých požadavků.
Požadavky
Účet Azure s aktivním předplatným.
- Pokud jej nemáte, můžete si jej zdarma vytvořit.
Nainstalujte rozhraní příkazového řádku Azure CLI.
Nastavení
Spusťte následující příkaz, abyste se přihlásili k Azure z rozhraní příkazového řádku.
az loginPokud chcete zajistit, že používáte nejnovější verzi rozhraní příkazového řádku, spusťte příkaz upgrade.
az upgradeIgnorujte všechna upozornění na aktuálně používané moduly.
Teď, když je nainstalováno aktuální rozšíření nebo modul, zaregistrujte obory názvů
Microsoft.AppaMicrosoft.OperationalInsights.az provider register --namespace Microsoft.Appaz provider register --namespace Microsoft.OperationalInsights
Vytvořte proměnné prostředí
Vytvořte následující proměnné prostředí.
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"
Vytváření kontejnerových aplikací
Spuštěním následujícího příkazu vytvořte první aplikaci kontejneru. Tato aplikace kontejneru používá image rychlého startu pro 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.fqdnSpuštěním následujícího příkazu vytvořte druhou aplikaci kontejneru. Tato aplikace kontejneru používá image rychlého 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.fqdnVytvořte konfiguraci trasy HTTP.
Vytvořte následující soubor a uložte ho 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-2Tato konfigurace definuje dvě pravidla směrování pro provoz HTTP.
Poznámka:
Záleží na pořadí pravidel směrování.
Konkrétnější předpony musí být před méně konkrétními předponami.
Pokud například první pravidlo odpovídá předponě /api, použije se i v případě, že druhé pravidlo používá předponu /api/v1.
Vlastnictví Popis descriptionPopisek pro pravidlo čitelný pro člověka routes.match.prefixPředpona cesty url, která se má shodovat. Například: /api.routes.action.prefixRewriteČím nahradit shodnou předponu před předáním. targets.containerAppNázev aplikace kontejneru, ve které se odešle odpovídající požadavek na trasu. Tato pravidla umožňují různým cestám ve vaší doméně směrovat do různých kontejnerových aplikací a zároveň upravit cestu požadavku před dosažením cílové aplikace.
Mezi další vlastnosti, které nejsou uvedené, které by mohly ovlivnit vaše trasy, patří následující.
Vlastnictví Popis route.match.pathPřesná shoda definice cesty. route.match.pathSeparatedPrefixPorovnává trasy na hranicích znaků '/' místo jakéhokoli jiného textu. Pokud například nastavíte hodnotu na /product, bude se shodovat s/product/1, ale ne s/product1.route.match.caseSensitiveUrčuje, zda vzory tras odpovídají citlivosti na malá a velká písmena. target.labelSměrování na konkrétní označenou revizi v rámci kontejnerové aplikace target.revisionSměrování k určité revizi uvnitř kontejnerové aplikace Spuštěním následujícího příkazu vytvořte konfiguraci 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.fqdnPlně kvalifikovaný název domény (FQDN) vaší konfigurace trasy HTTP vypadá takto:
my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io
Ujistěte se, že obě aplikace typu kontejner už existují.
Vytvořte následující soubor Bicep a uložte ho 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.fqdnNasaďte soubor Bicep pomocí následujícího příkazu:
az deployment group create ` --name $ROUTE_CONFIG_NAME ` --resource-group $RESOURCE_GROUP ` --template-file routing.bicepVe výstupu najděte
outputs, který obsahuje plně kvalifikovaný název domény (FQDN) konfigurace trasy HTTP. Například:"outputs": { "fqdn": { "type": "String", "value": "my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io" } },
Ověření konfigurace trasy HTTP
Přistupte k FQDN konfigurace vaší HTTP trasy s cestou
/app1.Například:
my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io/app1.Zobrazí se obraz rychlého startu Container Apps.
Přistupte k FQDN konfigurace vaší HTTP trasy s cestou
/app2.Například:
my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io/app2.Zobrazí se obrázek rychlého startu ASP.NET.
Čištění zdrojů
Pokud tuto aplikaci nebudete dál používat, spuštěním následujícího příkazu odstraňte skupinu prostředků spolu se všemi prostředky vytvořenými v tomto rychlém startu.
Upozornění
Následující příkaz odstraní zadanou skupinu prostředků a všechny prostředky obsažené v ní. Pokud prostředky mimo rozsah tohoto rychlého startu existují v zadané skupině prostředků, odstraní se také.
az group delete --name my-container-apps