Configurar a Entrada para seu aplicativo em Aplicativos de Contêiner do Azure

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

Configurações de ingresso

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

Property Description Valores Obrigatório
allowInsecure Permite tráfego inseguro para seu aplicativo de contêiner. Quando definido como true HTTP, as solicitações para a porta 80 não são redirecionadas automaticamente para a porta 443 usando HTTPS, permitindo conexões inseguras. false (padrão), true permite conexões inseguras Não
clientCertificateMode Modo de certificado de cliente para autenticação mTLS. Ignorar 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 do cliente. Require indica que o servidor requer um certificado de cliente. Required, , AcceptIgnore (padrão) Não
customDomains Associações de domínio personalizadas para nomes de host de Aplicativos de Contêiner. Consulte Domínios e certificados personalizados Uma matriz de ligações Não
exposedPort (Somente ingresso TCP) A porta TCP escuta. Se external for true, o valor deve ser exclusivo no ambiente de Aplicativos de Contêiner. Um número de porta de 1 para 65535. (não pode ser 80 ou 443) Não
external Permita a entrada no seu aplicativo de fora do ambiente de 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 série de regras Não
stickySessions.affinity Permite afinidade de sessão. none (padrão), sticky Não
targetPort A porta que seu contêiner escuta para solicitações de entrada. Defina esse valor como o número da porta que o contêiner usa. Para entrada HTTP, seu ponto de extremidade de entrada de aplicativo é sempre exposto na porta 443. Sim
traffic Pesos de divisão de tráfego divididos entre as revisões. Uma série de regras Não
transport O tipo de protocolo de transporte. auto (padrão) deteta HTTP/1 ou HTTP/2, para HTTP/1, para HTTP/2, httphttp2tcp para TCP. Não

Ativar a entrada

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

Este az containerapp ingress enable comando permite 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

az containerapp ingress enable Argumentos de ingresso:

Opção Property Description Valores Obrigatório
--type externo Permita a entrada em seu aplicativo de qualquer lugar ou limite a entrada em seu ambiente interno de Aplicativos de Contêiner. external ou internal Sim
--allow-insecure permitirInsecure Permita conexões HTTP ao seu aplicativo. Não
--target-port Porto-alvo A porta que seu contêiner escuta para 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 está sempre exposto na porta 443. Sim
--exposed-port exposedPort (Somente ingresso TCP) Uma porta para entrada TCP. Se external for , o valor deve ser exclusivo no ambiente de Aplicativos de Contêiner se a entrada for trueexterna. Um número de porta de 1 para 65535. (não pode ser 80 ou 443) Não
--transport Transportes O tipo de protocolo de transporte. auto (padrão) deteta HTTP/1 ou HTTP/2, para HTTP/1, para HTTP/2, httphttp2tcp 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 Ingress na guia Configuração do aplicativo do assistente de criação de aplicativo de contêiner.
  • Para configurar a entrada para um aplicativo de contêiner existente, selecione Ingresso 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 Ingress como Enabled.
  2. Configure as configurações de entrada para seu aplicativo de contêiner.
  3. Selecione Limitado ao Ambiente de Aplicativos de Contêiner para entrada interna ou Aceitando 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 VNET personalizada).
  5. Se HTTP estiver selecionado para o Tipo de Ingresso, selecione Transporte: Automático, HTTP/1 ou HTTP/2.
  6. Selecione Conexões inseguras se quiser permitir conexões HTTP com 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 1 para 65535. (não pode ser 80 ou 443)

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

Habilite a entrada para seu aplicativo de contêiner usando a ingress propriedade configuration. Defina a external propriedade como true, e defina suas transport e targetPort propriedades.
-external pode ser definida como true para entrada externa ou false para entrada interna.

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

Desativar ingresso

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

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 Ingress no menu Configurações da página do aplicativo de contêiner.
  2. Desmarque a configuração IngressEnabled .
  3. Selecione Guardar.

Sceenshot of disabling container app ingress.

Desative a entrada para seu aplicativo de contêiner omitindo totalmente a ingress propriedade de properties.configuration configuração.

Usar portas TCP adicionais

Você pode expor portas TCP adicionais do seu aplicativo. Para saber mais, consulte o artigo do conceito de ingresso.

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.

A adição de portas TCP adicionais pode ser feita através 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>

A seguir está um exemplo de arquivo YAML que você pode referenciar no comando CLI acima. A configuração para as portas TCP adicionais 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

Este recurso não é suportado no portal do Azure.

O modelo ARM a seguir fornece um exemplo de como você pode adicionar portas adicionais aos seus aplicativos de contêiner. Cada porta adicional deve ser adicionada dentro da ingress seção para configuration dentro propertiesadditionalPortMappings do aplicativo de contêiner. Veja o exemplo seguinte:

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

Próximos passos