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 definidas como true , as solicitações HTTP para a porta 80 não serão redirecionadas automaticamente para a porta 443 usando HTTPS, o que permite conexões inseguras. |
false (padrão), true habilita conexões inseguras |
Não |
clientCertificateMode |
Modo de certificado do cliente para autenticação mTLS. Ignorar indica que o servidor descarta o certificado do cliente no encaminhamento. Aceitar indica que o servidor encaminha o certificado do cliente, mas não requer um certificado do cliente. Exigir 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 por onde o contêiner escuta solicitações de entrada. | Defina esse valor como o número da porta que o 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 |
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.
Esse comando az containerapp ingress enable
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 |
targetPort | 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 |
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 |
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.
Ao habilitar 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 Entrada como Habilitada.
- Defina as configurações de entrada para seu aplicativo de contêiner.
- Selecione Limitada ao ambiente dos Aplicativos de Contêiner para entrada interna ou Aceitar 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 personalizada).
- Se HTTP estiver selecionado como o Tipo de Entrada, selecione o Transporte: Automático, HTTP/1 ou HTTP/2.
- Selecione Conexões inseguras se você quiser permitir conexões HTTP para 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 de
1
a65535
. (não pode ser80
ou443
)
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
.A propriedade
-external
pode ser definida como true para entrada externa ou false para entrada interna.
- Defina
transport
comoauto
para detectar HTTP/1 ou HTTP/2,http
para HTTP/1,http2
para HTTP/2 outcp
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 porta443
. - Defina a propriedade
exposedPort
se o tipo de transporte fortcp
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 de1
para65535
. (não pode ser80
ou443
)
{
...
"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.
- Selecione Entrada no menu Configurações da página do aplicativo de contêiner.
- Desmarque a configuração de EntradaHabilitada.
- Selecione Salvar.
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 as portas TCP adicionais de seu aplicativo. Para saber mais, confira o artigo sobre o conceito de entrada.
Observação
Para usar essa versão prévia do recurso, você precisa ter a extensão da CLI dos aplicativos de contêiner. Execute az extension add -n containerapp
para instalar a versão mais recente da extensão da CLI dos aplicativos de contêiner.
A adição de outras portas TCP pode ser feita 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>
Veja a seguir um exemplo de arquivo YAML que você pode referenciar no comando da CLI acima. A configuração das 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
- Expanda a seção Portas TCP adicionais na folha Entrada.
- Adicione portas TCP adicionais em que seu aplicativo aceitará o tráfego no campo Porta de destino. Se a Porta exposta ficar vazia, isso tirará do mesmo conjunto de valores em Porta de destino.
- Altere o campo Tráfego de entrada conforme necessário. Isso configurará onde o tráfego de entrada será limitado para cada porta.
- Ao terminar, clique em Salvar.
O modelo do 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 em additionalPortMappings
dentro da seção ingress
para configuration
dentro de properties
do aplicativo de contêiner. A seguir, é mostrado um exemplo:
{
...
"properties": {
...
"configuration": {
"ingress": {
...
"additionalPortMappings": [
{
"external": false
"targetPort": 80
"exposedPort": 12000
}
]
}
}
...
}