Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Neste artigo, você aprenderá a usar o roteamento baseado em regras com os Aplicativos de Contêiner do Azure. Com o roteamento baseado em regras, você cria um nome de domínio totalmente qualificado (FQDN) em seu ambiente de aplicativos de contêiner. Em seguida, você usa regras para rotear solicitações desse FQDN para diferentes aplicativos de contêiner, dependendo do caminho de cada solicitação.
Pré-requisitos
Conta do Azure com uma assinatura ativa.
- Se não tiver uma, pode criar uma gratuitamente.
Instale a CLI do Azure.
Configuração
Execute o seguinte comando para entrar no Azure a partir da CLI.
az loginPara garantir que você esteja executando a versão mais recente da CLI, execute o comando upgrade.
az upgradeIgnore quaisquer avisos sobre módulos atualmente em uso.
Agora que a extensão ou módulo atual está instalado, registre os
Microsoft.Appnamespaces eMicrosoft.OperationalInsights.az provider register --namespace Microsoft.Appaz provider register --namespace Microsoft.OperationalInsights
Criar variáveis de ambiente
Crie as seguintes variáveis de ambiente.
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"
Criar aplicativos de contêiner
Execute o seguinte comando para criar seu primeiro aplicativo de contêiner. Esta aplicação de contentor utiliza a imagem de início rápido do 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.fqdnExecute o seguinte comando para criar seu segundo aplicativo de contêiner. Esta aplicação de contentor usa a imagem de início rápido do 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.fqdnCrie uma configuração de rota HTTP.
Crie o seguinte arquivo e salve-o como
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-2Essa configuração define duas regras de roteamento para o tráfego HTTP.
Propriedade Descrição descriptionRótulo legível por humanos para a regra routes.match.prefixPrefixo do caminho de URL a ser correspondido. Por exemplo, /api.routes.action.prefixRewriteO que substituir o prefixo correspondente antes de encaminhar. targets.containerAppO nome do aplicativo de contêiner para o qual a solicitação de rota correspondente é enviada. Essas regras permitem que caminhos diferentes no seu domínio sejam encaminhados para diferentes aplicativos de contêiner e, ao mesmo tempo, modificam o caminho da solicitação antes que ela chegue ao aplicativo de destino.
Outras propriedades não listadas que podem afetar suas rotas incluem o seguinte.
Propriedade Descrição route.match.pathDefinição de rota de correspondência exata. route.match.pathSeparatedPrefixCorresponde a rotas nos limites '/' em vez de qualquer texto. Por exemplo, se você definir o valor como /product, ele corresponderá em/product/1, mas não/product1em .route.match.caseSensitiveControla se os padrões de rota correspondem ou não à diferenciação de maiúsculas e minúsculas. target.labelEncaminhar para uma revisão etiquetada específica dentro de uma aplicação container. target.revisionEncaminhar para uma revisão específica dentro de um aplicativo de contêiner. Execute o seguinte comando para criar a configuração de rota 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.fqdnO FQDN (nome de domínio totalmente qualificado) da configuração de rota HTTP é semelhante a este exemplo:
my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io
Verifique se ambos os aplicativos de contêiner já existem.
Crie o seguinte arquivo Bicep e salve-o como
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.fqdnImplante o arquivo Bicep com o seguinte comando:
az deployment group create ` --name $ROUTE_CONFIG_NAME ` --resource-group $RESOURCE_GROUP ` --template-file routing.bicepNo resultado, encontre
outputs, que contém o nome de domínio totalmente qualificado (FQDN) da configuração da sua rota HTTP. Por exemplo:"outputs": { "fqdn": { "type": "String", "value": "my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io" } },
Verificar a configuração da rota HTTP
Aceda ao FQDN da configuração de rota HTTP com o caminho
/app1.Por exemplo:
my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io/app1.Você vê a imagem de introdução rápida dos aplicativos de contêiner.
Aceda ao FQDN da configuração de rota HTTP com o caminho
/app2.Por exemplo:
my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io/app2.Você vê a imagem de início rápido do ASP.NET.
Limpeza de recursos
Se você não vai continuar a usar este aplicativo, execute o seguinte comando para excluir o grupo de recursos junto com todos os recursos criados neste início rápido.
Atenção
O comando a seguir exclui o grupo de recursos especificado e todos os recursos contidos nele. Se existirem recursos fora do escopo deste início rápido no grupo de recursos especificado, eles também serão excluídos.
az group delete --name my-container-apps