Configuración de la entrada para la aplicación en Azure Container Apps
En este artículo se muestra cómo habilitar la característica entrada para la aplicación contenedora. La entrada es una configuración para toda la aplicación. Los cambios en la configuración de entrada se aplican a todas las revisiones simultáneamente y no generan nuevas revisiones.
Configuración de entrada
Puede establecer las siguientes propiedades de plantilla de entrada:
Propiedad | Descripción | Valores | Obligatorio |
---|---|---|---|
allowInsecure |
Permite el tráfico no seguro a la aplicación de contenedor. Si se establece en true , las solicitudes HTTP al puerto 80 no se redirigen automáticamente al puerto 443 mediante HTTPS, lo que permite conexiones no seguras. |
false (valor predeterminado), true habilita conexiones no seguras |
No |
clientCertificateMode |
Modo de certificado de cliente para la autenticación mTLS. Omitir indica que el servidor quita el certificado de cliente al reenviar. Aceptar indica que el servidor reenvía el certificado de cliente, pero no requiere un certificado de cliente. Requerir indica que el servidor requiere un certificado de cliente. | Required , Accept , Ignore (predeterminado) |
No |
customDomains |
Enlaces de dominio personalizados para los nombres de host de Container Apps. Ver Dominios personalizados y certificados | Una matriz de enlaces | No |
exposedPort |
(Solo entrada de TCP) El puerto TCP escucha. Si external es true , el valor debe ser único en el entorno de Container Apps. |
Número de puerto de 1 a 65535 . (no puede ser 80 ni 443 ) |
No |
external |
Permitir la entrada a la aplicación desde fuera de su entorno de Container Apps. | true o false (predeterminado) |
Sí |
ipSecurityRestrictions |
Restricciones de entrada IP. Consulte Configuración de restricciones de entrada de IP | Una matriz de reglas | No |
stickySessions.affinity |
Habilita afinidad de sesión. | none (valor predeterminado), sticky |
No |
targetPort |
El puerto en el que escucha el contenedor para las solicitudes entrantes. | Establezca este valor en el número de puerto que usa el contenedor. Para la entrada HTTP, el punto de conexión de entrada de la aplicación siempre se expone en el puerto 443 . |
Sí |
traffic |
Las ponderaciones de división de tráfico entre revisiones. | Una matriz de reglas | No |
transport |
Tipo de protocolo de transporte. | Automático (valor predeterminado) detecta HTTP/1 o HTTP/2, http para HTTP/1, http2 para HTTP/2, tcp para TCP. |
No |
Habilitación de la entrada
Puede configurar la entrada para la aplicación contenedora mediante la CLI de Azure, una plantilla de ARM o Azure Portal.
Este comando az containerapp ingress enable
habilita la entrada para la aplicación contenedora. Debe especificar el puerto de destino y, opcionalmente, puede establecer el puerto expuesto si el tipo de transporte es 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
:
Opción | Propiedad | Descripción | Valores | Obligatorio |
---|---|---|---|---|
--type |
external | Permitir la entrada a la aplicación desde cualquier lugar o limitar la entrada a su entorno interno de Container Apps. | external o internal |
Sí |
--allow-insecure |
allowInsecure | Permitir conexiones HTTP a la aplicación. | No | |
--target-port |
targetPort | El puerto en el que escucha el contenedor para las solicitudes entrantes. | Establezca este valor en el número de puerto que usa el contenedor. El punto de conexión de entrada de la aplicación siempre se expone en el puerto 443 . |
Sí |
--exposed-port |
exposedPort | (solo entrada TCP) Un puerto para la entrada TCP. Si external es true , el valor debe ser único en el entorno de Container Apps si la entrada es externa. |
Número de puerto de 1 a 65535 . (no puede ser 80 ni 443 ) |
No |
--transport |
transport | Tipo de protocolo de transporte. | Automático (valor predeterminado) detecta HTTP/1 o HTTP/2, http para HTTP/1, http2 para HTTP/2, tcp para TCP. |
No |
Habilite la entrada para la aplicación contenedora mediante el portal.
Puede habilitar la entrada al crear la aplicación de contenedor o habilitar la entrada para una aplicación de contenedor existente.
- Para configurar la entrada al crear la aplicación contenedora, seleccione Entrada en la pestaña App Configuration del Asistente para creación de la aplicación contenedora.
- Para configurar la entrada para una aplicación contenedora existente, seleccione Entrada en el menú Configuración de la página de recursos de la aplicación contenedora.
Habilitación de la entrada para la aplicación contenedora:
Puede configurar la entrada al crear la aplicación contenedora mediante Azure Portal.
- Establezca Entrada en Habilitado.
- Configure las opciones de entrada de la aplicación contenedora.
- Seleccione Limitado al entorno de Container Apps para la entrada interna o Aceptar tráfico desde cualquier lugar para la entrada externa.
- Seleccione el Tipo de entrada: HTTP o TCP (la entrada TCP solo está disponible en entornos configurados con una red virtual personalizada).
- Si HTTP está seleccionado para el tipo de entrada, seleccione el Transporte: Auto, HTTP/1 o HTTP/2.
- Seleccione Conexiones no seguras si quiere permitir conexiones HTTP a la aplicación.
- Escriba el puerto de destino para la aplicación contenedora.
- Si ha seleccionado TCP para la opción Transporte, escriba el puerto expuesto para la aplicación contenedora. El número de puerto expuesto puede estar entre
1
y65535
. (no puede ser80
ni443
)
La página de configuración de entrada de la aplicación contenedora también le permite configurar restricciones de IP. Para obtener información sobre cómo configurar la restricción de IP, consulte restricciones de IP.
Habilite la entrada para la aplicación contenedora mediante la propiedad de configuración ingress
. Establezca la propiedad external
en true
y establezca las propiedades transport
y targetPort
.
- La propiedad external
se puede establecer en true para entradas externas y en false para entradas internas.
- Establezca
transport
enauto
para detectar HTTP/1 o HTTP/2,http
para HTTP/1,http2
para HTTP/2 otcp
para TCP. - Establezca
targetPort
con el número de puerto que usa el contenedor. El punto de conexión de entrada de la aplicación siempre se expone en el puerto443
. - Establezca la propiedad
exposedPort
si el tipo de transporte estcp
en un puerto para la entrada TCP. El valor debe ser único en el entorno de Container Apps si la entrada es externa. Número de puerto de1
a65535
. (no puede ser80
ni443
)
{
...
"configuration": {
"ingress": {
"external": true,
"transport": "tcp",
"targetPort": 80,
"exposedPort": 8080,
},
}
}
Deshabilitar la entrada
Deshabilite la entrada para la aplicación contenedora mediante el comando az containerapp ingress
.
az containerapp ingress disable \
--name <app-name> \
--resource-group <resource-group> \
Puede deshabilitar la entrada de la aplicación contenedora mediante el portal.
- Seleccione Entrada en el menú Configuración de la página de la aplicación contenedora.
- Anule la selección del valor Entrada Habilitado.
- Seleccione Guardar.
Deshabilite la entrada de la aplicación contenedora omitiendo completamente la propiedad de configuración ingress
de properties.configuration
.
Uso de otros puertos TCP
Puede exponer puertos TCP adicionales desde la aplicación. Para más información, consulte el artículo Concepto de entrada.
Nota:
Para usar esta característica, debe tener la extensión de la CLI de aplicaciones contenedoras. Ejecute az extension add -n containerapp
para instalar la versión más reciente de la extensión de la CLI de aplicaciones contenedoras.
Puede agregar otros puertos TCP a través de la CLI haciendo referencia a un archivo YAML con las configuraciones de puerto TCP.
az containerapp create \
--name <app-name> \
--resource-group <resource-group> \
--yaml <your-yaml-file>
A continuación se muestra un archivo YAML de ejemplo al que puede hacer referencia en el comando de la CLI anterior. La configuración de los puertos TCP adicionales está en 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 la sección Puertos TCP adicionales en el panel Entrada.
- Agregue puertos TCP adicionales en los que la aplicación aceptará tráfico en el campo Puerto de destino. Si Puerto expuesto se deja vacío, tomará del mismo valor establecido en Puerto de destino.
- Cambie el campo Tráfico de entrada según sea necesario. Esto configurará dónde se limitará el tráfico de entrada para cada puerto.
- Cuando termine, haga clic en Guardar.
La siguiente plantilla de ARM proporciona un ejemplo de cómo puede agregar puertos adicionales a las aplicaciones contenedoras. Cada puerto adicional debe agregarse en additionalPortMappings
dentro de la sección ingress
para configuration
dentro de properties
para la aplicación contenedora. A continuación se muestra un ejemplo:
{
...
"properties": {
...
"configuration": {
"ingress": {
...
"additionalPortMappings": [
{
"external": false
"targetPort": 80
"exposedPort": 12000
}
]
}
}
...
}