Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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:
| Propriedade | Descrição | Valores | Necessário |
|---|---|---|---|
allowInsecure |
Permite tráfego inseguro para 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 permite conexões inseguras |
Não |
clientCertificateMode |
Modo de certificado de 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 do cliente.
Require indica que o servidor requer um certificado de cliente. |
Required, Accept, Ignore (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 aplicativo de contêiner escuta para solicitações de entrada. | Defina esse valor como o número da porta que seu aplicativo de 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, http para HTTP/1, http2 para HTTP/2, tcp para TCP. |
Não |
Deteção automática de portas
Se o seu 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 detetarão automaticamente a porta de destino verificando todas as portas de escuta em seu contêiner. Se houver apenas uma porta detetada, essa porta será definida como a porta de destino para seu aplicativo de contêiner. Se houver mais de uma porta detetada, o aplicativo de contêiner não define automaticamente a porta de destino e você precisa definir a porta de destino manualmente.
- A deteção automática de portas só funciona para tráfego HTTP, não tráfego TCP.
- Se você tiver testes de integridade HTTP escutando nas portas 80 ou 443, essa configuração poderá interferir na deteção automática de portas. A configuração de entrada padrão usa testes de integridade TCP. Para obter mais informações, consulte sondas de saúde.
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.
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
az containerapp ingress enable Argumentos de ingresso:
| Opção | Propriedade | Descrição | Valores | Necessá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 |
porta exposta | (Somente ingresso TCP) Uma porta para entrada TCP. Se external for true, 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) |
Não |
--transport |
Transportes | O tipo de protocolo de transporte. | auto (padrão) deteta 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 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.
- Defina Ingress como Enabled.
- Configure as configurações de entrada para seu aplicativo de contêiner.
- Selecione Limitado ao Ambiente de Aplicativos de Contêiner para entrada interna ou Aceitando tráfego de qualquer lugar para entrada externa.
- Selecione o Tipo de entrada: HTTP ou TCP (a entrada TCP só está disponível em ambientes configurados com uma rede virtual).
- Se HTTP estiver selecionado para o Tipo de Ingresso, selecione Transporte: Automático, HTTP/1 ou HTTP/2.
- Selecione Conexões inseguras se quiser permitir conexões HTTP com seu aplicativo.
- Insira a porta de destino para seu aplicativo de contêiner.
- 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
1para65535. (não pode ser80ou443)
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.
- Defina a
externalpropriedade como true para entrada externa ou false para entrada interna. - Defina o
transportcomoautopara detetar HTTP/1 ou HTTP/2,httppara HTTP/1,http2para HTTP/2 outcppara TCP. - Defina o
targetPortpara o número da porta que seu contêiner usa. O ponto de extremidade de entrada do aplicativo está sempre exposto na porta443. - Defina a propriedade se o
exposedPorttipo de transporte fortcppara 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 de1para65535. (não pode ser80ou443)
{
...
"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.
- Selecione Ingress no menu Configurações da página do aplicativo de contêiner.
- Desmarque a configuração IngressEnabled .
- Selecione Guardar.
Desative a entrada para seu aplicativo de contêiner omitindo totalmente a ingress propriedade de properties.configuration configuração.
Usar outras portas TCP
Você pode expor portas TCP extras do seu aplicativo. Para obter mais informações, consulte o artigo de conceito de ingresso.
Nota
Para usar esse recurso, você precisa da 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.
Você pode adicionar portas TCP extras 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>
O exemplo a seguir mostra um arquivo YAML que você pode referenciar no comando anterior da CLI. A configuração para as 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
- Expanda a seção Portas TCP adicionais na folha Ingresso.
- Adicione portas TCP extras nas quais seu aplicativo aceita tráfego no campo Porta de destino . Se você deixar a porta exposta vazia, ela usará o mesmo valor que a porta de destino.
- Altere o campo Tráfego de entrada conforme necessário. Este campo configura onde o tráfego de entrada é limitado para cada porta.
- Quando terminar, clique em Guardar.
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 em additionalPortMappings dentro da seção ingress de configuration dentro de 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
}
]
}
}
...
}