Partilhar via


Ingresso em Aplicativos de Contêiner do Azure

Os Aplicativos de Contêiner do Azure permitem que você exponha seu aplicativo de contêiner à Web pública, sua rede virtual (VNET) e outros aplicativos de contêiner em seu ambiente, habilitando a entrada. As configurações de entrada são impostas por meio de um conjunto de regras que controlam o roteamento do tráfego externo e interno para seu aplicativo de contêiner. Quando você habilita a entrada, não precisa criar um Balanceador de Carga do Azure, endereço IP público ou quaisquer outros recursos do Azure para habilitar solicitações HTTP de entrada ou tráfego TCP.

Ingress suporta:

Exemplo de configuração de entrada mostrando a divisão de entrada entre duas revisões:

Diagrama mostrando uma configuração de entrada dividindo o tráfego entre duas revisões.

Para obter detalhes de configuração, consulte Configurar entrada.

Entrada externa e interna

Ao habilitar a entrada, você pode escolher entre dois tipos de entrada:

  • Externo: aceita tráfego da Internet pública e do ambiente interno do seu aplicativo de contêiner.
  • Interno: permite apenas acesso interno de dentro do ambiente do seu aplicativo de contêiner.

Cada aplicativo de contêiner dentro de um ambiente pode ser configurado com diferentes configurações de entrada. Por exemplo, em um cenário com vários aplicativos de microsserviço, para aumentar a segurança, você pode ter um único aplicativo de contêiner que recebe solicitações públicas e passa as solicitações para um serviço em segundo plano. Nesse cenário, você configuraria o aplicativo de contêiner voltado para o público com entrada externa e o aplicativo de contêiner voltado para o público com entrada interna.

Tipos de protocolo

O Container Apps suporta dois protocolos de entrada: HTTP e TCP.

HTTP

Com a entrada HTTP habilitada, seu aplicativo de contêiner tem:

  • Suporte para terminação TLS
  • Suporte para HTTP/1.1 e HTTP/2
  • Suporte para WebSocket e gRPC
  • Pontos de extremidade HTTPS que sempre usam TLS 1.2 ou 1.3, terminados no ponto de entrada
  • Pontos de extremidade que expõem as portas 80 (para HTTP) e 443 (para HTTPS)
    • Por padrão, as solicitações HTTP para a porta 80 são redirecionadas automaticamente para HTTPS na 443
  • Um nome de domínio completamente qualificado (FQDN)
  • O tempo limite da solicitação é de 240 segundos

Cabeçalhos de HTTP

A entrada HTTP adiciona cabeçalhos para passar metadados sobre a solicitação do cliente para seu aplicativo de contêiner. Por exemplo, o X-Forwarded-Proto cabeçalho é usado para identificar o protocolo que o cliente usou para se conectar ao serviço Aplicativos de Contêiner. A tabela a seguir lista os cabeçalhos HTTP relevantes para entrada em Aplicativos de Contêiner:

Cabeçalho Description Valores
X-Forwarded-Proto Protocolo usado pelo cliente para se conectar com o serviço Container Apps. http ou https
X-Forwarded-For O endereço IP do cliente que enviou a solicitação.
X-Forwarded-Host O nome do host que o cliente usou para se conectar com o serviço Container Apps.
X-Forwarded-Client-Cert O certificado do cliente se clientCertificateMode estiver definido. Lista separada por ponto-e-vírgula de Hash, Cert e Chain. Por exemplo: Hash=....;Cert="...";Chain="...";

TCP

O Container Apps suporta protocolos baseados em TCP diferentes de HTTP ou HTTPS. Por exemplo, você pode usar a entrada TCP para expor um aplicativo de contêiner que usa o protocolo Redis.

Nota

A entrada TCP externa só é suportada para ambientes de Aplicativos de Contêiner que usam uma VNET personalizada. A entrada de TCP não é suportada para aplicações que aceitam tráfego de entrada através de um ponto de extremidade privado.

Com a entrada TCP habilitada, seu aplicativo de contêiner:

  • É acessível a outros aplicativos de contêiner no mesmo ambiente por meio de seu nome (definido pela propriedade no recurso Aplicativos de Contêiner) e número de name porta exposto.
  • É acessível externamente por meio de seu nome de domínio totalmente qualificado (FQDN) e número de porta exposto se a entrada estiver definida como external.

Portas TCP adicionais

Além da porta HTTP/TCP principal para seus aplicativos de contêiner, você pode expor portas TCP adicionais para habilitar aplicativos que aceitam conexões TCP em várias portas.

Nota

Para usar esse recurso, você deve ter a extensão CLI de aplicativos de contêiner. Execute az extension add -n containerapp para instalar a versão mais recente da extensão CLI de aplicativos de contêiner.

O seguinte aplica-se a portas TCP adicionais:

  • As portas TCP adicionais só podem ser externas se o próprio aplicativo estiver definido como externo e o aplicativo contêiner estiver usando uma VNet personalizada.
  • Todas as portas TCP adicionais expostas externamente devem ser exclusivas em todo o ambiente de Aplicativos de Contêiner. Isso inclui todas as portas TCP adicionais externas, portas TCP principais externas e portas 80/443 usadas pela entrada HTTP interna. Se as portas adicionais forem internas, a mesma porta pode ser compartilhada por vários aplicativos.
  • Se uma porta exposta não for fornecida, a porta exposta será padrão para corresponder à porta de destino.
  • Cada porta de destino deve ser exclusiva e a mesma porta de destino não pode ser exposta em portas expostas diferentes.
  • Há um máximo de cinco portas adicionais por aplicativo. Se forem necessárias portas adicionais, abra um pedido de suporte.
  • Somente a porta de entrada principal suporta recursos HTTP internos, como CORS e afinidade de sessão. Ao executar HTTP sobre as portas TCP adicionais, esses recursos internos não são suportados.

Visite o artigo sobre ingresso para obter mais informações sobre como habilitar portas adicionais para seus aplicativos de contêiner.

Nomes de domínio

Você pode acessar seu aplicativo das seguintes maneiras:

  • O FQDN (nome de domínio totalmente qualificado) padrão: cada aplicativo em um ambiente de Aplicativos de Contêiner recebe automaticamente um FQDN com base no sufixo DNS do ambiente. Para personalizar o sufixo DNS de um ambiente, consulte Sufixo DNS do ambiente personalizado.
  • Um nome de domínio personalizado: você pode configurar um domínio DNS personalizado para seu ambiente de Aplicativos de Contêiner. Para obter mais informações, consulte Nomes de domínio e certificados personalizados.
  • O nome do aplicativo: você pode usar o nome do aplicativo para comunicação entre aplicativos no mesmo ambiente.

Para obter o FQDN do seu aplicativo, consulte Localização.

Restrições de IP

O Container Apps suporta restrições de IP para entrada. Você pode criar regras para configurar endereços IP que têm acesso permitido ou negado ao seu aplicativo de contêiner. Para obter mais informações, consulte Configurar restrições de IP.

Autenticação

Os Aplicativos de Contêiner do Azure fornecem recursos internos de autenticação e autorização para proteger seu aplicativo de contêiner externo habilitado para entrada. Para obter mais informações, consulte Autenticação e autorização em aplicativos de contêiner do Azure.

Você pode configurar seu aplicativo para oferecer suporte a certificados de cliente (mTLS) para autenticação e criptografia de tráfego. Para obter mais informações, consulte Configurar certificados de cliente.

Para obter detalhes sobre como usar a criptografia de rede ponto a ponto no nível do ambiente, consulte a visão geral da rede.

Divisão de tráfego

Containers Apps permite dividir o tráfego de entrada entre revisões ativas. Ao definir uma regra de divisão, você atribui a porcentagem do tráfego de entrada para ir para revisões diferentes. Para obter mais informações, consulte Divisão de tráfego.

Afinidade de sessão

A afinidade de sessão, também conhecida como sessões adesivas, é um recurso que permite rotear todas as solicitações HTTP de um cliente para a mesma réplica de aplicativo de contêiner. Esse recurso é útil para aplicativos com monitoração de estado que exigem uma conexão consistente com a mesma réplica. Para obter mais informações, consulte Afinidade de sessão.

Compartilhamento de recursos entre origens (CORS)

Por padrão, todas as solicitações feitas através do navegador de uma página para um domínio que não corresponda ao domínio de origem da página são bloqueadas. Para evitar essa restrição para serviços implantados em Aplicativos de Contêiner, você pode habilitar o compartilhamento de recursos entre origens (CORS).

Para obter mais informações, consulte Configurar CORS em aplicativos de contêiner do Azure.

Próximos passos