Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste artigo, você aprenderá a usar o roteamento baseado em regras com os Aplicativos de Contêiner do Azure. Com o roteamento baseado em regra, você cria um FQDN (nome de domínio totalmente qualificado) em seu ambiente de aplicativos de contêiner. Em seguida, você usa regras para rotear solicitações para esse 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, poderá criar uma gratuitamente.
Instale a CLI do Azure.
Configuração
Execute o comando a seguir para entrar no Azure por meio 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 em uso no momento.
Agora que a extensão ou módulo atual está instalado, registre os namespaces
Microsoft.AppeMicrosoft.OperationalInsights.az provider register --namespace Microsoft.Appaz provider register --namespace Microsoft.OperationalInsights
Criar variáveis de ambiente
Crie as variáveis de ambiente a seguir.
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 comando a seguir para criar seu primeiro aplicativo de contêiner. Este aplicativo de contêiner usa a imagem Quickstart dos 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 comando a seguir para criar seu segundo aplicativo de contêiner. Este aplicativo de contêiner usa a imagem de início rápido 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 a configuração da rota HTTP.
Crie o arquivo a seguir 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 tráfego HTTP.
Propriedade Descrição descriptionRótulo legível por humanos para a regra routes.match.prefixPrefixo de caminho de URL para correspondência. Por exemplo, /api.routes.action.prefixRewriteConteúdo que substituirá o prefixo correspondente antes do encaminhamento. targets.containerAppO nome do aplicativo de contêiner para onde a solicitação de rota correspondente é enviada. Essas regras permitem que caminhos diferentes em seu domínio roteiem para aplicativos de contêiner diferentes, modificando também o caminho da solicitação antes de chegar ao aplicativo de destino.
Outras propriedades não listadas que podem afetar suas rotas incluem o seguinte.
Propriedade Descrição route.match.pathDefinição do caminho de correspondência exata. route.match.pathSeparatedPrefixCorresponde a rotas em limites '/' em vez de qualquer texto. Por exemplo, se você definir o valor como /product, ele corresponderá/product/1, mas não/product1.route.match.caseSensitiveControla se os padrões de rota correspondem à diferenciação de maiúsculas e minúsculas. target.labelRoteie-a para uma revisão rotulada específica em um aplicativo de contêiner. target.revisionRedirecionar para uma revisão específica em um aplicativo de contêiner. Execute o comando a seguir 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 os dois aplicativos de contêiner já existem.
Crie o arquivo Bicep a seguir 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.bicepNa saída, localize
outputs, que contém o FQDN (nome de domínio totalmente qualificado) da configuração de rota HTTP. Por exemplo:"outputs": { "fqdn": { "type": "String", "value": "my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io" } },
Verificar a configuração da rota HTTP
Navegue até o FQDN da configuração da rota HTTP com o caminho
/app1.Por exemplo:
my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io/app1.Você verá a imagem de início rápido de Aplicativos de Contêiner.
Navegue até o FQDN da configuração da rota HTTP com o caminho
/app2.Por exemplo:
my-route-config.ambitiouspebble-11ba6155.eastus.azurecontainerapps.io/app2.Você verá a imagem de início rápido do ASP.NET.
Limpar os recursos
Caso não pretenda continuar usando este aplicativo, execute o comando a seguir para excluir o grupo de recursos junto com todos os recursos criados neste guia de início rápido.
Cuidado
O comando a seguir exclui o grupo de recursos especificado e todos os recursos contidos nele. Se houver recursos fora do escopo desse início rápido no grupo de recursos especificado, eles também serão excluídos.
az group delete --name my-container-apps