Actualizar entornos

Cloud Composer 1 | Cloud Composer 2

En esta página, se describe cómo actualizar tu entorno a una versión nueva de Cloud Composer o Airflow.

Acerca de las operaciones de actualización

Cuando cambias la versión de Airflow o Cloud Composer que usa tu entorno, este se actualiza.

La actualización no cambia la forma en que te conectas a los recursos de tu entorno, como la URL del bucket de tu entorno o el servidor web de Airflow.

Durante una actualización, Cloud Composer realiza las siguientes acciones:

  1. Vuelve a implementar los componentes de tu entorno con versiones nuevas de las imágenes de Cloud Composer.
  2. Aplica cambios de configuración de Airflow, como paquetes personalizados de PyPI o anulaciones de opciones de configuración de Airflow, si tu entorno los tenía antes de la actualización.
  3. Actualiza la conexión airflow_db de Airflow para que apunte a la nueva base de datos de Cloud SQL.

Antes de comenzar

  • La actualización está en versión preliminar. Usa esta función con precaución en los entornos de producción.

  • No puedes pasar a una versión anterior de Cloud Composer o Airflow.

  • Recomendamos crear una instantánea nueva del entorno para poder volver a crearlo en caso de que sea necesario.

  • Puedes actualizar la versión de Cloud Composer, la versión de Airflow o ambas al mismo tiempo.

  • Puedes actualizar desde cualquier versión de Cloud Composer solo a la versión más reciente, a tres versiones anteriores de Cloud Composer y a versiones con un cronograma de actualización extendido.

  • Para actualizar a versiones diferentes a la más reciente de Cloud Composer, usa Google Cloud CLI, la API o Terraform. En la consola de Google Cloud, solo puedes actualizar a la versión más reciente.

  • No es posible actualizar a una versión principal diferente de Cloud Composer o Airflow local. Puedes transferir los DAG y la configuración de forma manual entre entornos. Para obtener más información, consulta:

  • Debes tener una función que pueda activar las operaciones de actualización del entorno. Además, la cuenta de servicio del entorno debe tener una función que tenga suficientes permisos para realizar operaciones de actualización. Para obtener más información, consulta Control de acceso.

  • Para obtener la lista de paquetes de PyPI en una versión a la que deseas actualizar, consulta la lista de versiones de Cloud Composer.

  • No puedes actualizar el entorno si la base de datos de Airflow contiene más de 16 GB de datos. Durante una actualización, se muestra una advertencia si el tamaño de la base de datos de Airflow es superior a 16 GB. En este caso, realiza el mantenimiento de la base de datos para reducir su tamaño.

  • La versión con imágenes que actualices debe ser compatible con la versión de Python actual de tu entorno.

  • Asegúrate de que tus DAG sean compatibles con la versión de Airflow y con todos los paquetes de proveedores (incluido el paquete del proveedor de Airflow para los servicios de Google y Google Cloud). Puedes verificar las versiones de los paquetes del proveedor que se incluyen en una versión específica de Cloud Composer.

  • En la consola de Google Cloud, ve a la página IAM y administración > Cuotas y límites del sistema y verifica si no se supera la cuota de Compute Engine Engine API para CPU. Si te estás acercando al umbral de cuota, solicita la extensión de cuota antes de continuar con la operación de actualización.

  • Se pueden actualizar a las últimas tres versiones publicadas de Cloud Composer o a una de las versiones de “compatibilidad extendida de actualización”, como se describe en Versiones de Cloud Composer.

Comprueba que tu entorno esté actualizado

Cloud Composer muestra advertencias cuando la imagen de tu entorno se acerca a la fecha de finalización. Puedes usar estas advertencias para mantener siempre tus entornos en todo el período de compatibilidad.

Se muestra un mensaje de baja en la página de detalles del entorno
Figura 1. Se muestra un mensaje de baja en la página de detalles del entorno

Cloud Composer realiza un seguimiento de la versión con imágenes de Cloud Composer en la que se basa tu entorno. Cuando la imagen se acerque a su fecha de finalización de la compatibilidad, podrás ver una advertencia en la lista de entornos y en la página Detalles del entorno.

Para comprobar si tu imagen de entorno está actualizada, haz lo siguiente:

Console

  1. En la consola de Google Cloud, ve a la página Entornos.

    Ir a Entornos

  2. En la lista de entornos, haz clic en el nombre de tu entorno. Se abrirá la página Detalles del entorno.

  3. Ve a la pestaña Configuración del entorno.

  4. En el campo Versión de la imagen, se muestra uno de los siguientes mensajes:

    • Versión disponible más reciente: Tu imagen de entorno es totalmente compatible.

    • Nueva versión disponible: La imagen de tu entorno es completamente compatible y puedes actualizarla a una versión posterior.

    • La compatibilidad con esta versión de imagen finaliza en… La imagen del entorno se acerca al final del período de asistencia completa.

    • Esta versión no es compatible desde… Tu entorno pasó el período de asistencia completa.

Ver actualizaciones disponibles

Para ver las versiones de Cloud Composer a las que puedes actualizar, sigue estos pasos:

Console

  1. En la consola de Google Cloud, ve a la página Entornos.

    Ir a Entornos

  2. En la lista de entornos, haz clic en el nombre de tu entorno. Se abrirá la página Detalles del entorno.

  3. Ve a la pestaña Configuración del entorno y haz clic en Actualizar versión de imagen.

  4. Para ver la lista de versiones disponibles, haz clic en el menú desplegable Versión con imágenes de Cloud Composer.

gcloud

gcloud beta composer environments list-upgrades \
  ENVIRONMENT_NAME \
  --location LOCATION

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • LOCATION por la región en la que se encuentra el entorno

Ejemplo:

gcloud beta composer environments list-upgrades example-environment \
  --location us-central1

API

Puedes ver las versiones disponibles de una ubicación. Para ello, crea una solicitud a la API de imageVersions.list.

Por ejemplo:

// GET https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/imageVersions

Verifica los conflictos de paquetes de PyPI antes de la actualización

Puedes verificar si los paquetes de PyPI instalados en tu entorno tienen conflictos con los paquetes preinstalados en la imagen nueva de Cloud Composer.

Una verificación correcta significa que no hay conflictos de dependencia de paquetes de PyPI entre la versión actual y la especificada. Ten en cuenta que una operación de actualización puede no tener éxito por otros motivos.

Console

Para ejecutar una verificación de actualización en tu entorno, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Entornos.

    Ir a Entornos

  2. En la lista de entornos, haz clic en el nombre de tu entorno. Se abrirá la página Detalles del entorno.

  3. Ve a la pestaña Configuración del entorno, busca la entrada Versión con imágenes y haz clic en Actualizar.

  4. En el cuadro de diálogo Actualización de la versión del entorno, en la lista desplegable Versión nueva, selecciona la versión de Cloud Composer a la que deseas actualizar.

  5. En la sección Compatibilidad de paquetes de PyPI, haz clic en Verificar la presencia de conflictos.

  6. Espera hasta que se complete la verificación. Si hay conflictos de dependencia de paquetes de PyPI, los mensajes de error que se muestran contienen detalles sobre los paquetes y las versiones de paquetes en conflicto.

gcloud

Para ejecutar una verificación de actualización de tu entorno, ejecuta el comando environments check-upgrade con la versión de imagen de Cloud Composer a la que deseas actualizar.

gcloud beta composer environments check-upgrade \
    ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version COMPOSER_IMAGE

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • LOCATION por la región en la que se encuentra el entorno
  • COMPOSER_IMAGE por la nueva versión de imagen de Cloud Composer a la que deseas actualizar, en el formato composer-a.b.c-airflow-x.y.z.

Ejemplo:

gcloud beta composer environments check-upgrade example-environment \
  --location us-central1 \
  --image-version composer-1.20.12-airflow-1.10.15

Resultado de ejemplo:

Waiting for [projects/example-project/locations/us-central1/environments/
example-environment] to be checked for PyPI package conflicts when upgrading
to composer-1.20.12-airflow-1.10.15. Operation [projects/example-project/locations/
us-central1/operations/04d0e8b2-...]...done.
...

Response:
'@type': type.googleapis.com/
google.cloud.orchestration.airflow.service.v1beta1.CheckUpgradeResponse
buildLogUri: https://console.cloud.google.com/cloud-build/builds/79738aa7-...
containsPypiModulesConflict: CONFLICT
pypiConflictBuildLogExtract: |-
The Cloud Build image build failed: Build failed; check build logs for
details. Full log can be found at https://console.cloud.google.com/
cloud-build/builds/79738aa7-...
Error details: tensorboard 2.2.2 has requirement
setuptools>=41.0.0, but you have setuptools 40.3.0.

Como alternativa, puedes ejecutar una verificación de actualización de forma asíncrona. Usa el argumento --async para realizar una llamada asíncrona y, luego, verifica el resultado con el comando gcloud composer operations describe.

API

Realiza una solicitud a la API de environments.checkUpgrade.

Especifica la versión con imágenes en el campo imageVersion:

{
  "imageVersion": "COMPOSER_IMAGE"
}

Reemplaza COMPOSER_IMAGE por la versión de imagen de Cloud Composer nueva a la que deseas actualizar, en el formato composer-a.b.c-airflow-x.y.z.

Actualiza tu entorno

Para actualizar tu entorno a una versión posterior de Cloud Composer o Airflow, sigue estos pasos:

Console

  1. En la consola de Google Cloud, ve a la página Entornos.

    Ir a Entornos

  2. En la lista de entornos, haz clic en el nombre de tu entorno. Se abrirá la página Detalles del entorno.

  3. Ve a la pestaña Configuración del entorno.

  4. Ubica el elemento Versión con imagen y haz clic en Actualizar.

  5. En el menú desplegable Versión de la imagen, selecciona una versión.

  6. Haz clic en Actualizar.

gcloud

gcloud beta composer environments update \
  ENVIRONMENT_NAME \
  --location LOCATION \
  --image-version COMPOSER_IMAGE

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • LOCATION por la región en la que se encuentra el entorno
  • COMPOSER_IMAGE por la versión de imagen de Cloud Composer nueva a la que deseas actualizar, en el formato composer-a.b.c-airflow-x.y.z.

Por ejemplo:

gcloud beta composer environments update
  example-environment \
  --location us-central1 \
  --image-version composer-1.20.12-airflow-1.10.15

API

  1. Crea una solicitud a la API Beta de environments.patch.

  2. En esta solicitud, realiza lo siguiente:

    1. En el parámetro updateMask, especifica la máscara config.softwareConfig.imageVersion.

    2. En el cuerpo de la solicitud, en el campo imageVersion, la versión de imagen de Cloud Composer nueva a la que deseas actualizar, en el formato composer-a.b.c-airflow-x.y.z.

Por ejemplo:

// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.imageVersion

  {
    "config": {
      "softwareConfig": {
        "imageVersion": "composer-1.20.12-airflow-1.10.15"
      }
    }
  }

Terraform

El campo image_version en el bloque config.software_config controla la imagen de Cloud Composer de tu entorno. En este campo, especifica una imagen nueva de Cloud Composer.

  resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    software_config {
      image_version = "COMPOSER_IMAGE"
    }
  }
}

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • LOCATION por la región en la que se encuentra el entorno
  • COMPOSER_IMAGE por la versión de imagen de Cloud Composer nueva a la que deseas actualizar, en el formato composer-a.b.c-airflow-x.y.z.

Ejemplo:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {
    software_config {
      image_version = "composer-1.20.12-airflow-1.10.15"
    }
  }
}

¿Qué sigue?