Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
En esta página, se explica cómo guardar y cargar el estado de tu entorno usando instantáneas del entorno.
Puedes configurar tu entorno para que guarde instantáneas automáticamente. Para ver más consulta Configura instantáneas programadas.
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:
Restablece tu entorno a un estado anterior. Crea copias de seguridad de tus con instantáneas y, luego, carga una de ellas para restablecer en un entorno de nube. Por ejemplo, puedes revertir una operación de actualización que instala paquetes de PyPI o anula las opciones de configuración de Airflow, incluso después de que tu entorno se haya actualizado correctamente.
Realiza actualizaciones en paralelo y copia entornos. Crear una instantánea de un existente, crea un nuevo entorno que utilice la misma configuración de Cloud Composer, aplicaré la instantánea a esta nueva en un entorno de nube. Este procedimiento es similar a la migración. Asegúrate de pausar los DAG antes de tomar la instantánea para evitar ejecuciones de DAG duplicadas.
Cómo se almacenan las instantáneas
Una instantánea de entorno es un conjunto de archivos que describen el estado de tu y almacenará la copia de seguridad de los datos del entorno.
Puedes crear varias instantáneas del entorno. Instantáneas del entorno no son incrementales. Puedes usar cualquier instantánea independientemente de otras instantáneas.
Cloud Composer no borra las instantáneas cuando borras en un entorno de nube.
De forma predeterminada, Cloud Composer almacena instantáneas en snapshots/
.
en el 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 datos como carpetas para mayor comodidad, los buckets funcionan en una estructura de archivos planos. Esto no cambia tu forma de trabajar con las funciones cargas instantáneas en la consola de Google Cloud, pero tenlo en cuenta cuando realizar operaciones directamente en los archivos de tu bucket. Para obtener más información, consulta Espacio de nombres del objeto.
Consideraciones de seguridad para las instantáneas
Para mitigar este riesgo de seguridad, puedes almacenar información sensible que usan los DAG de Airflow, como claves o contraseñas, en Secret Manager. Para 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 del entorno en un bucket personalizado, asegúrate de que los permisos de acceso estén configurados correctamente en tu proyecto. Cuando asignes permisos, asegúrate de que la cuenta de servicio del entorno tenga suficientes permisos 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.
- Es la 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 la escala y los parámetros de rendimiento del entorno Cloud Composer no usa esta información cuando se carga. instantáneas.
Qué datos se cargan desde las instantáneas
Cloud Composer carga los siguientes datos de las instantáneas:
- Anulaciones de configuración de Airflow.
- Variables de entorno
Paquetes personalizados de PyPI (a menos que elijas 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
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 usa para volver a encriptar los datos del con la clave fernet del entorno. La clave fernet de la no se modificará.
Aunque Cloud Composer almacena cierta información sobre la configuración del entorno en las instantáneas, no se usa cuando se cargan. Los siguientes parámetros de tu entorno no cambian cuando cargas una instantánea:
- Configuración del entorno, como el escalamiento y el rendimiento parámetros.
- Configuración de las herramientas de redes del entorno
- El contenido del bucket del entorno fuera de
/dags
,/data
y/plugins
carpetas. - Etiquetas de entorno.
Cualquier configuración que hayas aplicado a la infraestructura de Cloud Composer sin usar la API de Cloud Composer se pueden perder cuando cargas instantánea.
Acerca de las operaciones completadas parcialmente
Cuando cargas un resumen, la operación puede ser exitosa, fallar o completarse parcialmente:
- Las operaciones exitosas cargan todos los datos de la instantánea.
- Las operaciones con errores no producen cambios.
- Las operaciones que se completaron de forma parcial cargan un subconjunto de datos de la instantánea. Tales operaciones se informan como fallidas, pero el mensaje de error indica qué los datos se cargaron correctamente. Por ejemplo, si los paquetes de PyPI están instalados, pero las anulaciones de opciones de configuración de Airflow no se realizaron correctamente, el mensaje de error lo indica.
Para una operación completada parcialmente, puedes intentar cargar la misma instantánea otra vez. Cloud Composer omite los pasos que se completaron correctamente en el intento anterior. Por ejemplo, si una operación falló en un tiempo de espera, pero la base de datos se cargó correctamente, el siguiente intento no vuelve a cargarla.
Antes de comenzar
Las instantáneas son compatibles con Cloud Composer 2 versión 2.0.9 y versiones posteriores. Cloud Composer 1 admite el guardado de instantáneas de entorno para versiones >= 1.18.5.
Las instantáneas no crean un entorno. Si quieres cargar una instantánea de un entorno a otro, primero debes crear un entorno nuevo y, luego, cargar la instantánea en él.
No puedes cargar instantáneas en entornos que tienen estado de error. No es posible corregir esos 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 o en una posterior Cloud Composer o Airflow. Por ejemplo, no puedes cargar un de Cloud Composer 2.0.2 a un entorno con Cloud Composer 2.0.1 Otro ejemplo es que 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 de una versión anterior, tu entorno seguirá conservando su versión actual de Cloud Composer. Por ejemplo, cargar una instantánea desde Cloud Composer 2.0.1 a Cloud Composer 2.0.2 no revertir 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 toma más de 20 GB, Reduce el tamaño de la base de datos de Airflow antes de guardar una instantánea.
La cantidad total de objetos en las carpetas
/dags
,/plugins
y/data
del bucket del entorno debe ser inferior a 100,000 para crear instantáneas.Si usas el mecanismo XCom para transferir archivos, asegúrate de que [úsala de acuerdo con los lineamientos de Airflow][ext-airflow-xcom-backend]. Transferir archivos grandes o una gran cantidad de archivos con XCom afecta el rendimiento de la base de datos de Airflow y puede generar fallas cuando se cargan instantáneas o se actualiza el entorno. Considera usar alternativas como Cloud Storage para transferir grandes volúmenes de datos.
La longitud máxima del nombre de un objeto en el bucket del entorno no debe ser superior a 1,024 símbolos. De lo contrario, no se pueden crear instantáneas.
Si guardas instantáneas en una ubicación fuera del entorno bucket, la cuenta de servicio de tu entorno debe tener tienen permisos de lectura y escritura para la ubicación especificada. Por ejemplo, el El rol de administrador de objetos de almacenamiento tiene esos permisos. Tú puedes aplicarla a un proyecto o a un bucket específico.
La creación y el almacenamiento de instantáneas generan costos adicionales, que se relacionan con Cloud Storage. Para obtener más información, consulta Precios.
Cómo guardar una instantánea del entorno
Cloud Composer guarda las 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 en la que se guardó la instantánea. Por ejemplo: /snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00
Console
Para crear una instantánea de tu entorno, sigue estos pasos:
En la consola de Google Cloud, ve a la página Entornos.
En la lista de entornos, haz clic en el nombre de tu entorno. Se abrirá la página Detalles del entorno.
Haz clic en Guardar instantánea.
En el cuadro de diálogo Guardar instantánea, selecciona dónde 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 del entorno (predeterminado).Para almacenar la instantánea en la carpeta personalizada, selecciona Usa una carpeta personalizada en otro bucket y, luego, especifica una ubicación.
Haz clic en Guardar.
gcloud
El comando gcloud beta composer environments snapshots save
guarda una instantánea de tu entorno.
- El argumento
snapshot-location
especifica una carpeta en la que se encuentra la instantánea. guardado. De forma predeterminada, las instantáneas se guardan en la carpeta/snapshots
de la en el 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 entornoSNAPSHOTS_FOLDER
por el URI de una carpeta de bucket en la que se almacenará (opcional) la instantánea. Si omites este argumento, Cloud Composer guarda la instantánea en la carpeta/snapshots
del 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 guarda en una carpeta personalizada:
gcloud beta composer environments snapshots save \
example-environment \
--location us-central1 \
--snapshot-location "gs://example-bucket/environment_snapshots"
API
Realiza una solicitud a la API de
environments.saveSnapshot
.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
con el URI de una carpeta de bucket en la que se guardará 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 de entornos 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. Dado que Terraform solo administra la configuración del entorno de Cloud Composer, no puedes guardar ni cargar instantáneas del entorno desde allí.
Cómo cargar una instantánea del entorno
Considera la siguiente situación. Por ejemplo, se habilita la recuperación y Airflow ejecuta un DAG según un programa entre el momento en que se creó la instantánea y el momento en que se cargó. En este caso, después de cargar la instantánea, Airflow no tiene información sobre la ejecución del DAG, por lo que Airflow lo vuelve a ejecutar para el mismo tiempo y datos.
Como otro ejemplo, considera un DAG que se ejecuta en un horario diario. Tomas una instantánea, luego Airflow ejecuta este DAG y, después, cargas la instantánea el mismo día. En este caso, Airflow vuelve a ejecutar el DAG, incluso si la actualización inhabilitado.
Console
Para cargar una instantánea en tu entorno de Cloud Composer 2, sigue estos pasos:
En la consola de Google Cloud, ve a la página Entornos.
En la lista de entornos, haz clic en el nombre de tu en un entorno de nube. Se abrirá la página Detalles del entorno.
Haz clic en Cargar instantánea.
En el diálogo Carga instantánea, haz clic en Explorar.
Selecciona una carpeta que almacene la instantánea. El nombre de la carpeta enumera el ID de tu proyecto, la ubicación del entorno y la marca de tiempo se guardó la instantánea. Por ejemplo,
/snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00
.(Opcional) Para omitir la instalación de paquetes personalizados de PyPI desde la instantánea, selecciona Omitir la instalación de paquetes de PyPI. Si cargas un de un entorno con permisos paquetes personalizados de PyPI, entonces Cloud Composer no instala estos paquetes personalizados.
Haz clic en Cargar y espera hasta que Cloud Composer cargue la instantánea.
gcloud
El comando gcloud beta composer environments snapshots load
carga un
instantánea en tu entorno.
El argumento
--snapshot-path
especifica una carpeta en la que se encuentra la instantánea. ubicado.En el nombre de la carpeta, se muestra el ID de tu proyecto, la ubicación del entorno y la marca de tiempo en la que se guardó la instantánea. Por ejemplo,
gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00
.(Opcional) El argumento
--skip-pypi-packages-installation
omite la instalación de paquetes personalizados de PyPI desde la instantánea. Si cargas una instantánea de un entorno con paquetes PyPI personalizados instalados, Cloud Composer no instalará estos paquetes personalizados.
gcloud beta composer environments snapshots load \
DESTINATION_ENVIRONMENT_NAME \
--location LOCATION \
--snapshot-path "SNAPSHOT_PATH"
Reemplaza lo siguiente:
DESTINATION_ENVIRONMENT_NAME
por el nombre del entorno en el que deseas cargar la instantánea.LOCATION
por la región en la que se encuentra el entornoSNAPSHOT_PATH
por el URI de un bucket, seguido de la ruta de acceso al instantánea.
Ejemplo:
gcloud beta composer environments snapshots load \
example-environment \
--location us-central1 \
--snapshot-path "gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00"
API
Realiza una solicitud a la API de
environments.loadSnapshot
.En el cuerpo de la solicitud, en el campo
snapshotPath
, especifica el URI de un bucket, seguido de la ruta de acceso a la instantánea. Nombre de la carpeta enumera el ID de tu proyecto, la ubicación del entorno y y marca de tiempo en la que se guardó la instantánea. Por ejemplo,gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00
(Opcional) En el cuerpo de la solicitud, en el campo
skipPypiPackagesInstallation
, especifica si Cloud Composer debe omitir la instalación de paquetes de PyPI personalizados desde la instantánea. Si cargas una instantánea de un entorno con paquetes PyPI personalizados instalados, Cloud Composer no instalará estos paquetes personalizados.Este campo es opcional. Si omites este campo, Cloud Composer instala paquetes de PyPI desde la instantánea.
{
"snapshotPath": "SNAPSHOT_PATH"
}
Reemplaza lo siguiente:
SNAPSHOT_PATH
con el URI de una carpeta de bucket en la que almacenar la instantánea.
Ejemplo:
// POST https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment:loadSnapshot
{
"snapshotPath": "gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00",
"skipPypiPackagesInstallation": "False"
}
Terraform
No es posible guardar ni cargar instantáneas de entornos con Terraform.
Guardar y cargar instantáneas son acciones que se realizan en un entorno. las instantáneas resultantes no son parte de la definición de un entorno. Desde Terraform solo administra la configuración del entorno de Cloud Composer, no puedes guardar ni cargar instantáneas del entorno desde allí.