Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las configuraciones de ruta HTTP admiten dominios personalizados, lo que le permite enrutar el tráfico desde sus propios nombres de dominio a las aplicaciones de contenedor.
Prerrequisitos
- Un entorno de Azure Container Apps existente
- Un dominio personalizado que tú posees
- Certificado SSL para el dominio (a menos que use certificados automáticos)
- Aplicaciones de contenedores implementadas en tu entorno
Configuración de dominio personalizada
Con el proveedor DNS que hospeda el dominio, cree los registros DNS adecuados para su dominio personalizado.
Si usa el dominio raíz (por ejemplo,
contoso.com
), cree los siguientes registros DNS:Tipo de registro Anfitrión Importancia A @
La dirección IP del entorno de Container Apps. TXT asuid
El código de verificación de dominio. Si usa un subdominio (por ejemplo,
www.contoso.com
), cree los siguientes registros DNS:Tipo de registro Anfitrión Importancia A El subdominio (por ejemplo, www
)La dirección IP del entorno de Container Apps. TXT asuid.{subdomain}
(por ejemplo,asuid.www
)El código de verificación de dominio.
Nota:
La dirección IP del entorno de Container Apps y el código de verificación del dominio se pueden encontrar en la configuración de sufijo DNS personalizado del entorno de Container Apps.
No enlace el dominio personalizado al entorno de Container Apps ni a una aplicación de contenedor. Los dominios solo están enlazados a una aplicación, ruta o entorno.
Configuración de la ruta
Actualice el archivo YAML de Container Apps para incluir una customDomains
sección. Incluya un bindingType
y un certificateId
, según los criterios siguientes.
valor bindingType | Descripción |
---|---|
Deshabilitado | No se proporciona ningún certificado. El dominio solo está disponible a través de HTTP y HTTPS no está disponible. |
Coche | Un certificado es opcional. Si ya se ha creado un certificado administrado para este dominio, se agrega automáticamente a la ruta. De lo contrario, el dominio solo está disponible inicialmente a través de HTTP. Para crear un certificado administrado para este dominio, cree un nuevo certificado administrado una vez que se haya creado la ruta. Una vez creado el certificado, se agrega automáticamente a la ruta. |
SniEnabled | Se requiere un certificado. |
Tipo de certificado | formato certificateId |
---|---|
Ninguno | Dejar en blanco. |
Administrado | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{ContainerAppEnvironmentName}/managedCertificates/{CertificateFriendlyName} |
No administrado | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/managedEnvironments/{ContainerAppEnvironmentName}/certificates/{CertificateFriendlyName} |
Nota:
Para agregar un certificado a su entorno, use uno de los métodos siguientes:
- Para agregar un certificado administrado de Container Apps, use el comando az containerapp env certificate create de la CLI.
- Para traer su propio certificado existente, use el comando az containerapp env certificate upload de la CLI.
No enlace el certificado a una aplicación contenedora.
En el ejemplo siguiente se muestra cómo configurar la configuración de ruta.
customDomains:
- name: "<CUSTOM_DOMAIN_ENDPOINT>"
certificateId: "<CERTIFICATE_ID>"
bindingType: "SniEnabled" # Can also be "Disabled", "Auto"
rules:
- description: "Routing to App1"
routes:
- match:
prefix: "/1"
action:
prefixRewrite: "/"
targets:
- containerApp: "<APP1_CONTAINER_APP_NAME>"
- description: "Routing to App2"
routes:
- match:
prefix: "/2"
action:
prefixRewrite: "/"
- match:
prefix: "/"
targets:
- containerApp: "<APP2_CONTAINER_APP_NAME>"
Esta configuración define dos reglas de enrutamiento para el tráfico HTTP.
Propiedad | Descripción |
---|---|
customDomains.name |
Nombre de dominio que desea usar (ejemplo: "app.contoso.com") |
customDomains.certificateId |
Id. de recurso del certificado (no necesario con bindingType: "Auto" ) |
customDomains.bindingType |
Cómo se controla SSL: "SniEnabled" (indicación de nombre de servidor), "Deshabilitado" (solo HTTP) o "Automático" (certificado automático) |
description |
Etiqueta legible para la regla |
routes.match.prefix |
Prefijo de ruta de dirección URL que debe coincidir. Por ejemplo: /api . |
routes.action.prefixRewrite |
Con qué reemplazar el prefijo coincidente antes de reenviar. |
targets.containerApp |
Nombre de la aplicación contenedora donde se envía la solicitud de ruta coincidente. |
Estas reglas permiten rutas de acceso diferentes en el dominio personalizado para enrutar a diferentes aplicaciones de contenedor, al mismo tiempo que modifican la ruta de acceso de la solicitud antes de llegar a la aplicación de destino.
Otras propiedades no enumeradas que pueden afectar a las rutas incluyen lo siguiente.
Propiedad | Descripción |
---|---|
route.match.path |
Definición de ruta de coincidencia exacta. |
route.match.pathSeparatedPrefix |
Coincide con las rutas en los límites "/" en lugar de cualquier texto. Por ejemplo, si establece el valor en /product , coincidirá con /product/1 , pero no con /product1 . |
route.match.caseSensitive |
Controla si los patrones de ruta coinciden o no con mayúsculas y minúsculas. |
target.label |
Enrutar a una revisión etiquetada específica dentro de una aplicación contenedora. |
target.revision |
Enrutar a una revisión específica dentro de una aplicación contenedora. |
Trabaja con la configuración de ruta
Use los siguientes comandos para administrar la configuración de ruta.
Antes de ejecutar los siguientes comandos, asegúrese de reemplazar los marcadores de posición rodeados por <>
por sus propios valores.
Creación de una nueva configuración de ruta
Use az containerapp env http-route-config create
para crear una nueva configuración de ruta.
az containerapp env http-route-config create \
--resource-group <RESOURCE_GROUP_NAME> \
--name <ENVIRONMENT_NAME> \
--http-route-config-name <CONFIGURATION_NAME> \
--yaml <CONTAINER_APPS_CONFIG_FILE>
Enumerar configuraciones de ruta
Use az containerapp env http-route-config list
para enumerar todas las configuraciones de ruta definidas.
az containerapp env http-route-config list \
--resource-group <RESOURCE_GROUP_NAME> \
--name <ENVIRONMENT_NAME>
Actualización de una configuración de ruta
Use az containerapp env http-route-config update
para actualizar una configuración de ruta existente.
az containerapp env http-route-config update \
--resource-group <RESOURCE_GROUP_NAME> \
--name <ENVIRONMENT_NAME> \
--http-route-config-name <CONFIGURATION_NAME> \
--yaml <CONTAINER_APPS_CONFIG_FILE>
Mostrar una configuración de ruta específica
Use az containerapp env http-route-config show
para ver los detalles de una configuración de ruta.
az containerapp env http-route-config show \
--resource-group <RESOURCE_GROUP_NAME> \
--name <ENVIRONMENT_NAME> \
--http-route-config-name <CONFIGURATION_NAME>
Eliminación de una configuración de ruta
Use az containerapp env http-route-config delete
para eliminar una configuración de ruta.
az containerapp env http-route-config delete \
--resource-group <RESOURCE_GROUP_NAME> \
--name <ENVIRONMENT_NAME> \
--http-route-config-name <CONFIGURATION_NAME>
Comprobación del enrutamiento HTTP
Después de configurar el dominio personalizado con enrutamiento basado en reglas:
Vaya al dominio personalizado en un explorador. Por ejemplo:
https://app.contoso.com/1
.Compruebe que la solicitud se enruta a la primera aplicación contenedora.
Cambie la ruta de acceso a
/2
. Por ejemplo:https://app.contoso.com/2
.Compruebe que la solicitud ahora se ha enrutado a la segunda aplicación de contenedores.
Contenido relacionado
- Enrutamiento basado en reglas en Azure Container Apps
- Nombres de dominio personalizados y certificados administrados gratuitos
- Referencia de la CLI de Azure para la configuración de rutas HTTP
Sugerencia
¿Tiene problemas? Háganoslo saber en GitHub abriendo un problema en el repositorio de Azure Container Apps.