Utilización de puntos finales de servicio con Code Engine

Todos los proyectos de IBM Cloud® Code Engine ofrecen integración con los puntos finales de servicio de IBM Cloud®. Este soporte le ofrece la posibilidad de conectarse desde su infraestructura clásica a las cargas de trabajo de Code Engine y permanecer dentro de la red IBM Cloud.

Puede controlar la visibilidad de las cargas de trabajo de Code Engine y especificar si exponer la aplicación o función a puntos finales públicos o privados. Se accede a una aplicación o función que está configurada para visibility = private a través de puntos finales de servicio. Las aplicaciones o funciones a las que se accede a través de un punto final de servicio no abandonan la red IBM y permanecen dentro de la red IBM Cloud.

Puntos finales públicos

Los puntos finales públicos proporcionan una conexión con su despliegue en la red pública. En el momento del suministro, un punto final público es la opción predeterminada para todos los despliegues. Es necesario que su entorno tenga acceso a Internet para conectar con un despliegue.

Puntos finales privados

Un despliegue con un punto final de servicio en la red privada obtiene un punto final al que no se puede acceder desde la Internet pública. Todo el tráfico se direcciona al hardware dedicado en los despliegues de Code Engine y permanece en la red privada de IBM Cloud. Todo el tráfico hacia y desde este punto final es gratuito y no incurre en gastos a condición de que el tráfico permanezca en IBM Cloud. Si el entorno tiene acceso a la red privada de IBM Cloud, no se necesita una conexión a Internet para conectar con su despliegue.

Code Engine los despliegues de aplicaciones con puntos finales privados son accesibles desde cualquier cuenta dentro de la red privada y el acceso a cada instancia requiere autenticación. Para restringir este acceso a direcciones IP específicas, rangos de direcciones IP, servicios IBM Cloud o VPC, configure reglas de restricción basadas en el contexto.

Gestión de recursos de Code Engine de forma segura utilizando puntos finales de servicio

  1. Especifique un proyecto de Code Engine que utilizará el punto final privado. Puede configurar un proyecto Code Engine para utilizar el punto final privado sólo con la CLI. Para crear un proyecto, utilice el mandato ibmcloud ce project create con la opción --endpoint=private.

    ibmcloud ce project create --name myproject --endpoint=private
    

    Espere hasta que el proyecto esté en estado active. Con la CLI, puede confirmar el estado del proyecto utilizando el mandato ibmcloud ce project get.

    Si desea que un proyecto de Code Engine existente utilice el punto final privado, utilice el mandato ibmcloud ce project select con la opción --endpoint=private.

    ibmcloud ce project select --name myproject --endpoint=private
    

    Para los mandatos project create y project select, si no se especifica explícitamente la opción --endpoint, el comportamiento viene determinado por el sistema. Si la CLI de IBM Cloud está conectada a private.cloud.ibm.com, el proyecto Code Engine se comporta como si --endpoint fuera private. Si la CLI de IBM Cloud está conectada a cloud.ibm.com, el proyecto Code Engine se comporta como si --endpoint fuera public.

  2. Si no ha creado un nuevo proyecto y ha seleccionado un proyecto existente, y desea que su aplicación sólo sea visible para el endpoint privado, confirme que el proyecto existente admite aplicaciones con visibilidad privada. Utilice el mandato ibmcloud ce project get para verificar que la salida de Application Private Visibility Supported está establecida en true. Si el valor es false, póngase en contacto con el equipo de soporte de IBM para habilitar esta posibilidad dentro del proyecto existente.

    ibmcloud ce project get -n myproject
    

    Salida de ejemplo

    Getting project 'myproject'...
    OK
    
    Name:                                      myproject
    ID:                         abcdabcd-abcd-abcd-abcd-f1de4aab5d5d
    Status:                                    active
    Enabled:                                   true
    Application Private Visibility Supported:  false
    Selected:                                  true
    Region:                                    us-south
    Resource Group:             default
    Service Binding Service ID: ServiceId-1234abcd-abcd-abcd-1111-1a2b3c4d5e6f
    Age:                        52d
    Created:                                   Tue, 28 Sep 2021 05:12:16 -0500
    Updated:                                   Tue, 28 Sep 2021 05:12:19 -0500
    
    Quotas:
    Category                                  Used  Limit
    App revisions                             1     60
    Apps                                      1     20
    Build runs                                1     100
    Builds                                    2     100
    Configmaps                                2     100
    CPU                                       0     64
    Ephemeral storage                         0     256G
    Instances (active)                        0     250
    Instances (total)                         0     2500
    Job runs                                  0     100
    Jobs                                      0     100
    Memory                                    0     256G
    Secrets                                   6     100
    Subscriptions (cron)                      0     100
    Subscriptions (IBM Cloud Object Storage)  0     100
    Subscriptions (Kafka)                     0     100
    
  3. Cree una aplicación o función que sólo sea visible para el endpoint privado. Utilice ibmcloud ce application create o el mandato ibmcloud ce function create con la opción --visibility=private. Alternativamente, puede utilizar la consola para crear o actualizar una aplicación o función y establecer la visibilidad de su aplicación.

    ibmcloud ce application create -n myapp --visibility=private
    

Acceso seguro a su aplicación mediante puntos finales de servicio

  1. En el proyecto Code Engine, confirme que la aplicación está configurada con un valor visibility=private. Consulte Despliegue de su aplicación con un endpoint privado.

  2. Recupere el URL de la aplicación de Code Engine que está expuesto a la red privada. El URL tiene el formato siguiente: <app>.<uuid>.private.<region>.codeengine.appdomain.cloud.

    • En la consola Code Engine, vaya a la pestaña Domain mappings de su aplicación para ver la visibilidad de una aplicación y sus URL disponibles.

    • En la CLI deCode Engine, utilice el mandato ibmcloud ce application get con la opción --option url. En el siguiente ejemplo, debido a que la visibilidad de myapp está establecida en visibility=private, al especificar --option url con este comando se envía la URL a la red privada.

      ibmcloud ce application get -n myapp -output url
      

      Salida de ejemplo

      http://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud
      
  3. Llame a la aplicación desde la red privada IBM Cloud (por ejemplo, llamando a la aplicación desde IBM Cloud Shell ).

    La aplicación myapp es una aplicación Hello World simple. Cuando se ejecuta la aplicación myapp utilizando cURL, se devuelve Hello World. Por ejemplo, desde IBM Cloud Shell, ejecute:

    curl http://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud
    

Acceso seguro a la función con puntos finales de servicio

  1. Desde su proyecto Code Engine, confirme que su función está configurada con un ajuste visibility=private. Consulte Despliegue de la función con un punto final privado.

  2. Recupera el URL de la función Code Engine que está expuesta a la red privada. El URL tiene el formato siguiente: <function>.<uuid>.private.<region>.codeengine.appdomain.cloud.

    • En la consola Code Engine, vaya a la pestaña Domain mappings de su función para ver la visibilidad de la función y sus URL disponibles.

    • En la CLI deCode Engine, utilice el mandato ibmcloud ce function get. En el siguiente ejemplo, como la visibilidad de myfunction está configurada en visibility=private, este comando envía la URL a la red privada.

      ibmcloud ce function get -n myfunction
      

      Salida de ejemplo

      http://myfunction.1abc23def19.private.us-south.codeengine.appdomain.cloud