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 Airflow.

Información acerca de las operaciones de actualización

En Cloud Composer 3, no administras la versión de Cloud Composer de tu entorno:

  • Cloud Composer actualiza de forma automática los componentes de la infraestructura de tu entorno. Estos componentes están relacionados con la funcionalidad de Cloud Composer y no cambian la forma en que funciona Airflow ni se ejecutan tus DAG de Airflow.
  • Cloud Composer no actualiza de forma automática la versión y compilación de Airflow, los componentes de Airflow o los componentes estrechamente relacionados con las cargas de trabajo de Airflow. No se modifican cuando los componentes de la infraestructura se actualizan de forma automática.
  • Puedes actualizar a una versión o compilación nueva de Airflow de forma manual.

Por ejemplo, puedes usar la misma versión y compilación de Airflow durante varios meses, sin realizar ninguna actualización, y tu entorno seguirá recibiendo las actualizaciones, las correcciones y las mejoras más recientes de Cloud Composer de los componentes de la infraestructura del entorno. Cuando luego decidas migrar a una versión o compilación nueva de Airflow, deberás actualizar la versión de Airflow en tu entorno.

Acerca de la actualización de la versión de Airflow

Tu entorno cambia la versión o compilación de Airflow de la siguiente manera:

  • Tú controlas la versión (y la compilación) de Airflow de tu entorno. Puedes realizar la operación de actualización de la versión de Airflow cuando elijas cambiar tu entorno a una versión diferente de Airflow. Por ejemplo, esto podría suceder si la versión y la compilación actuales de Airflow ya no son compatibles.

  • Cloud Composer vuelve a implementar los componentes de Airflow de tu entorno mediante la versión y la compilación de Airflow especificadas. Por ejemplo, una versión nueva puede incluir diferentes versiones de paquetes preinstalados, parches de Cloud Composer o cambios en la funcionalidad de Airflow, que proporciona el proyecto de código abierto de Airflow en esta versión.

  • Cloud Composer aplica cambios de configuración de Airflow, como paquetes de PyPI personalizados o anulaciones de opciones de configuración de Airflow, si tu entorno los tenía antes de la actualización.

  • Cloud Composer actualiza la conexión airflow_db de Airflow para apuntar a la nueva base de datos de Cloud SQL.

  • Cambiar la versión de Airflow 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.

Información acerca de las operaciones de actualización automática de la infraestructura

Cloud Composer ejecuta operaciones de actualización automática de infraestructura de forma periódica:

  • Las operaciones de actualización automática de la infraestructura se ejecutan de forma periódica durante los períodos de mantenimiento especificados para el entorno.

  • No es posible inhabilitar las actualizaciones automáticas de infraestructura en Cloud Composer 3. Puedes controlar los períodos en los que se pueden ejecutar las actualizaciones automáticas si especificas períodos de mantenimiento personalizados para el entorno.

  • Esta operación se puede ver en la consola de Google Cloud y en los registros del entorno, como cualquier otra operación de larga duración. Mientras se ejecuta la operación, no puedes iniciar otras operaciones a nivel del entorno (pero puedes ejecutar DAG de Airflow).

  • Las actualizaciones automáticas de infraestructura no interrumpen los componentes de Airflow ni las tareas de Airflow que ya están en ejecución. Una actualización puede generar un corto período de falta de disponibilidad para los componentes de la infraestructura del entorno, como la supervisión del entorno.

Antes de comenzar

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

  • Puedes verificar las versiones de los paquetes del proveedor que se incluyen en una versión específica. Para obtener más información sobre los cambios, consulta Notas de la versión.

  • No puedes cambiar a una versión anterior de Airflow.

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

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

  • 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.

  • 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 a la que actualices debe ser compatible con la versión de Python actual de tu entorno.

Comprueba que tu entorno esté actualizado

Cloud Composer muestra advertencias cuando la compilación de Airflow de tu entorno se acerca a la fecha de finalización de la compatibilidad. Puedes usar estas advertencias para que tu entorno siempre sea compatible.

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 y la compilación de Airflow en la que se basa tu entorno. Cuando se acerque la 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 entorno está actualizado, 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. 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.

gcloud

Esta funcionalidad no está disponible a través de Google Cloud CLI. En su lugar, puedes Ver las actualizaciones disponibles, que muestra las versiones nuevas disponibles.

API

Esta funcionalidad no está disponible mediante la API. En su lugar, puedes Ver las actualizaciones disponibles, que muestra las versiones nuevas disponibles.

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 las 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 para una ubicación. Para hacerlo, 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 si hay 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 versión o compilación nueva de Airflow.

Una verificación correcta significa que no hay conflictos en las dependencias de paquetes de PyPI entre la versión actual y la especificada. Sin embargo, 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 Environment version upgrade, en la lista desplegable New version, selecciona una versión o compilación de Airflow a la que desees 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 o compilación de Airflow a la que deseas actualizar.

gcloud beta composer environments check-upgrade \
  ENVIRONMENT_NAME \
  --location LOCATION \
  --airflow-version VERSION

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • LOCATION por la región en la que se encuentra el entorno
  • VERSION por la versión y la compilación nuevas de Airflow a la que deseas actualizar, en el formato airflow-x.y.z-build.t También puedes usar todos los alias de la versión.

Ejemplo:

gcloud beta composer environments check-upgrade example-environment \
  --location us-central1 \
  --airflow-version airflow-2.7.3-build.0

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-3-airflow-2.7.3-build.0. 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": "VERSION"
}

Reemplaza VERSION por la versión nueva a la que deseas actualizar, en formato composer-3-airflow-x.y.z-build.t.

Actualiza tu entorno

Para actualizar tu entorno a una versión o compilación nueva de 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. Busca el elemento Versión de la imagen y haz clic en Actualizar.

  5. En el menú desplegable Versión con imágenes, selecciona una versión o compilación de Airflow a la que desees actualizar.

  6. Haz clic en Actualizar.

gcloud

gcloud beta composer environments update \
  ENVIRONMENT_NAME \
  --location LOCATION \
  --airflow-version VERSION

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • LOCATION por la región en la que se encuentra el entorno
  • VERSION por la versión y la compilación nuevas de Airflow a la que deseas actualizar, en el formato airflow-x.y.z-build.t También puedes usar todos los alias de la versión.

Por ejemplo:

gcloud beta composer environments update
  example-environment \
  --location us-central1 \
  --airflow-version airflow-2.7.3-build.0

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, especifica una versión nueva a la que desees actualizar.

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-3-airflow-2.7.3-build.0"
      }
    }
  }

Terraform

El campo image_version del bloque config.software_config controla la versión y la compilación de Airflow de tu entorno. En este campo, especifica una versión y compilación nuevas de Airflow.

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

  config {
    software_config {
      image_version = "VERSION"
    }
  }
}

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • LOCATION por la región en la que se encuentra el entorno la versión y compilación nuevas de Airflow a las que deseas actualizar, en el formato airflow-x.y.z-build.t. También puedes usar todos los alias de la versión.

Ejemplo:

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

  config {
    software_config {
      image_version = "airflow-2.7.3-build.0"
    }
  }
}

¿Qué sigue?