Configura tareas

En este documento, se describe cómo configurar tareas en Cloud Deploy. Una tarea es una unidad de trabajo que se puede usar como un gancho de implementación, para la verificación de la implementación, para el análisis de la implementación o para una renderización personalizada o una implementación personalizada en un tipo de destino personalizado.

Puedes configurar una tarea en la canalización de entrega (como parte de la estrategia) o en la renderización o implementación del tipo de destino personalizado.

Con las tareas, puedes usar parámetros del sistema si los incluyes en la configuración de la tarea como plantillas.

Cómo definir una tarea

Puedes definir una tarea en la configuración de tu canalización de entrega o como parte de una definición de tipo de destino personalizado. El siguiente código YAML muestra la sección task que se usa en ambos casos:

  task:
    type: container
    image: IMAGE
    command: [COMMANDS_TO_RUN]
    args: [LIST_OF_ARGS]
    env:
    - KEY1:VAL1
    - KEY2:VAL2
    ...

Para la configuración de task, haz lo siguiente:

  • type

    Especifica el tipo de tarea que se configura. Solo se admite container.

  • image

    Es la ruta de acceso a la imagen del contenedor.

  • command

    Es el comando o los comandos que se ejecutarán en el contenedor.

  • args

    Es una colección de argumentos para command.

  • env

    Es una colección de variables de entorno que se proporcionarán al contenedor en ejecución.

Parámetros del sistema como variables de entorno de la tarea

Cloud Deploy ofrece parámetros generados por el sistema que puedes usar como variables de entorno en tus tareas, con el campo env en la tarea container. Los parámetros basados en plantillas pueden estar presentes en los campos de clave o valor de una entrada de mapa env.

Estos son algunos ejemplos de casos de uso:

  • Pasar el nombre del servicio de Cloud Run, la URL del servicio y el nombre de la revisión como variables de entorno

    task:
      type: container
      image: my-image
      command: ["/bin/bash"]
      env:
      - RUN_SERVICE_NAME : "${{ render.metadata.cloud_run.service.name }}"
      - RUN_SERVICE_URL: "${{ rollout.metadata.cloud_run.service_url }}"
      - RUN_REVISION_NAME: "${{ render.metadata.cloud_run.revision.name }}"
    
  • Usar varios parámetros en una sola entrada

    task:
      type: container
      image: my-image
      command: ["/bin/bash"]
      env:
      - DEPLOY_PARAMS_KEY : "${{ deploy_params['FOO'] }}-with-${{ deploy_params['BAR'] }}"
      - "${{ project.id }}_${{ location }}" : "${{ target.id }}"
    

Parámetros del sistema disponibles

Cloud Deploy proporciona los siguientes parámetros del sistema que puedes usar en la configuración de tus tareas con este formato:

${{ parameter }}

$${{ }}

A continuación, se muestra la lista de parámetros disponibles para la creación de plantillas:

Nombre Definición
location Es la región que contiene los recursos de Cloud Deploy.
Disponible en la creación de la versión.
project.num Número del proyecto Google Cloud que contiene los recursos de Cloud Deploy.
Disponible en la creación de la versión.
project.id ID del proyecto Google Cloud .
Disponible en la creación de la versión.
delivery_pipeline.name Es el nombre del recurso completamente especificado de la canalización de entrega.
Disponible en la creación de la versión.
delivery_pipeline.id Es el ID de la canalización de entrega.
Disponible en la creación de la versión.
target.name Es el nombre del recurso de destino especificado por completo.
Disponible en la creación de la versión.
target.id Es el ID del objetivo.
Disponible en la creación de la versión.
release.name Es el nombre del recurso de la versión especificado por completo.
Disponible en la creación de la versión.
release.id Es el ID de la versión.
Disponible en la creación de la versión.
rollout.name Es el nombre del recurso de la versión completamente especificado.
Disponible en la creación del lanzamiento.
rollout.id Es el ID de la versión.
Disponible en la creación del lanzamiento.
job.id Es el ID del trabajo que se está ejecutando.
Disponible en la creación del lanzamiento.
phase.id La fase de la versión que contiene el trabajo para las tareas.
Disponible en la creación del lanzamiento.
job_run.name Es el nombre del recurso completamente especificado de la ejecución del trabajo que representa la ejecución actual del trabajo.
Disponible en la creación del lanzamiento.
job_run.id ID de la ejecución del trabajo que representa la ejecución actual del trabajo.
Disponible en la creación del lanzamiento.
deploy_params Es un mapa de los parámetros de implementación asociados con el destino.
Ejemplo: deploy_params['KEY']
Si intentas acceder a una clave que no existe, se generará una cadena vacía.
Disponible en la creación de la versión.
Para los destinos de tipo RUN, se aplica lo siguiente:
cloud_run.project Es el proyecto en el que se creó el servicio de Cloud Run.
Disponible en la creación de la versión.
cloud_run.location Región en la que se implementa el servicio de Cloud Run.
Disponible en la creación de la versión.
render.metadata.cloud_run.service.name Nombre del servicio de Cloud Run implementado.
Disponible después de que se completa la operación de renderización.
render.metadata.cloud_run.service.id Es el ID del servicio de Cloud Run implementado.
Disponible después de que se completa la operación de renderización.
rollout.metadata.cloud_run.service.url Es la URL que los usuarios finales usarán para acceder a tu servicio. Puedes encontrarlos en los detalles del servicio de Cloud Run de tu servicio, en la consola de Google Cloud .
Disponible después de que se complete la operación de implementación.
render.metadata.cloud_run.revision.name Es el nombre completo de la revisión del servicio de Cloud Run que se implementa.
Disponible después de que se completa la operación de renderización.
render.metadata.cloud_run.revision.id Es el ID de revisión del servicio de Cloud Run que se implementará.
Disponible después de que se completa la operación de renderización.
rollout.metadata.cloud_run.previous_revision.name Es el nombre completo de la revisión anterior del servicio de Cloud Run que se implementa.
Disponible después de que se complete la operación de implementación.
rollout.metadata.cloud_run.previous_revision.id Es el ID de revisión anterior del servicio de Cloud Run que se está implementando.
Disponible después de que se complete la operación de implementación.
Para los destinos de tipo GKE, se aplica lo siguiente:
gke.cluster.name Es el nombre del recurso completamente especificado del clúster de GKE.
Disponible en la creación de la versión.
gke.cluster.id