Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här artikeln får du lära dig hur du använder regelbaserad routning med Azure Container Apps. Med regelbaserad routning skapar du ett fullständigt domännamn (FQDN) i containerappmiljön. Sedan använder du regler för att dirigera begäranden för det här fullständiga domännamnet till olika containerappar, beroende på sökvägen för varje begäran.
Förutsättningar
Azure-konto med en aktiv prenumeration.
- Om du inte har någon sådan nu kan du skapa en kostnadsfritt.
Installera Azure CLI:n.
Inställningar
Kör följande kommando så logga in på Azure från CLI.
az loginKör uppgraderingskommandot för att säkerställa att du kör den senaste versionen av CLI.
az upgradeIgnorera eventuella varningar om moduler som för närvarande används.
Installera eller uppdatera Azure Container Apps-tillägget för CLI.
Om du får fel om saknade parametrar när du kör
az containerappkommandon i Azure CLI eller cmdlets från modulenAz.Appi PowerShell, kontrollera att den senaste versionen av Azure Container Apps-tillägget är installerad.az extension add --name containerapp --upgradeAnmärkning
Från och med maj 2024 aktiverar Azure CLI-tillägg inte längre förhandsversionsfunktioner som standard. Om du vill komma åt förhandsversionsfunktioner för Container Apps installerar du containerapptillägget med
--allow-preview true.az extension add --name containerapp --upgrade --allow-preview trueNu när det aktuella tillägget eller modulen har installerats registrerar du
Microsoft.Appnamnrymderna ochMicrosoft.OperationalInsights.az provider register --namespace Microsoft.Appaz provider register --namespace Microsoft.OperationalInsights
Skapa miljövariabler
Skapa följande miljövariabler.
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"
Skapa containerappar
Kör följande kommando för att skapa din första containerapp. Den här containerappen använder Container Apps quickstart-avbildningen.
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.fqdnKör följande kommando för att skapa din andra containerapp. Den här containerappen använder snabbstartsavbildningen 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.fqdnSkapa HTTP-vägkonfiguration.
Skapa följande fil och spara den som
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-2Den här konfigurationen definierar två routningsregler för HTTP-trafik.
Fastighet Beskrivning descriptionEtikett som kan läsas av människor för regeln routes.match.prefixURL-sökvägsprefix som ska matchas. Till exempel /api.routes.action.prefixRewriteVad du ska ersätta det matchade prefixet med innan du vidarebefordrar. targets.containerAppNamnet på containerappen där matchande routningsbegäran skickas. Dessa regler tillåter att olika sökvägar i domänen dirigeras till olika containerappar samtidigt som sökvägen för begäran ändras innan den når målappen.
Andra faktorer som inte är listade som kan påverka dina rutter är följande.
Fastighet Beskrivning route.match.pathExakt matchningssökvägsdefinition. route.match.pathSeparatedPrefixMatchar rutter vid '/'-gränser i stället för vid någon text. Om du till exempel anger värdet till /productmatchar det på/product/1, men inte/product1.route.match.caseSensitiveStyr om routningsmönster matchar skiftlägeskänsligheten eller inte. target.labelDirigera till en specifik märkt revision i en containerapp. target.revisionDirigera till en specifik revision i en containerapp. Kör följande kommando för att skapa HTTP-routningskonfigurationen.
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.fqdnHttp-routningskonfigurationens fullständigt kvalificerade domännamn (FQDN) ser ut så här:
my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io
Kontrollera att båda containerapparna redan finns.
Skapa följande Bicep-fil och spara den som
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.fqdnDistribuera Bicep-filen med följande kommando:
az deployment group create ` --name $ROUTE_CONFIG_NAME ` --resource-group $RESOURCE_GROUP ` --template-file routing.bicepI utdata letar du upp
outputs, som innehåller http-routningskonfigurationens fullständigt kvalificerade domännamn (FQDN). Till exempel:"outputs": { "fqdn": { "type": "String", "value": "my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io" } },
Verifiera konfiguration av HTTP-rutt
Navigera till http-routningskonfigurationens FQDN med sökvägen
/app1.Till exempel:
my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io/app1.Du ser Container Apps snabbstartsavbildning.
Navigera till http-routningskonfigurationens FQDN med sökvägen
/app2.Till exempel:
my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io/app2.Du ser ASP.NET snabbstartsbild.
Rensa resurser
Om du inte fortsätter att använda det här programmet kör du följande kommando för att ta bort resursgruppen tillsammans med alla resurser som skapats i den här snabbstarten.
Försiktighet
Följande kommando tar bort den angivna resursgruppen och alla resurser som ingår i den. Om det finns resurser utanför omfånget för den här snabbstarten i den angivna resursgruppen tas de också bort.
az group delete --name my-container-apps