Compartilhar via


Configurar a entrada para seu aplicativo nos Aplicativos de Contêiner do Azure

Este artigo mostra como habilitar recursos de entrada para seu aplicativo de contêiner. A entrada é uma configuração que abrange todo o aplicativo. As alterações nas configurações de entrada se aplicam a todas as revisões simultaneamente e não geram revisões.

Configurações de entrada

Você pode definir as seguintes propriedades do modelo de entrada:

Propriedade Descrição Valores Obrigatório
allowInsecure Permite o tráfego inseguro para o seu aplicativo de contêiner. Quando definido como true, as solicitações HTTP para a porta 80 não são redirecionadas automaticamente para a porta 443 usando HTTPS, permitindo conexões inseguras. false (padrão), true habilita conexões inseguras Não
clientCertificateMode Modo de certificado do cliente para autenticação mTLS. Ignore indica que o servidor descarta o certificado do cliente no encaminhamento. Accept indica que o servidor encaminha o certificado do cliente, mas não requer um certificado de cliente. Require indica que o servidor requer um certificado do cliente. Required, Accept, Ignore (padrão) Não
customDomains Associações de domínio personalizadas para os nomes de host dos Aplicativos de Contêiner. Confira Configurar domínios personalizados e certificados Uma matriz de associações Não
exposedPort (Somente entrada TCP) O TCP da porta escuta. Se external for true, o valor deverá ser exclusivo no ambiente de Aplicativos de Contêiner. Um número da porta de 1 para 65535. (não pode ser 80 ou 443) Não
external Permitir entrada para seu aplicativo de fora do seu ambiente dos Aplicativos de Contêiner. true ou false (padrão) Sim
ipSecurityRestrictions Restrições de entrada de IP. Consulte Configurar restrições de entrada de IP Uma matriz de regras Não
stickySessions.affinity Habilita a afinidade de sessão. none (padrão), sticky Não
targetPort A porta que seu aplicativo de contêiner escuta para receber solicitações. Defina esse valor como o número da porta que seu aplicativo de contêiner usa. Para entrada HTTP, o ponto de extremidade de entrada do aplicativo sempre é exposto na porta 443. Sim
traffic A Divisão de Tráfego distribui o peso entre as revisões. Uma matriz de regras Não
transport O tipo de protocolo de transporte. auto (padrão) detecta HTTP/1 ou HTTP/2, http para HTTP/1, http2 para HTTP/2, tcp para TCP. Não

Detecção automática da porta

Se o aplicativo de contêiner tiver a entrada HTTP habilitada e você não definir uma porta de destino, os Aplicativos de Contêiner do Azure detectarão automaticamente a porta de destino verificando todas as portas de escuta no contêiner. Se houver apenas uma porta detectada, essa porta será definida como a porta de destino para seu aplicativo de contêiner. Se houver mais de uma porta detectada, o aplicativo de contêiner não definirá automaticamente a porta de destino e você precisará definir a porta de destino manualmente.

  • A detecção automática da porta funciona apenas com o tráfego HTTP, não com o tráfego TCP.
  • Se você tiver sondas de integridade HTTP monitorando as portas 80 ou 443, essa configuração poderá interferir na detecção automática de portas. A configuração de entrada padrão usa investigações de integridade TCP. Para obter mais informações, confira investigações de integridade.

Habilitar a entrada

Você pode configurar a entrada para seu aplicativo de contêiner usando a CLI do Azure, um modelo do ARM ou o portal do Azure.

O az containerapp ingress enable comando habilita a entrada para seu aplicativo de contêiner. Você deve especificar a porta de destino e, opcionalmente, pode definir a porta exposta se o tipo de transporte for tcp.

az containerapp ingress enable \
    --name <app-name> \
    --resource-group <resource-group> \
    --target-port <target-port> \
    --exposed-port <tcp-exposed-port> \
    --transport <transport> \
    --type <external>
    --allow-insecure

Argumentos de entrada az containerapp ingress enable:

Opção Propriedade Descrição Valores Obrigatório
--type external Permite a entrada para seu aplicativo de qualquer lugar ou restringe a entrada ao seu ambiente interno dos Aplicativos de Contêiner. external ou internal Sim
--allow-insecure allowInsecure Permite conexões HTTP ao seu aplicativo. Não
--target-port porta alvo A porta por onde o contêiner escuta solicitações de entrada. Defina esse valor como o número da porta que o contêiner usa. O ponto de extremidade de entrada do aplicativo sempre é exposto na porta 443. Sim
--exposed-port exposedPort (Somente entrada TCP) Uma porta para entrada TCP. Se external for true, o valor deverá ser exclusivo no ambiente dos Aplicativos de Contêiner se a entrada for externa. Um número da porta de 1 para 65535. (não pode ser 80 ou 443) Não
--transport transportar O tipo de protocolo de transporte. auto (padrão) detecta HTTP/1 ou HTTP/2, http para HTTP/1, http2 para HTTP/2, tcp para TCP. Não

Habilite a entrada para seu aplicativo de contêiner usando o portal.

Você pode habilitar a entrada ao criar seu aplicativo de contêiner ou pode habilitar a entrada para um aplicativo de contêiner existente.

  • Para configurar a entrada ao criar seu aplicativo de contêiner, selecione Entrada na guia Configuração de Aplicativos do assistente de criação do aplicativo de contêiner.
  • Para configurar a entrada para um aplicativo de contêiner existente, selecione Entrada no menu Configurações da página de recursos do aplicativo de contêiner.

Habilitando a entrada para seu aplicativo de contêiner

Você pode configurar a entrada ao criar seu aplicativo de contêiner usando o portal do Azure.

  1. Defina Entrada como Habilitada.
  2. Defina as configurações de entrada para seu aplicativo de contêiner.
  3. Selecione Limitada ao ambiente dos Aplicativos de Contêiner para entrada interna ou Aceitar tráfego de qualquer lugar para entrada externa.
  4. Selecione o Tipo de Entrada: HTTP ou TCP (a entrada TCP só está disponível em ambientes configurados com uma rede virtual).
  5. Se HTTP estiver selecionado como o Tipo de Entrada, selecione o Transporte: Automático, HTTP/1 ou HTTP/2.
  6. Selecione Conexões inseguras se você quiser permitir conexões HTTP para seu aplicativo.
  7. Insira a Porta de destino para seu aplicativo de contêiner.
  8. Se você selecionou TCP para a opção Transporte, insira a Porta exposta para seu aplicativo de contêiner. O número da porta exposta pode ser de 1 a 65535. (não pode ser 80 ou 443)

A página de configurações de Entrada para seu aplicativo de contêiner também permite que você configure Restrições de IP. Para obter informações para configurar a restrição de IP, consulte Restrições de IP.

Habilite a entrada ao seu aplicativo de contêiner usando a propriedade de configuração ingress. Defina a propriedade external como true, e defina suas propriedades transport e targetPort.

  • Defina a external propriedade como true para entrada externa ou false para entrada interna.
  • Defina transport como auto para detectar HTTP/1 ou HTTP/2, http para HTTP/1, http2 para HTTP/2 ou tcp para TCP.
  • Defina o targetPort como o número da porta que o contêiner usa. O ponto de extremidade de entrada do aplicativo sempre é exposto na porta 443.
  • Defina a propriedade exposedPort se o tipo de transporte for tcp de uma porta para entrada TCP. O valor deve ser exclusivo no ambiente dos Aplicativos de Contêiner se a entrada for externa. Um número da porta de 1 para 65535. (não pode ser 80 ou 443)
{
  ...
  "configuration": {
    "ingress": {
        "external": true,
        "transport": "tcp",
        "targetPort": 80,
        "exposedPort": 8080,
    },
  }
}

Desabilitar a entrada

Desabilite a entrada para seu aplicativo de contêiner usando o comando az containerapp ingress.

az containerapp ingress disable \
    --name <app-name> \
    --resource-group <resource-group> \

Você pode desabilitar a entrada para seu aplicativo de contêiner usando o portal.

  1. Selecione Entrada no menu Configurações da página do aplicativo de contêiner.
  2. Desmarque a configuração de EntradaHabilitada.
  3. Clique em Salvar.

Captura de tela da desabilitação da entrada do aplicativo de contêiner.

Desabilite a entrada do aplicativo de contêiner omitindo totalmente a propriedade de configuração ingress de properties.configuration.

Usar outras portas TCP

Você pode expor portas TCP extras de seu aplicativo. Para obter mais informações, consulte o artigo sobre o conceito de entrada.

Observação

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

Você pode adicionar portas TCP extras por meio da CLI fazendo referência a um arquivo YAML com suas configurações de porta TCP.

az containerapp create \
    --name <app-name> \
    --resource-group <resource-group> \
    --yaml <your-yaml-file>

O exemplo a seguir mostra um arquivo YAML que você pode referenciar no comando da CLI anterior. A configuração das portas TCP extras está em additionalPortMappings.

location: northcentralus
name: multiport-example
properties:
  configuration:
    activeRevisionsMode: Single
    ingress:
      additionalPortMappings:
      - exposedPort: 21025
        external: false
        targetPort: 1025
      allowInsecure: false
      external: true
      targetPort: 1080
      traffic:
      - latestRevision: true
        weight: 100
      transport: http
  managedEnvironmentId: <env id>
  template:
    containers:
    - image: maildev/maildev
      name: maildev
      resources:
        cpu: 0.25
        memory: 0.5Gi
    scale:
      maxReplicas: 1
      minReplicas: 1
  workloadProfileName: Consumption
type: Microsoft.App/containerApps

Captura de tela da adição de portas TCP extras para entrada de Aplicativos de Contêiner por meio do portal.

  1. Expanda a seção Portas TCP adicionais na folha Entrada.
  2. Adicione portas TCP extras nas quais seu aplicativo aceita o tráfego no campo porta de destino. Se você deixar a porta Exposta vazia, ela usará o mesmo valor que a porta de destino.
  3. Altere o campo Tráfego de entrada conforme necessário. Esse campo configura onde o tráfego de entrada é limitado para cada porta.
  4. Ao terminar, clique em Salvar.

O modelo arm a seguir fornece um exemplo de como você pode adicionar portas extras aos seus aplicativos de contêiner. Adicione cada porta extra sob additionalPortMappings na seção ingress para configuration dentro do properties para o aplicativo de contêiner. O exemplo a seguir mostra como adicionar portas extras:

{
  ...
  "properties": {
    ...
    "configuration": {
      "ingress": {
        ...
        "additionalPortMappings": [
          {
            "external": false
            "targetPort": 80
            "exposedPort": 12000
          }
        ]
      }
    }
  ...
}

Próximas etapas