Configuración de correlaciones de dominio personalizadas para la función

Las correlaciones de dominio proporcionan la ruta de URL a la función Code Engine dentro de un proyecto. Con Code Engine, estas correlaciones se crean automáticamente, de forma predeterminada, siempre que despliegue la función. Sin embargo, puede correlacionar su propio dominio personalizado con una función Code Engine para direccionar las solicitudes desde el URL personalizado a la función desde la consola o CLI de Code Engine.

Si desea dirigir la función con un dominio de su propiedad, puede utilizar una correlación de dominios personalizada. Cuando se establece una correlación de dominio personalizado en Code Engine, se define una correlación de 1-to-1 entre el nombre de dominio completo (FQDN) y una función Code Engine en el proyecto.

Una correlación de dominio personalizada sólo debe apuntar a una correlación. Sin embargo, puede configurar varias correlaciones de dominio para una sola función.

Puede crear como máximo 80 correlaciones de dominio personalizadas por proyecto. Consulte Cuotas de proyecto.

Al crear una correlación de dominio personalizado en Code Engine, el nombre de dominio que utilice en la correlación debe ser exclusivo en la región.

Para crear y configurar correlaciones de dominio personalizadas, siga estos pasos:

  1. Revise las Consideraciones antes de utilizar correlaciones de dominio personalizadas en Code Engine.
  2. Obtener el dominio personalizado de un registrador de dominio (fuera de Code Engine).
  3. Configure una correlación de dominio personalizado en Code Engine para la función (desde la consola o CLI de Code Engine).
  4. Complete la configuración de dominio personalizado con el registrador de dominio. (fuera de Code Engine).

Supongamos que desea crear una correlación de dominio personalizada para www.example.com y shop.example.com. En este caso, debe crear una correlación de dominio personalizada para cada dominio o subdominio exclusivo. Sin embargo, puede reutilizar el mismo secreto TLS para varias correlaciones de dominio personalizadas si los certificados del secreto TLS incluyen el dominio especificado en la correlación de dominio personalizada. Esto significa que puede correlacionar un secreto TLS con varios dominios, como www.example.com y shop.example.com, o con un dominio comodín como *.example.com.

Configuración de correlaciones de dominio personalizadas desde la consola

Puede crear una correlación de dominio personalizada con la función Code Engine en el nombre de dominio registrado con la consola Code Engine.

Antes de empezar

En este escenario, cree una correlación de dominio personalizada con una función con un secreto TLS. Por ejemplo, cree una correlación de dominio personalizada para correlacionar el dominio www.example.com con la función myfunction.

  1. Desde la Code Engine Proyectos, vaya a su proyecto.

  2. En la página Visión general, pulse Correlaciones de dominio.

  3. En la página Correlaciones de dominio, pulse Crear para crear la correlación.

  4. En la página Crear una correlación de dominio, especifique el secreto TLS que se utilizará con esta correlación de dominio. Code Engine valida si el certificado está firmado por una CA de confianza y si el certificado coincide con el nombre de dominio personalizado y la clave privada proporcionados.

    Para crear un nuevo secreto TLS,

    1. Pulse Crear.
    2. Añada el certificado TLS, incluidos todos los certificados intermedios, que están asociados con el dominio. Si el certificado se le proporciona como archivos separados, concatene el contenido de los archivos. Puede proporcionar esta información en un archivo.
    3. Añada la clave privada correspondiente a su certificado. Puede proporcionar esta información en un archivo.

    Formato de ejemplo para una cadena de certificados

    -----BEGIN CERTIFICATE-----
    ...certificate...
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    ...intermediate-certificate...
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    ...intermediate-certificate...
    -----END CERTIFICATE-----
    

    O, para utilizar un secreto TLS existente,

    1. Pulse Seleccionar.
    2. Seleccione el secreto existente en la lista que desea utilizar.
  5. Especifique el nombre de dominio y el componente de destino.

    • Especifique el nombre de dominio completo para el nombre de dominio personalizado; por ejemplo, www.example.com.
    • Seleccione una función de destino existente; por ejemplo, myfunction. Para este ejemplo, la función myfunction utiliza la imagen de ejemplo icr.io/codeengine/helloworld. Para obtener más información sobre el código que se utiliza para este ejemplo, consulte helloworld.
    • Observe el campo Destino CNAME. Este valor es la entrada CNAME que es necesaria cuando se completa la configuración de dominio personalizado con el registrador de dominio para que el tráfico que tiene como destino el dominio personalizado se direccione a la función especificada.
  6. Pulse Crear para crear la correlación de dominios personalizada.

Ahora tiene una correlación de dominio que se crea en Code Engine. Sin embargo, las solicitudes que se envían a la función no se direccionan (todavía) al dominio personalizado. A continuación, complete la configuración de dominio personalizado con el registrador de dominio.

Supongamos que desea crear una correlación de dominio personalizada para www.example.com y shop.example.com. En este caso, debe crear una correlación de dominio personalizada para cada dominio o subdominio exclusivo. Sin embargo, puede reutilizar el mismo secreto TLS para varias correlaciones de dominio personalizadas si el secreto TLS incluye la certificación para el dominio que se especifica en la correlación de dominio personalizada. El secreto TLS puede contener certificados que se correlacionan con varios dominios específicos, como www.example.com y shop.example.com, o un dominio comodín como *.example.com. Tenga en cuenta que no puede utilizar el dominio comodín más de una vez dentro de una región.

Configuración de correlaciones de dominio personalizadas con la CLI

Para crear una correlación de dominios personalizada con la CLI, utilice el mandato domainmapping create. Este mandato requiere un nombre de dominio completo (FQDN), como por ejemplo www.example.com, una función de destino y un secreto TLS. Para obtener una lista completa de opciones, consulte el comando ibmcloud ce domainmapping create.

Antes de empezar

Cuando el nombre de dominio está registrado, tiene un certificado TLS firmado y su clave privada coincidente para este dominio, y tiene una función Code Engine existente, está preparado para añadir una correlación de dominio personalizada. Puede utilizar el mandato domainmapping create en la CLI para crear una correlación de dominio personalizada con la función Code Engine.

  1. Cree un secreto TLS con el certificado TLS firmado y la clave privada. En este ejemplo, el archivo mycert.txt contiene el certificado TLS, incluidos todos los certificados intermedios, que están asociados con el dominio. Si el certificado se le proporciona como archivos separados, concatene el contenido de los archivos. El archivo myprivatekey.txt contiene la clave privada coincidente que corresponde a la cadena de certificados.

    ibmcloud ce secret create --name mytlssecret --format tls --cert-chain-file  mycertchain.txt --private-key-file myprivatekey.txt
    

    Salida de ejemplo

    Creating tls secret 'mytlssecret'...
    OK
    
  2. Cree la correlación de dominio personalizado entre la función Code Engine myfunction y el dominio personalizado, www.example.com. Utilice el secreto TLS que ha creado en el paso anterior.

    ibmcloud ce domainmapping create --domain-name www.example.com --target myhellofun --tls-secret mytlssecret
    

    Salida de ejemplo

    OK
    Domain mapping successfully created.
    

La siguiente tabla resume las opciones que se utilizan con el comando domainmapping create en este ejemplo. Para obtener más información sobre el comando y sus opciones, consulte el comando ibmcloud ce domainmapping create.

Descripción del mandato
Opción Descripción
--domain-name El nombre de la asignación de dominio personalizada. Especifique el nombre del dominio personalizado, como por ejemplo www.example.com. Este valor es obligatorio.
--target El nombre de la función Code Engine de destino. Este valor es obligatorio.
--tls-secret Secreto TLS de la correlación de dominios. Este valor es obligatorio.

Ahora la correlación de dominios personalizada se crea en Code Engine. Sin embargo, las solicitudes que se envían a la función no se direccionan (todavía) al dominio personalizado. A continuación, debe completar la configuración de dominio personalizado con el registrador de dominio.

Completar la configuración de dominio personalizado con el registrador de dominio

Después de crear la correlación de dominio personalizado Code Engine, se debe añadir un registro CNAME que coincida con el nombre de dominio completo a los valores DNS del dominio personalizado. Puede encontrar los valores de DNS en los valores de configuración del registrador de dominio correspondiente. Realice este paso para que el tráfico que tiene como destino el dominio personalizado se direccione a la función Code Engine tal como se define en la correlación de dominio personalizado Code Engine.

Prueba del dominio personalizado

Después de completar la configuración de dominio personalizado con el registrador de dominio y de que se publiquen las actualizaciones de registro CNAME, puede probar la función con la correlación de dominio personalizado.

Con un navegador, llame a la función dirigiéndose al dominio personalizado con el mandato curl.

curl -v -X GET https://www.example.com

La salida de la llamada al dominio personalizado se correlaciona con la función myhellofun, que utiliza la imagen de ejemplo icr.io/codeengine/helloworld.