Partilhar via


Fornecer uma rede virtual a um ambiente Azure Container Apps

O exemplo a seguir mostra como criar um ambiente de aplicativos de contêiner em uma rede virtual (VNet) existente.

Comece por iniciar sessão no portal Azure.

Criar um aplicativo de contêiner

Para criar a sua aplicação container, comece pela página inicial do portal Azure.

  1. Pesquise por Aplicativos de contêiner na barra de pesquisa superior.
  2. Selecione Aplicativos de contêiner nos resultados da pesquisa.
  3. Selecione o botão Criar.

Separador Informações Básicas

Na guia Noções básicas, execute as seguintes ações.

  1. Insira os seguintes valores na seção Detalhes do Projeto.

    Configuração Ação
    Subscrição Selecione a sua subscrição do Azure.
    Grupo de recursos Selecione Criar novo e insira my-container-apps.
    Nome do aplicativo de contêiner Aceda a my-container-app.
    Origem da implementação Selecione Imagem de contêiner.

Criar um ambiente

Em seguida, crie um ambiente para seu aplicativo de contêiner.

  1. Selecione a região apropriada.

    Configuração Valor
    Região Selecione Central US.
  2. No campo Ambiente de Aplicações de Contentores, selecione o link Criar novo ambiente.

  3. Na página Criar ambiente de aplicativos de contêiner na guia Noções básicas, insira os seguintes valores:

    Configuração Valor
    Nome do ambiente Aceda my-environment.
    Redundância entre zonas selecione Desativado
  4. Selecione o separador Monitorização para criar um espaço de trabalho Log Analytics.

  5. Selecione Azure Log Analytics como destino Logs.

  6. Selecione o link Criar novo no campo Log Analytics workspace e introduza os seguintes valores.

    Configuração Valor
    Nome Introduza my-container-apps-logs.

    O campo Localização está pré-preenchido com Central US para você.

  7. Selecione OK.

Você também tem a opção de implantar um DNS privado para seu ambiente de Aplicativos de Contêiner. Para mais informações, consulte Criar e configurar uma zona de Azure DNS Privado.

Criar uma rede virtual

Nota

Para usar um VNet com Aplicações Container, o VNet deve ter uma sub-rede dedicada com um intervalo CIDR igual ou /27 maior quando utiliza o ambiente padrão de perfis de carga de trabalho, ou um intervalo CIDR de /23 ou maior quando se utiliza o ambiente legado apenas de Consumo. Para saber mais sobre o dimensionamento de sub-redes, consulte a visão geral da arquitetura de rede.

  1. Selecione o separador Rede.

  2. Selecione Sim ao lado de Usar sua própria rede virtual.

  3. Ao lado da caixa de rede virtual , selecione Criar nova ligação e introduza o seguinte valor:

    Configuração Valor
    Nome Introduza my-custom-vnet.
  4. Selecione o botão OK.

  5. Ao lado de Sub-rede, selecione o Criar novo link e insira os seguintes valores:

    Configuração Valor
    Nome da sub-rede Insira sub-rede-infraestrutura.
    Bloco de Endereços de Rede Virtual Mantenha os valores padrão.
    Bloco de endereços de sub-rede Mantenha os valores padrão.
  6. Selecione o botão OK.

  7. Em IP Virtual, selecione Externo para um ambiente externo ou Interno para um ambiente interno.

  8. Selecione Criar.

Implementar a aplicação de contentor

  1. No final da página, selecione Rever + criar.

    • Se não forem encontrados erros, o botão Criar está disponível.
    • Se houver erros, qualquer separador que contenha um erro é assinalado com um ponto vermelho. Vai a cada um desses separadores. Os campos que contêm um erro são destacados a vermelho ou marcados com um X vermelho. Corrige todos os erros e depois seleciona Rever + criar novamente.
  2. Selecione Criar.

    Uma página com a mensagem Implantação está em andamento é exibida. Após a implementação terminar com sucesso, aparece a mensagem A sua implementação está concluída .

Verificar a implantação

  1. Selecione Ir para recurso para exibir seu novo aplicativo de contêiner.

  2. Ao lado do URL da Candidatura, selecione o link para ver a sua candidatura.

Pré-requisitos

Configuração

Para iniciar sessão no Azure a partir da CLI, execute o seguinte comando e siga os prompts para completar o processo de autenticação.

az login

Para garantir que você esteja executando a versão mais recente da CLI, execute o comando upgrade.

az upgrade

De seguida, instale ou atualize a extensão Azure Container Apps para a linha de código.

Se receber erros sobre parâmetros em falta quando executa comandos az containerapp em CLI do Azure ou cmdlets do módulo Az.App no PowerShell, certifique-se de que tem a versão mais recente da extensão Azure Container Apps instalada.

az extension add --name containerapp --upgrade

Nota

A partir de maio de 2024, as extensões do CLI do Azure deixaram de ativar funcionalidades de pré-visualização por defeito. Para aceder aos recursos de visualização do Container Apps, instale a extensão Container Apps --allow-preview true.

az extension add --name containerapp --upgrade --allow-preview true

Agora que a extensão ou módulo atual está instalado, registe os namespaces Microsoft.App e Microsoft.OperationalInsights.

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

Definir variáveis de ambiente

Defina as seguintes variáveis de ambiente. Substitua o <placeholders> pelos seus valores.

RESOURCE_GROUP="<new-resource-group>"
LOCATION="<location>"
CONTAINERAPPS_ENVIRONMENT="<containerapps-environment>"

Criar um grupo de recursos Azure

Crie um grupo de recursos para organizar os serviços relacionados à implantação do seu aplicativo de contêiner.

az group create \
  --name $RESOURCE_GROUP \
  --location $LOCATION

Criar um ambiente

Um ambiente no Azure Container Apps cria um limite seguro em torno de um grupo de aplicações container. As Aplicações Container implementadas no mesmo ambiente são implementadas na mesma rede virtual e escrevem logs no mesmo espaço de trabalho do Log Analytics.

Registe o fornecedor Microsoft.ContainerService.

az provider register --namespace Microsoft.ContainerService

Declare uma variável para manter o nome da VNet.

VNET_NAME="my-custom-vnet"

Agora crie uma rede virtual para associar ao ambiente Container Apps. A rede virtual deve ter uma sub-rede disponível para a implantação do ambiente.

az network vnet create \
  --resource-group $RESOURCE_GROUP \
  --name $VNET_NAME \
  --location $LOCATION \
  --address-prefix 10.0.0.0/16
az network vnet subnet create \
  --resource-group $RESOURCE_GROUP \
  --vnet-name $VNET_NAME \
  --name infrastructure-subnet \
  --address-prefixes 10.0.0.0/23

Ao usar o ambiente de perfis de carga de trabalho, precisa de atualizar o VNet para delegar a sub-rede a Microsoft.App/environments. Não delegue a sub-rede ao usar o ambiente apenas de Consumo.

az network vnet subnet update \
  --resource-group $RESOURCE_GROUP \
  --vnet-name $VNET_NAME \
  --name infrastructure-subnet \
  --delegations Microsoft.App/environments

Com a rede virtual criada, agora você pode consultar o ID da sub-rede de infraestrutura.

INFRASTRUCTURE_SUBNET=`az network vnet subnet show --resource-group ${RESOURCE_GROUP} --vnet-name $VNET_NAME --name infrastructure-subnet --query "id" -o tsv | tr -d '[:space:]'`

Por fim, crie o ambiente Container Apps usando a VNet personalizada.

Para criar o ambiente, execute o seguinte comando. Para criar um ambiente interno, adicione --internal-only.

az containerapp env create \
  --name $CONTAINERAPPS_ENVIRONMENT \
  --resource-group $RESOURCE_GROUP \
  --location "$LOCATION" \
  --infrastructure-subnet-resource-id $INFRASTRUCTURE_SUBNET

A tabela a seguir descreve os parâmetros usados com containerapp env create.

Parâmetro Descrição
name Nome do ambiente Container Apps.
resource-group Nome do grupo de recursos.
logs-workspace-id (Opcional) O ID de um espaço de trabalho Log Analytics existente. Se for omitido, será criado um espaço de trabalho para si.
logs-workspace-key O segredo do cliente da Log Analytics. Obrigatório se estiver usando um espaço de trabalho existente.
location O local do Azure onde o ambiente deve ser implementado.
infrastructure-subnet-resource-id ID de recurso de uma sub-rede para componentes de infraestrutura e contêineres de aplicativos de usuário.
internal-only (Opcional) O ambiente não usa um IP estático público, apenas endereços IP internos disponíveis na VNet personalizada. (Requer um identificador de recurso de sub-rede de infraestrutura.)

Configuração opcional

Você tem a opção de implantar um DNS privado e definir intervalos de IP de rede personalizados para seu ambiente de Aplicativos de Contêiner.

Implantar com um DNS privado

Se você quiser implantar seu aplicativo de contêiner com um DNS privado, execute os seguintes comandos.

Primeiro, extraia informações identificáveis do ambiente.

ENVIRONMENT_DEFAULT_DOMAIN=`az containerapp env show --name ${CONTAINERAPPS_ENVIRONMENT} --resource-group ${RESOURCE_GROUP} --query properties.defaultDomain --out json | tr -d '"'`
ENVIRONMENT_STATIC_IP=`az containerapp env show --name ${CONTAINERAPPS_ENVIRONMENT} --resource-group ${RESOURCE_GROUP} --query properties.staticIp --out json | tr -d '"'`
VNET_ID=`az network vnet show --resource-group ${RESOURCE_GROUP} --name ${VNET_NAME} --query id --out json | tr -d '"'`

Em seguida, configure o DNS privado.

az network private-dns zone create \
  --resource-group $RESOURCE_GROUP \
  --name $ENVIRONMENT_DEFAULT_DOMAIN
az network private-dns link vnet create \
  --resource-group $RESOURCE_GROUP \
  --name $VNET_NAME \
  --virtual-network $VNET_ID \
  --zone-name $ENVIRONMENT_DEFAULT_DOMAIN -e true
az network private-dns record-set a add-record \
  --resource-group $RESOURCE_GROUP \
  --record-set-name "*" \
  --ipv4-address $ENVIRONMENT_STATIC_IP \
  --zone-name $ENVIRONMENT_DEFAULT_DOMAIN

Parâmetros de rede

Ao utilizar o ambiente legado apenas para Consumo, poderá definir três parâmetros de rede opcionais ao chamar containerapp env create. Utilize estas opções quando tiver uma rede virtual emparelhada com intervalos de endereços separados. A configuração explícita desses intervalos garante que os endereços usados pelo ambiente de Aplicativos de Contêiner não entrem em conflito com outros intervalos na infraestrutura de rede.

Nota

Estes parâmetros são apenas aplicáveis ao tipo de ambiente legado apenas de Consumo. O tipo de ambiente dos perfis de trabalho predefinido não requer estes parâmetros.

Deve fornecer valores para todas as três propriedades ou para nenhuma delas. Se eles não forem fornecidos, os valores serão gerados para você.

Parâmetro Descrição
platform-reserved-cidr O intervalo de endereços usado internamente para serviços de infraestrutura de ambiente. Deve ter um tamanho entre /23 e /12 ao usar o ambiente de Consumo apenas
platform-reserved-dns-ip Um endereço IP do intervalo platform-reserved-cidr que é usado para o servidor DNS interno. O endereço não pode ser o primeiro endereço no intervalo ou o endereço de rede. Por exemplo, se platform-reserved-cidr estiver definido como 10.2.0.0/16, então platform-reserved-dns-ip não pode ser 10.2.0.0 (o endereço de rede) ou 10.2.0.1 (a infraestrutura reserva o uso deste IP). Neste caso, o primeiro IP utilizável para o DNS seria 10.2.0.2.
docker-bridge-cidr O intervalo de endereços atribuído à rede de ponte do Docker. Esse intervalo deve ter um tamanho entre /28 e /12.
  • Os intervalos de endereços de platform-reserved-cidr e de docker-bridge-cidr não podem entrar em conflito entre si nem com os intervalos de qualquer sub-rede fornecida. Além disso, certifique-se de que esses intervalos não entrem em conflito com nenhum outro intervalo de endereços na VNet.

  • Se essas propriedades não forem fornecidas, a CLI gerará automaticamente os valores de intervalo com base no intervalo de endereços da VNet para evitar conflitos de intervalo.

Limpar recursos

Se você não vai continuar a usar este aplicativo, você pode excluir o grupo de recursos my-container-apps . Isto elimina a instância do Azure Container Apps e todos os serviços associados. Ele também exclui o grupo de recursos que o serviço Aplicativos de Contêiner criou automaticamente e que contém os componentes de rede personalizados.

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 guia no grupo de recursos especificado, eles também serão excluídos.

az group delete --name $RESOURCE_GROUP

Recursos adicionais

  • Para usar o ingresso no âmbito VNet, deve configurar o DNS.

Próximos passos