Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel leert u hoe u routering op basis van regels gebruikt met Azure Container Apps. Met regelgebaseerde routering maakt u een FQDN (Fully Qualified Domain Name) in uw container-apps-omgeving. Vervolgens gebruikt u regels om aanvragen voor deze FQDN naar verschillende container-apps te routeren, afhankelijk van het pad van elke aanvraag.
Vereiste voorwaarden
Azure-account met een actief abonnement.
- Als u geen account hebt, kunt u er gratis een maken.
Installeer de Azure CLI.
Configuratie
Voer de volgende opdracht uit, dus meld u aan bij Azure vanuit de CLI.
az loginVoer de upgradeopdracht uit om ervoor te zorgen dat u de nieuwste versie van de CLI uitvoert.
az upgradeNegeer eventuele waarschuwingen over modules die momenteel in gebruik zijn.
Nu de huidige extensie of module is geïnstalleerd, registreert u de
Microsoft.AppenMicrosoft.OperationalInsightsnaamruimten.az provider register --namespace Microsoft.Appaz provider register --namespace Microsoft.OperationalInsights
Omgevingsvariabelen maken
Maak de volgende omgevingsvariabelen.
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"
Container-apps maken
Voer de volgende opdracht uit om uw eerste container-app te maken. Deze container-app maakt gebruik van de Container Apps quickstart-image.
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.fqdnVoer de volgende opdracht uit om uw tweede container-app te maken. Deze container-app maakt gebruik van de ASP.NET quickstart-image.
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.fqdnHttp-routeconfiguratie maken.
Maak het volgende bestand en sla het op als
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-2Deze configuratie definieert twee routeringsregels voor HTTP-verkeer.
Vastgoed Beschrijving descriptionMenselijk leesbaar label voor de regel routes.match.prefixURL-padvoorvoegsel dat moet overeenkomen. Bijvoorbeeld: /api.routes.action.prefixRewriteMet welk voorvoegsel het overeenkomende voorvoegsel moet worden vervangen voordat u het doorstuurt. targets.containerAppDe naam van de container-app waar overeenkomende routeaanvraag wordt verzonden. Met deze regels kunnen verschillende paden in uw domein worden gerouteerd naar verschillende container-apps terwijl ook het aanvraagpad wordt gewijzigd voordat het de doel-app bereikt.
Andere eigenschappen die niet worden vermeld die van invloed kunnen zijn op uw routes, zijn onder andere het volgende.
Vastgoed Beschrijving route.match.pathExacte overeenkomstpaddefinitie. route.match.pathSeparatedPrefixKomt overeen met routes bij '/' grenzen in plaats van willekeurige tekst. Als u bijvoorbeeld de waarde instelt op /product, dan komt deze overeen met/product/1, maar niet met/product1.route.match.caseSensitiveHiermee bepaalt u of routepatronen overeenkomen met hoofdlettergevoeligheid. target.labelRoute naar een specifieke gelabelde revisie in een container-app. target.revisionRoute naar een specifieke revisie binnen een container-app. Voer de volgende opdracht uit om de HTTP-routeconfiguratie te maken.
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.fqdnDe FQDN (Fully Qualified Domain Name) van uw HTTP-routeconfiguratie ziet er als volgt uit:
my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io
Zorg ervoor dat beide container-apps al bestaan.
Maak het volgende Bicep-bestand en sla het op als
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.fqdnImplementeer het Bicep-bestand met de volgende opdracht:
az deployment group create ` --name $ROUTE_CONFIG_NAME ` --resource-group $RESOURCE_GROUP ` --template-file routing.bicepZoek in de uitvoer
outputs, die de FQDN (Fully Qualified Domain Name) van uw HTTP-routeconfiguratie bevat. Voorbeeld:"outputs": { "fqdn": { "type": "String", "value": "my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io" } },
HTTP-routeconfiguratie controleren
Navigeer naar de FQDN van je HTTP-routeconfiguratie met het pad
/app1.Voorbeeld:
my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io/app1.U ziet de quickstart-afbeelding van Container Apps.
Navigeer naar de FQDN van je HTTP-routeconfiguratie met het pad
/app2.Voorbeeld:
my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io/app2.U ziet de snelstartafbeelding van ASP.NET.
Hulpmiddelen opruimen
Als u deze toepassing niet wilt blijven gebruiken, voert u de volgende opdracht uit om de resourcegroep te verwijderen, samen met alle resources die in deze quickstart zijn gemaakt.
Waarschuwing
Met de volgende opdracht verwijdert u de opgegeven resourcegroep en alle resources erin. Als resources buiten het bereik van deze quickstart aanwezig zijn in de opgegeven resourcegroep, worden ze ook verwijderd.
az group delete --name my-container-apps