IBM Cloud Docs
Actualización de la app

Actualización de la app

Una aplicación contiene una o varias revisiones. Una revisión representa una versión inmutable de las propiedades de configuración de la aplicación. Cada actualización de una propiedad de configuración de la aplicación crea una nueva revisión de la aplicación.

Al modificar una aplicación y desplegarla con los cambios, o volver a desplegar la aplicación sin cambios en sus valores de configuración, estas acciones despliegan una nueva revisión de la aplicación. Al desplegar (o volver a desplegar) una revisión de aplicación, Code Engine utiliza los valores de configuración cambiados y obtiene cualquier imagen de contenedor, secreto o mapa de configuración actualizados a los que hace referencia la aplicación.

Para obtener más información sobre el despliegue de aplicaciones como, por ejemplo, la especificación de válidas vCPU y combinaciones de memoria, la definición de mandatos y argumentos, variables de entorno, secretos o mapas de configuración, consulte Opciones para desplegar una app.

Code Engine tiene una cuota para el número de aplicaciones y revisiones de app en un proyecto. Para obtener más información sobre los límites de los proyectos, consulte Cuotas de proyecto. Code Engine solo conserva la última revisión inactiva de la aplicación además de la revisión de la aplicación activa. Las revisiones más antiguas se suprimen.

Puede actualizar la aplicación desplegada y su código referenciado de varias formas, independientemente de cómo haya creado o actualizado previamente la aplicación:

  • Si tiene una imagen de contenedor, según el estándar de Open Container Initiative(OCI), solo debe proporcionar una referencia a la imagen, que apunta a la ubicación del registro de contenedor al desplegar la app. Puede desplegar la app con una imagen en un registro público o registro privado.

    Si ha creado la app utilizando el mandato app create y ha especificado la opción --build-source para crear la imagen de contenedor desde el origen local o de repositorio, y desea cambiar la app para que apunte a una imagen de contenedor diferente, primero debe eliminar la asociación de la compilación de la app. Por ejemplo, ejecute ibmcloud ce application update -n APP_NAME --build-clear. Después de eliminar la asociación de la compilación de la app, puede actualizar la app para que haga referencia a una imagen diferente.

  • Si está empezando con un código fuente que reside en un repositorio de Git, puede dejar que Code Engine se encargue de compilar la imagen desde el código fuente y desplegar la aplicación con una única operación. En este caso de ejemplo, Code Engine carga la imagen en IBM Cloud® Container Registry. Para obtener más información, consulte Despliegue de la aplicación a partir del código fuente del repositorio. Si desea tener más control sobre la compilación de la imagen, puede elegir compilar la imagen con Code Engine antes de desplegar la aplicación.

  • Si está empezando con un código fuente que reside en una estación de trabajo local, puede dejar que Code Engine se encargue de compilar la imagen desde el código fuente y desplegar la aplicación con un único mandato de CLI. En este caso de ejemplo, Code Engine carga la imagen en IBM Cloud® Container Registry. Para obtener más información, consulte Despliegue de la aplicación a partir del código fuente local con la CLI. Si desea tener más control sobre la compilación de la imagen, puede elegir compilar la imagen con Code Engine antes de desplegar la aplicación.

Por ejemplo, puede dejar que Code Engine maneje la compilación del código fuente local mientras avanza en el desarrollo del código fuente para la aplicación. Una vez que la imagen ha madurado, puede actualizar la aplicación desplegada para que haga referencia a la imagen específica que desee. Puede repetir este proceso según sea necesario.

Cuando despliega la aplicación actualizada, se descarga y se despliega la última versión de la imagen de contenedor referenciada, a menos que se especifique una etiqueta para la imagen. Si se especifica una etiqueta para la imagen, se utiliza la imagen etiquetada para el despliegue.

¿Qué pasa si quiero volver a desplegar mi aplicación sin cambiar los valores de configuración?

Siempre puede desplegar la aplicación con cambios de configuración cambiando un valor de configuración y desplegando la aplicación.

Sin embargo, es posible que desee volver a desplegar una revisión de aplicación sin cambiar los valores de configuración de la aplicación. Quizás la imagen de contenedor referenciada haya cambiado y desee que la revisión de la aplicación utilice la imagen de contenedor actualizada. O, quizás desee que la aplicación haga referencia a un secreto o configmap, que contiene valores de contenido actualizados.

Para estos escenarios, en la consola, puede pulsar Volver a desplegar en el separador Configuración de la página de la aplicación, sin cambiar la configuración de la app. Con la CLI, utilice el mandato ibmcloud ce app update.

Actualización de la app desde la consola

Actualice la aplicación que ha creado en Despliegue de una aplicación desde un registro público desde la consola para añadir una variable de entorno.

  1. Vaya a la página de la aplicación. Una forma de ir a la página de la aplicación es la siguiente:
    • Localice la página de proyectos deCode Engine.
    • Pulse el nombre del proyecto para abrir la página Visión general.
    • Pulse Aplicaciones para abrir una lista de sus aplicaciones. Pulse el nombre de su aplicación para que se abra la página de la aplicación.
  2. En la página de la aplicación, puede ver información sobre las instancias en ejecución de la aplicación y sus revisiones, los detalles de configuración y los valores de puntos finales de la aplicación. Pulse el nombre de la revisión de la aplicación con la que desea trabajar para abrir el resumen de configuración de dicha revisión. O bien, puede pulsar el separador Configuración para abrir el resumen de configuración para la última revisión de la aplicación.
  3. En la pestaña Configuración, pulse la pestaña Variables de entorno.
  4. Pulse Añadir variable de entorno. Defina esta variable de entorno como valor literal. Especifique TARGET para el nombre y Stranger para el valor. Pulse Añadir.
  5. Pulse Desplegar para guardar el cambio y desplegar la revisión de la aplicación.
  6. Después de que el estado de la aplicación cambie a Preparado, puede probar la revisión de la aplicación. Pulse Probar aplicación y, a continuación, pulse Enviar solicitud en el panel Probar aplicación. Para abrir la aplicación en una página web, pulse URL de aplicación. Para esta aplicación, se muestra Hello Stranger.

En este ejemplo, ha actualizado las variables de entorno para una aplicación. También puede actualizar otros valores de configuración para la app, incluida la referencia a una imagen distinta o compilación de imágenes distinta del separador Código . En la pestaña Recursos y escalado, puede actualizar los valores de memoria y escalado de aplicaciones para la app. En el separador Variables de entorno, puede añadir o actualizar variables de entorno para la app. En la pestaña Opciones de inicio de imagen, puede añadir o actualizar mandato y argumentos para alterar temporalmente los valores dentro de la imagen de contenedor, o trabajar con análisis de actividad y preparación.

Actualización de la aplicación para utilizar puntos finales de solo proyecto desde la consola

De forma predeterminada, cuando despliega una aplicación, la aplicación se despliega de forma que puede recibir solicitudes del Internet público, de una red privada o de componentes del proyecto. Vamos a cambiar la visibilidad de esta aplicación de modo que solo puedan acceder a ella otros recursos de Code Engine que se ejecuten en el mismo entorno de Code Engine. Utilice la pestaña Correlaciones de dominio para cambiar la visibilidad de una aplicación.

  1. Vaya a la página de la aplicación. Una forma de ir a la página de la aplicación es la siguiente:

    • Localice la página de proyectos deCode Engine.
    • Pulse el nombre del proyecto para abrir la página Visión general.
    • Pulse Aplicaciones para abrir una lista de sus aplicaciones. Pulse el nombre de su aplicación para que se abra la página de la aplicación.
  2. En la página de la aplicación, puede ver información sobre las instancias en ejecución de la aplicación y sus revisiones, los detalles de configuración y los valores de puntos finales de la aplicación. Pulse el separador Correlaciones de dominio para abrir los valores de visibilidad de punto final para la aplicación.

  3. En la pestaña Correlaciones de dominio, observe los URL disponibles para la aplicación. Cuando se selecciona Public, puede ver el URL público y el dominio del sistema interno para la aplicación. Cuando se selecciona Sin correlación de dominio de sistema externo, ya no se puede acceder a esta aplicación desde Internet público y el acceso a la red solo es posible desde los componentes de este proyecto.

    Cuando cambia la visibilidad de la app, el cambio entra en vigor inmediatamente. Es importante tener en cuenta el impacto del cambio para sus integraciones o usuarios activos, así como cualquier implicación en la seguridad. Puede cambiar el valor de visibilidad según sea necesario.

Actualizar la aplicación para utilizar puntos finales privados desde la consola

De forma predeterminada, cuando despliega una aplicación, la aplicación se despliega de forma que puede recibir solicitudes del Internet público, de una red privada o de componentes del proyecto. Cambiaremos la visibilidad de esta aplicación de modo que sólo se acceda a ella a través de otros recursos de Code Engine que se ejecuten en el mismo proyecto y desde la red privada utilizando puntos finales privados virtuales. Utilice la pestaña Correlaciones de dominio para cambiar la visibilidad de una aplicación.

  1. Vaya a la página de la aplicación. Una forma de ir a la página de la aplicación es la siguiente:

    • Localice la página de proyectos deCode Engine.
    • Pulse el nombre del proyecto para abrir la página Visión general.
    • Pulse Aplicaciones para abrir una lista de sus aplicaciones. Pulse el nombre de su aplicación para que se abra la página de la aplicación.
  2. En la página de la aplicación, puede ver información sobre las instancias en ejecución de la aplicación y sus revisiones, los detalles de configuración y los valores de puntos finales de la aplicación. Pulse el separador Correlaciones de dominio para abrir los valores de visibilidad de punto final para la aplicación.

  3. En la pestaña Correlaciones de dominio, observe los URL disponibles para la aplicación. Cuando Private está seleccionado, esta aplicación ya no es accesible desde el Internet público y el acceso a la red solo es posible desde los componentes de este proyecto (locales del clúster) y desde la red privada.

    Pulse Solo-Proyecto para cambiar la visibilidad de los puntos finales de la aplicación. Los URL disponibles para la definición de puntos finales se muestran para los URL privados y los URL solo de proyecto.

  4. Para acceder a la aplicación de forma segura utilizando un punto final privado virtual (VPE), siga las instrucciones de Utilización del VPE para acceder a una aplicación para configurar el VPE para acceder a la aplicación.

Si establece la aplicación para visibility = private, solo puede probar la aplicación a través del punto final privado virtual desde su VPC (Virtual Private Cloud).

Si cambia la visibilidad de su aplicación, el cambio es efectivo inmediatamente. Es importante tener en cuenta el impacto del cambio para sus integraciones o usuarios activos, así como cualquier implicación en la seguridad. Puede cambiar el valor de visibilidad según sea necesario.

Actualización de la app con la CLI

Para actualizar la app con la CLI, utilice el mandato app update. Este mandato necesita el nombre de la app que desea actualizar y también permite otros argumentos opcionales. Para ver una lista completa de opciones, consulte el mandato ibmcloud ce app update.

Actualice la aplicación que ha creado en Despliegue de una aplicación con la CLI para añadir una variable de entorno.

La imagen icr.io/codeengine/hello de ejemplo lee la variable de entorno TARGET e imprime Hello ${TARGET}. Si esta variable de entorno está vacía, se devuelve Hello World. En el siguiente ejemplo se actualiza la app para cambiar el valor de la variable de entorno TARGET por Stranger. Para obtener más información sobre el código que se utiliza para este ejemplo, consulte hello.

  1. Ejecute el mandato application update. Por ejemplo:

    ibmcloud ce application update -n myapp --env TARGET=Stranger
    

    Salida de ejemplo

    Updating application 'myapp' to latest revision.
    [...]
    Run 'ibmcloud ce application get -n myapp' to check the application status.
    OK
    
    https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud    
    
  2. Ejecute el mandato application get para ver el estado de la app, incluida la información de revisión más reciente.

    ibmcloud ce application get --name myapp  
    

    Salida de ejemplo

    [...]
    Name:          myapp
    [...]
    URL:           https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud
    Cluster Local URL:  http://myapp.4svg40kna19.svc.cluster.local
    Console URL:   https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myapp/configuration
    
    Environment Variables:
    Type     Name    Value
    Literal  TARGET  Stranger
    Image:                  icr.io/codeengine/hello
    Resource Allocation:
    CPU:                1
    Ephemeral Storage:  400M
    Memory:             4G
    
    Revisions:
    myapp-hc3u8-2:
        Age:                82s
        Traffic:            100%
        Image:              icr.io/codeengine/hello (pinned to f0dc03)
        Running Instances:  1
    
    Runtime:
    Concurrency:    100
    Maximum Scale:  10
    Minimum Scale:  0
    Timeout:        300
    
    Conditions:
    Type                 OK    Age  Reason
    ConfigurationsReady  true  75s
    Ready                true  62s
    RoutesReady          true  62s
    
    Events:
    Type    Reason   Age    Source              Messages
    Normal  Created  2m11s  service-controller  Created Configuration "myapp"
    Normal  Created  2m11s  service-controller  Created Route "myapp"
    
    Instances:
    Name                                       Revision       Running  Status       Restarts  Age
    myapp-hc3u8-1-deployment-65cf8cd4f5-jx8b8  myapp-hc3u8-1  1/2      Terminating  0         2m10s
    myapp-hc3u8-2-deployment-7f98b679d5-2hskr  myapp-hc3u8-2  2/2      Terminating  0         85s
    

    En la salida de la sección Revisions, verá la última revisión de la aplicación del servicio myapp. Observe también que el 100 % del tráfico a la aplicación ejecuta la última revisión de la app.

  3. Llame a la aplicación.

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

    Salida de ejemplo

    Hello Stranger
    

    En la salida de este mandato, puede ver que la app actualizada ahora muestra Hello Stranger.

  4. Utilice el mandato ibmcloud ce revision list para visualizar todas las revisiones de la aplicación. Utilice esta información para ayudarle a gestionar las revisiones de la app, ya que Code Engine tiene una cuota para el número de revisiones de app en un proyecto.

    En la siguiente salida de revision list, observe que Code Engine solo retiene la revisión inactiva más reciente de la aplicación, además de la revisión activa de la app. Las revisiones más antiguas se suprimen.

    ibmcloud ce revision list
    

    Salida de ejemplo

    Listing all application revisions...
    OK
    
    Name                   Application      Status  URL  Latest  Tag  Traffic  Age    Conditions  Reason
    myapp-hc3u8-4           myapp            Ready                            2d15h    3 OK / 4
    myapp-hc3u8-5           myapp            Ready        true         100%    2d8h    3 OK / 4  
    myapp2-vjfqt-1          myapp2           Ready        true         100%      3d    3 OK / 4
    myhelloapp-tv368-3      myhelloapp       Ready                              16d    3 OK / 4
    myhelloapp-tv368-4      myhelloapp       Ready        true         100%     16d    3 OK / 4
    newapp-mytest-00008     newapp-mytest    Ready                              4d17h  3 OK / 4
    newapp-mytest-00009     newapp-mytest    Ready        true         100%     2d20h  3 OK / 4
    

Puede gestionar las revisiones de apps utilizando el mandato ibmcloud ce revision get para mostrar detalles de una revisión de la app y el mandato ibmcloud ce revision delete para eliminar revisiones que no desea conservar. También se puede utilizar el comando ibmcloud ce revision logs para ver registros de instancias de revisión de aplicación. Utilice el comando ibmcloud ce revision events para visualizar sucesos del sistema de instancias de revisión de aplicación.

Actualización de la aplicación para utilizar puntos finales de solo proyecto con la CLI

De forma predeterminada, cuando despliega una aplicación, la aplicación se despliega de forma que puede recibir solicitudes del Internet público, de una red privada o de componentes del proyecto. Para cambiar la visibilidad de la app de forma que solo accedan a ella otros recursos de Code Engine que se estén ejecutando en el mismo proyecto, utilice la opción --visibility=project con el mandato ibmcloud ce app update o ibmcloud ce app create.

En este caso de ejemplo, actualice la aplicación que ha creado en Despliegue de una aplicación con la CLI para cambiar la visibilidad de la aplicación para utilizar un punto final de proyecto.

  1. Ejecute el mandato application update. Por ejemplo:

    ibmcloud ce application update -n myapp --visibility=project
    

    Salida de ejemplo

    Updating application 'myapp' to latest revision.
    [...]
    Run 'ibmcloud ce application get -n myapp' to check the application status.
    OK
    
    http://myapp.4svg40kna19.svc.cluster.local   
    
  2. Ejecute el mandato application get para ver el estado de la app, incluida la información de revisión más reciente.

    ibmcloud ce application get --name myapp  
    

    Salida de ejemplo

    [...]
    Name:          myapp
    [...]
    URL:           http://myapp.4svg40kna19.svc.cluster.local
    Cluster Local URL:  http://myapp.4svg40kna19.svc.cluster.local
    Console URL:   https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myapp/configuration
    
    Environment Variables:
    Type     Name    Value
    Literal  TARGET  Stranger
    Image:                  icr.io/codeengine/hello
    Resource Allocation:
    CPU:                1
    Ephemeral Storage:  400M
    Memory:             4G
    
    Revisions:
    myapp-hc3u8-2:
        Age:                82s
        Traffic:            100%
        Image:              icr.io/codeengine/hello (pinned to f0dc03)
        Running Instances:  1
    
    Runtime:
    Concurrency:    100
    Maximum Scale:  10
    Minimum Scale:  0
    Timeout:        300
    
    Conditions:
    Type                 OK    Age  Reason
    ConfigurationsReady  true  75s
    Ready                true  62s
    RoutesReady          true  62s
    
    Events:
    Type    Reason   Age    Source              Messages
    Normal  Created  2m11s  service-controller  Created Configuration "myapp"
    Normal  Created  2m11s  service-controller  Created Route "myapp"
    
    Instances:
    Name                                       Revision       Running  Status       Restarts  Age
    myapp-hc3u8-1-deployment-65cf8cd4f5-jx8b8  myapp-hc3u8-1  1/2      Terminating  0         2m10s
    myapp-hc3u8-2-deployment-7f98b679d5-2hskr  myapp-hc3u8-2  2/2      Terminating  0         85s
    

    En la salida de la sección Revisions, verá la última revisión de la aplicación del servicio myapp. Observe también que el 100 % del tráfico a la aplicación ejecuta la última revisión de la app.

Ahora que ha establecido --visibility=project en la aplicación, esta aplicación ya no es accesible desde el Internet público y el acceso a la red solo es posible desde los componentes de este proyecto (locales del clúster).

Actualización de la aplicación para utilizar puntos finales privados con la CLI

De forma predeterminada, cuando despliega una aplicación, la aplicación se despliega de forma que puede recibir solicitudes del Internet público, de una red privada o de componentes del proyecto. Puede establecer la visibilidad de punto final para su aplicación de modo que se despliegue con un punto final privado. Establecer un punto final privado significa que la aplicación no es accesible desde el Internet público y el acceso a la red solo es posible desde otros servicios de IBM Cloud desde puntos finales privados virtuales (VPC) o componentes de Code Engine que se ejecutan en el mismo proyecto (de forma local en el clúster).

Para cambiar la visibilidad de la app de forma que solo se acceda a ella con un punto final privado, utilice la opción --visibility=private con el mandato ibmcloud ce app update o ibmcloud ce app create.

Sólo puede utilizar el VPE para acceder a la aplicación con un punto final privado si el proyecto seleccionado admite visibilidad privada de aplicación. Para confirmar si el proyecto admite visibilidad privada de aplicación, utilice el mandato ibmcloud ce project get para verificar que la salida de Application Private Visibility Supported está establecida en true.

En este caso de ejemplo, actualice la aplicación que ha creado en Despliegue de una aplicación con la CLI para cambiar la visibilidad de la aplicación para utilizar un punto final privado.

  1. 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:  true  
    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
    
  2. Si Application Private Visibility Supported es true, puede actualizar la aplicación para que utilice puntos finales privados. Ejecute el mandato application update. Por ejemplo:

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

    Salida de ejemplo

    Updating application 'myapp' to latest revision.
    [...]
    Run 'ibmcloud ce application get -n myapp' to check the application status.
    OK
    
    https://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud
    
  3. Ejecute el mandato application get para ver el estado de la app, incluida la información de revisión más reciente.

    ibmcloud ce application get --name myapp  
    

    Salida de ejemplo

    [...]
    Name:          myapp
    [...]
    URL:           https://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud
    Cluster Local URL:  http://myapp.4svg40kna19.svc.cluster.local
    Console URL:   https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myapp/configuration
    
    Environment Variables:
    Type     Name    Value
    Literal  TARGET  Stranger
    Image:                  icr.io/codeengine/hello
    Resource Allocation:
    CPU:                1
    Ephemeral Storage:  400M
    Memory:             4G
    
    Revisions:
    myapp-hc3u8-2:
        Age:                82s
        Traffic:            100%
        Image:              icr.io/codeengine/hello (pinned to f0dc03)
        Running Instances:  1
    
    Runtime:
    Concurrency:    100
    Maximum Scale:  10
    Minimum Scale:  0
    Timeout:        300
    
    Conditions:
    Type                 OK    Age  Reason
    ConfigurationsReady  true  75s
    Ready                true  62s
    RoutesReady          true  62s
    
    Events:
    Type    Reason   Age    Source              Messages
    Normal  Created  2m11s  service-controller  Created Configuration "myapp"
    Normal  Created  2m11s  service-controller  Created Route "myapp"
    
    Instances:
    Name                                       Revision       Running  Status       Restarts  Age
    myapp-hc3u8-1-deployment-65cf8cd4f5-jx8b8  myapp-hc3u8-1  1/2      Terminating  0         2m10s
    myapp-hc3u8-2-deployment-7f98b679d5-2hskr  myapp-hc3u8-2  2/2      Terminating  0         85s
    

    En la salida de la sección Revisions, verá la última revisión de la aplicación del servicio myapp. Observe también que el 100 % del tráfico a la aplicación ejecuta la última revisión de la app.

  4. Configure el VPE en acceder a la aplicación con un punto final privado.

Actualización de una app para hacer referencia a una imagen diferente

Puede actualizar la app para que haga referencia a una imagen diferente.

La imagen asociada con la revisión de aplicación específica tiene un resumen de registro de contenedor exclusivo y Code Engine utiliza este resumen durante la vida de la revisión de la aplicación. Si crea una versión más reciente de una imagen con la misma etiqueta que la imagen original, la imagen original se sobrescribe en el registro de contenedor y se descodifica. La imagen más reciente está etiquetada, y esta imagen más reciente tiene un resumen diferente. La aplicación Code Engine no utiliza esta imagen más reciente, porque la imagen más reciente tiene un resumen distinto al de la imagen a la que hace referencia la revisión de la aplicación. Code Engine todavía puede crear nuevas instancias de la revisión de la aplicación siempre que la imagen sin etiquetar, a la que se hacía referencia originalmente, siga existiendo. Para obtener más información, consulte ¿Por qué no puede Code Engine extraer una imagen?

Actualización de una app para que haga referencia a otra imagen en Container Registry desde la consola

Actualice una aplicación para que haga referencia a otra imagen en un registro de contenedores mediante la consola de Code Engine.

En este ejemplo, vamos a actualizar la app helloapp que ha creado en Despliegue de una aplicación que haga referencia a una imagen en un registro de contenedores desde la consola para que haga referencia a otra imagen. La app actualizada hace referencia a la imagen helloworld_repo en el espacio de nombres mynamespace2 en Container Registry. En los pasos siguientes se describe cómo añadir acceso a un registro durante la actualización de una app.

Para obtener más información sobre cómo añadir una imagen a Container Registry, consulte Iniciación a IBM Cloud Container Registry.

  1. Vaya a la página de la aplicación. Una forma de ir a la página de la aplicación es la siguiente:

    • Localice la página de proyectos deCode Engine.
    • Pulse el nombre del proyecto para abrir la página Visión general.
    • Pulse Aplicaciones para abrir una lista de sus aplicaciones. Pulse el nombre de la aplicación para que se abra la página de la aplicación.
  2. Pulse la pestaña Configuración para abrir los detalles de configuración para la última revisión de la aplicación.

  3. En la pestaña Configuración, pulse la pestaña Código.

  4. Para que la imagen se ejecute, pulse Configurar imagen para abrir el diálogo Configurar imagen. Para este ejemplo, actualice la app para que haga referencia a un registro ibmcregistry existente, seleccione el espacio de nombres mynamespace2, seleccione la imagen helloworld-repo y seleccione 1 como valor para tag. Desde la página de configuración de la imagen,

    • Si la imagen que desea utilizar reside en la misma cuenta de Container Registry, seleccione el acceso para el registro.
    • Si la imagen que desea utilizar reside en una cuenta de registro de contenedor distinta, puede seleccionar el acceso de registro para este registro. Si el acceso de registro no existe, primero debe crear la clave de API de IAM y, a continuación, Añadir acceso de registro a Code Engine.

    Si desea actualizar sólo el acceso de registro a la imagen, puede realizar este cambio sin pulsar Configurar imagen para abrir el diálogo Configurar imagen y utilizar el menú de acceso Registro para seleccionar un acceso de registro existente o crear un acceso de registro a Code Engine para la imagen a la que hace referencia la aplicación.

  5. Pulse Listo. Ha seleccionado la imagen del registro a la que se hará referencia en su app.

  6. Pulse Desplegar para guardar el cambio y desplegar la revisión de la app.

  7. Después de que el estado de la aplicación cambie a Preparado, puede probar la revisión de la aplicación. Pulse Probar aplicación y, a continuación, pulse Enviar solicitud en el panel Probar aplicación. Para abrir la aplicación en una página web, pulse URL de aplicación. Para esta aplicación, se muestra Hello World from Code Engine.

Actualización de una app para que haga referencia a otra imagen en Container Registry con la CLI

Actualice una aplicación para que haga referencia a otra imagen en Container Registry desde la CLI de Code Engine.

Para este ejemplo, actualice la myhelloapp que ha creado en Despliegue de una aplicación que haga referencia a una imagen en un registro de contenedores con la CLI para que haga referencia a otra imagen en un espacio de nombres diferente en la misma cuenta. Actualice la app para que haga referencia a la imagen helloworld_repo en el espacio de nombres mynamespace2 en Container Registry.

  1. Añada otra imagen a Container Registry. Para este ejemplo, añada la imagen helloworld_repo en el espacio de nombres mynamespace2 en Container Registry. Para obtener más información sobre cómo añadir una imagen a Container Registry, consulte Iniciación a IBM Cloud Container Registry.

  2. Añada de acceso de registro a Code Engine. Para este ejemplo, debido a que la imagen helloworld_repo reside en la misma cuenta, utilice el acceso de registro myregistry definido anteriormente.

  3. Actualice la app y haga referencia a la imagen en Container Registry utilizando el acceso myregistry. Por ejemplo, actualice la app myhelloapp para que haga referencia a us.icr.io/mynamespace2/helloworld_repo utilizando la información de acceso de myregistry.

    ibmcloud ce app update --name myhelloapp --image us.icr.io/mynamespace2/helloworld_repo:1 --registry-secret myregistry
    

    El formato del nombre de la imagen correspondiente a esta aplicación es REGISTRY/NAMESPACE/REPOSITORY:TAG, donde REGISTRY y TAG son opcionales. Si no se especifica REGISTRY, el valor predeterminado es docker.io. Si no se especifica TAG, el valor predeterminado es latest.

  4. Una vez actualizada la app, puede acceder a la app. Para obtener el URL de su app, ejecute ibmcloud ce app get --name myhelloapp --output url. Cuando se ejecuta curl de la app myhelloapp, la app devuelve Hello World from Code Engine, que muestra que la app está utilizando la imagen helloworld_repo.

Actualización de una app para hacer referencia a una imagen compilada a partir del código fuente desde la consola

Actualice una aplicación para que haga referencia a una imagen compilada a partir del código fuente utilizando la consola de Code Engine.

Para este ejemplo, actualice la helloapp que ha creado en Despliegue de una aplicación que haga referencia a una imagen en un registro de contenedores desde la consola para que haga referencia a una imagen compilada a partir del código fuente.

Para obtener más información sobre la creación de una configuración de compilación desde la consola, consulte crear una compilación.

  1. Vaya a la página de la aplicación. Una forma de ir a la página de la aplicación es la siguiente:
    • Localice la página de proyectos deCode Engine.
    • Pulse el nombre del proyecto para abrir la página Visión general.
    • Pulse Aplicaciones para abrir una lista de sus aplicaciones. Pulse el nombre de la aplicación para que se abra la página de la aplicación.
  2. Pulse la pestaña Configuración para abrir los detalles de configuración para la última revisión de la aplicación.
  3. En la pestaña Configuración, pulse la pestaña Código.
  4. En el separador Código, puede crear una compilación de imagen o puede volver a ejecutar una compilación de imagen existente a la que hace referencia la aplicación. Para crear una compilación de imagen, pulse Crear imagen desde el origen para ejecutar una compilación de imagen. Se abre la página Especificar detalles de compilación, donde puede especificar los detalles de la compilación para desplegar la app desde el código fuente. Pulse Listo cuando se especifiquen las actualizaciones de los detalles de la compilación.
  5. Pulse Desplegar para guardar los cambios, ejecutar la compilación y desplegar la revisión de la app.
  6. Después de que el estado de la aplicación cambie a Preparado, puede probar la revisión de la aplicación. Pulse Probar aplicación y, a continuación, pulse Enviar solicitud en el panel Probar aplicación. Para abrir la aplicación en una página web, pulse URL de aplicación.
  7. Para actualizar esta aplicación de nuevo para hacer referencia a una imagen de compilación actualizada, pulse Volver a ejecutar compilación en la pestaña Código y especifique una etiqueta de imagen exclusiva para la imagen de compilación actualizada. Si desea realizar más cambios en los detalles de la compilación, pulse Editar detalles de compilación. Se abre la página Especificar detalles de compilación, donde puede especificar los detalles de la compilación para desplegar la app desde el código fuente. Pulse Listo cuando se especifiquen las actualizaciones de los detalles de la compilación.
  8. Pulse Desplegar para guardar los cambios, ejecutar la compilación con los cambios y desplegar la revisión de la app.
  9. Después de que el estado de la aplicación cambie a Preparado, puede probar la revisión de la aplicación. Pulse Probar aplicación y, a continuación, pulse Enviar solicitud en el panel Probar aplicación. Para abrir la aplicación en una página web, pulse URL de aplicación.

Actualización de una app para hacer referencia a una imagen compilada a partir del código fuente con la CLI

Actualice una aplicación para que haga referencia a una imagen compilada a partir del código fuente utilizando la CLI de Code Engine.

Para este ejemplo, cambie la myhelloapp que ha actualizado en Actualización de una app para que haga referencia a otra imagen en con la CLI para que haga referencia a una imagen distinta que se compila a partir del código fuente.

En el ejemplo anterior, la aplicación myhelloapp hace referencia a us.icr.io/mynamespace2/helloworld_repo utilizando la información de acceso de myregistry. Vamos a crear una configuración de compilación, ejecutar la compilación y actualizar myhelloapp para que haga referencia a la imagen que se ha compilado a partir del código fuente.

  1. Cree la configuración de la compilación. Por ejemplo, el siguiente mandato build create crea una configuración de compilación denominada helloworld-build. Esta configuración compila desde el repositorio Git públicohttps://github.com/IBM/CodeEngine, utiliza la estrategia dockerfile y el tamaño de compilaciónmedium, y guarda la imagen en us.icr.io/mynamespace/codeengine-helloworld utilizando el secreto de registro de imágenes que se ha definido en myregistry.

    ibmcloud ce build create --name helloworld-build --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry --source https://github.com/IBM/CodeEngine --commit main --context-dir /hello --strategy dockerfile --size medium
    
  2. Ejecute la compilación. En este ejemplo se ejecuta una compilación denominada helloworld-build-run y utiliza la configuración de compilación helloworld-build.

    ibmcloud ce buildrun submit --build helloworld-build --name helloworld-build-run
    

    La salida siguiente muestra los detalles de la ejecución de la compilación utilizando el mandato ibmcloud ce buildrun get.

    Salida de ejemplo

    Getting build run 'helloworld-build-run'...
    [...]
    OK
    
    Name:          helloworld-build-run  
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject  
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111  
    Age:           21m  
    Created:       2021-09-30T14:50:13-05:00  
    
    Summary:  Succeeded  
    Status:   Succeeded  
    Reason:   All Steps have completed executing
    
    Image:  us.icr.io/mynamespace/codeengine-helloworld
    
    

    Para obtener más información sobre la creación de una configuración de compilación con la CLI, consulte crear una compilación.

  3. Actualice myhelloapp para hacer referencia a la imagen que ha compilado y que utiliza el secreto de registro de myregistry .

    ibmcloud ce app update --name myhelloapp --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry
    
  4. Muestra información sobre la aplicación actualizada para confirmar que la imagen a la que se hace referencia es la que se compiló.

    ibmcloud ce app get --name myhelloapp
    

    Salida de ejemplo

    [...]
    OK
    
    Name:               myhelloapp
    ID:                 abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:       myproject
    Project ID:         01234567-abcd-abcd-abcd-abcdabcd1111
    Age:                2m4s
    Created:            2021-09-09T14:01:02-04:00
    URL:                https://myhelloapp.abcdabcdabc.us-south.codeengine.appdomain.cloud
    Cluster Local URL:  http://myhelloapp.abcdabcdabc.svc.cluster.local
    Console URL:        https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myhelloapp/configuration
    Status Summary:     Application deployed successfully
    
    Environment Variables:    
        Type     Name             Value  
        Literal  CE_API_BASE_URL  https://api.us-south.codeengine.cloud.ibm.com  
        Literal  CE_APP           myhelloapp  
        Literal  CE_DOMAIN        us-south.codeengine.appdomain.cloud  
        Literal  CE_PROJECT_ID    abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
        Literal  CE_REGION        us-south  
        Literal  CE_SUBDOMAIN     abcdabcdab
    Image:                  us.icr.io/mynancesnamespace/codeengine-helloworld
    Resource Allocation:
    CPU:                1
    Ephemeral Storage:  400M
    Memory:             4G
    Registry Secrets:
    myregistry
    
    Revisions:
    helloapp-00003:
        Age:                2m46s
        Latest:             true
        Traffic:            100%
        Image:              us.icr.io/mysnamespace/codeengine-helloworld (pinned to eeca2b)
        Running Instances:  1
    [...]