Guarda y carga instantáneas del entorno

Cloud Composer 1 | Cloud Composer 2

En esta página, se explica cómo guardar y cargar el estado de tu entorno con instantáneas del entorno.

Puedes configurar tu entorno para que guarde instantáneas automáticamente. Para obtener más información, consulta Configura instantáneas programadas.

Información acerca de las instantáneas de entorno

Las instantáneas del entorno almacenan el estado de tu entorno. Puedes guardar y cargar instantáneas del entorno a pedido.

Puedes usar instantáneas para lo siguiente:

Cómo se almacenan las instantáneas

Una instantánea del entorno es un conjunto de archivos que describen el estado de tu entorno y almacenan la copia de seguridad de los datos del entorno.

Puedes crear varias instantáneas de tu entorno. Las instantáneas del entorno no son incrementales. Puedes usar cualquier instantánea independientemente de las demás.

Cloud Composer no borra instantáneas cuando borras el entorno.

De forma predeterminada, Cloud Composer almacena instantáneas en la carpeta snapshots/ del bucket de tu entorno. También puedes especificar una ubicación personalizada cuando creas una instantánea.

Si bien la IU de Cloud Storage muestra los datos como carpetas para mayor comodidad, los buckets funcionan en una estructura de archivos planos. Esto no cambia la forma en que se guardan y cargas las instantáneas en la consola de Google Cloud, pero tenlo en cuenta cuando realices operaciones directamente en los archivos del bucket. Para obtener más información, consulta Espacio de nombres de objetos.

Consideraciones de seguridad para las instantáneas

Para mitigar este riesgo de seguridad, puedes almacenar en Secret Manager información sensible que usan los DAG de Airflow, como claves o contraseñas. Si quieres obtener más información, consulta Configura Secret Manager para tu entorno.

Asegúrate de verificar los permisos de seguridad del bucket de tu entorno. Si almacenas instantáneas de entorno en un bucket personalizado, asegúrate de que los permisos de acceso para ella están configurados de forma correcta en tu proyecto. Cuando asignes permisos, asegúrate de que la cuenta de servicio del entorno tenga permisos suficientes para guardar y cargar instantáneas desde el bucket.

Qué datos se guardan en las instantáneas

Cloud Composer guarda los siguientes datos en instantáneas:

  • Anulaciones de configuración de Airflow.
  • Variables de entorno
  • Lista de paquetes personalizados de PyPI, como requisitos.
  • Una copia de seguridad de la base de datos de Airflow, incluidos los estados de las tareas ejecutadas y el historial de ejecuciones de DAG.
  • Una copia de seguridad de las carpetas /dags, /data y /plugins del bucket del entorno.
  • La clave fernet del entorno.
  • Otra información sobre la configuración del entorno, como su escala y los parámetros de rendimiento Cloud Composer no usa esta información cuando carga instantáneas.

Qué datos se cargan de las instantáneas

Cloud Composer carga los siguientes datos desde las instantáneas:

  • Anulaciones de configuración de Airflow.
  • Variables de entorno
  • Paquetes personalizados de PyPI (a menos que decidas omitir su instalación)

  • El contenido de la base de datos de Airflow, incluidos los estados de las tareas ejecutadas y el historial de ejecuciones de DAG.

  • El contenido de las carpetas /dags, /data y /plugins de la instantánea se cargan en el bucket del entorno.

  • La clave fernet de la instantánea se utiliza para volver a encriptar los datos de la instantánea con la clave fernet del entorno. La clave fernet del entorno no se modifica.

Aunque Cloud Composer almacena cierta información sobre la configuración del entorno en instantáneas, no se usa para cargar instantáneas. Los siguientes parámetros de tu entorno no cambian cuando cargas una instantánea:

  • La configuración del entorno, como la escala del entorno y los parámetros de rendimiento
  • Configuración de herramientas de redes del entorno.
  • Contenidos del bucket del entorno fuera de las carpetas /dags, /data y /plugins
  • Etiquetas de entorno.

Es posible que la configuración que aplicaste en la infraestructura de Cloud Composer sin usar la API de Cloud Composer se pierda cuando cargues una instantánea.

Acerca de las operaciones completadas parcialmente

Cuando cargas una instantánea, la operación puede completarse correctamente, tener errores o completarse de forma parcial:

  • Las operaciones exitosas cargan todos los datos de la instantánea.
  • Las operaciones con errores no introducen ningún cambio.
  • Las operaciones parcialmente completadas cargan un subconjunto de datos desde la instantánea. Estas operaciones se informan como con errores, pero el mensaje de error indica qué datos se cargaron de forma correcta. Por ejemplo, si los paquetes de PyPI están instalados, pero las anulaciones de la opción de configuración de Airflow no se realizaron de forma correcta, el mensaje de error lo indica.

Para una operación que se completó parcialmente, puedes intentar cargar la misma instantánea de nuevo. Cloud Composer omite los pasos que tuvieron éxito en el intento anterior. Por ejemplo, si una operación falló en el tiempo de espera, pero la base de datos se cargó de forma correcta, el próximo intento no volverá a cargar la base de datos.

Antes de comenzar

  • En Cloud Composer 1, solo puedes guardar instantáneas, pero no cargarlas. Puedes cargar instantáneas de un entorno de Cloud Composer 1 a entornos de Cloud Composer 2.
  • Las instantáneas son compatibles con la versión 2.0.9 y posteriores de Cloud Composer 2. Cloud Composer 1 admite el guardado de instantáneas de entorno para versiones >= 1.18.5.

  • Las instantáneas no crean un entorno. Si deseas cargar una instantánea de un entorno a uno diferente, primero debes crear un entorno nuevo y, luego, cargar la instantánea en él.

  • No puedes cargar instantáneas en entornos que estén en estado de error. No es posible corregir estos entornos cargando una instantánea. Aún puedes cargar una instantánea existente en un entorno nuevo.

  • Solo puedes cargar instantáneas en la misma versión de Cloud Composer o Airflow, o en una posterior. Por ejemplo, no puedes cargar una instantánea de Cloud Composer 2.0.2 a un entorno con Cloud Composer 2.0.1. Como otro ejemplo, no puedes cargar una instantánea de Airflow 2.2.3 a Airflow 2.1.4.

  • Las instantáneas no cambian la versión de Cloud Composer. Si actualizas tu entorno a una versión posterior de Cloud Composer y, luego, cargas una instantánea desde una versión anterior, tu entorno seguirá conservando su versión actual de Cloud Composer. Por ejemplo, cargar una instantánea de Cloud Composer 2.0.1 a Cloud Composer 2.0.2 no invierte el entorno a Cloud Composer 2.0.1.

  • El tamaño máximo de la base de datos de Airflow que admite instantáneas es de 20 GB. Si la base de datos de tu entorno usa más de 20 GB, reduce el tamaño de la base de datos de Airflow antes de guardar una instantánea.

  • La longitud máxima del nombre de un objeto en el bucket del entorno no debe superar los 1,024 símbolos. De lo contrario, no se podrán crear instantáneas.

  • Si guardas instantáneas en una ubicación fuera del bucket de tu entorno, la cuenta de servicio de tu entorno debe tener permisos de lectura y escritura para la ubicación especificada. Por ejemplo, la función Administrador de objetos de almacenamiento tiene esos permisos. Puedes aplicarlo a un proyecto o a un bucket específico.

  • La creación y el almacenamiento de instantáneas produce costos adicionales, que se relacionan con Cloud Storage. Para obtener más información, consulta Precios.

Guarda una instantánea del entorno

Cloud Composer guarda instantáneas del entorno en una subcarpeta, en relación con la carpeta que especifiques. El nombre de la carpeta contiene el ID del proyecto, la ubicación del entorno, el nombre del entorno y la marca de tiempo de cuando se guardó la instantánea. Por ejemplo: /snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00

Console

Sigue estos pasos para crear una instantánea de tu entorno:

  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. Haz clic en Save snapshot (Guardar instantánea).

  4. En el cuadro de diálogo Guardar instantánea, selecciona la ubicación en la que deseas almacenar la instantánea:

    • Para almacenar la instantánea en la carpeta /snapshots del bucket del entorno, selecciona Usar la carpeta de instantáneas en el bucket de entorno (predeterminado).

    • Para almacenar la instantánea en la carpeta personalizada, selecciona Usar carpeta personalizada en otro bucket y, luego, especifica una ubicación.

  5. Haz clic en Guardar.

gcloud

El comando gcloud beta composer environments snapshots save guarda una instantánea del entorno.

  • El argumento snapshot-location especifica una carpeta en la que se guarda la instantánea. De forma predeterminada, las instantáneas se guardan en la carpeta /snapshots del bucket de tu entorno. Por ejemplo, gs://us-central1-example-916807e1-bucket/snapshots. También puedes especificar cualquier otra carpeta.

Para guardar una instantánea de tu entorno, ejecuta el siguiente comando:

gcloud beta composer environments snapshots save \
  ENVIRONMENT_NAME \
  --location LOCATION \
  --snapshot-location "SNAPSHOTS_FOLDER"

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • LOCATION por la región en la que se encuentra el entorno
  • (Opcional) SNAPSHOTS_FOLDER por el URI de una carpeta de bucket en la que se almacenará la instantánea. Si omites este argumento, Cloud Composer guardará la instantánea en la carpeta /snapshots en el bucket de tu entorno.

En el siguiente ejemplo, se usa la ubicación predeterminada:

gcloud beta composer environments snapshots save \
  example-environment \
  --location us-central1

En el siguiente ejemplo, se guardan en una carpeta personalizada:

gcloud beta composer environments snapshots save \
  example-environment \
  --location us-central1 \
  --snapshot-location "gs://example-bucket/environment_snapshots"

API

  1. Realiza una solicitud a la API de environments.saveSnapshot.

  2. En el cuerpo de la solicitud, en el campo snapshotLocation, especifica la carpeta en la que deseas guardar la instantánea.

{
  "snapshotLocation": "SNAPSHOTS_FOLDER"
}

Reemplaza lo siguiente:

  • SNAPSHOTS_FOLDER por el URI de una carpeta de bucket en la que se guarda la instantánea

Ejemplo:

// POST https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment:saveSnapshot

{
  "snapshotLocation": "gs://us-central1-example-916807e1-bucket/snapshots"
}

Terraform

No es posible guardar ni cargar instantáneas del entorno desde Terraform.

Guardar y cargar instantáneas son acciones que se realizan en un entorno y las instantáneas resultantes no forman parte de la definición de un entorno. Debido a que Terraform solo administra la configuración del entorno de Cloud Composer, no puedes guardar ni cargar instantáneas del entorno desde él.

Carga una instantánea del entorno

En Cloud Composer 1, solo puedes guardar instantáneas, pero no cargarlas. Puedes cargar instantáneas de un entorno de Cloud Composer 1 a entornos de Cloud Composer 2. Por ejemplo, cuando migres tus entornos a Cloud Composer 2.

¿Qué sigue?