En esta página, se explica cómo configurar tu entorno para guardar instantáneas según una programación.
Para obtener más información sobre cómo funcionan las instantáneas del entorno y cómo guardar instantáneas de forma manual, consulta Guarda y carga instantáneas.
Cómo funcionan las instantáneas programadas
Cuando habilitas las instantáneas programadas, Airflow administrado guarda periódicamente instantáneas de tu entorno en un bucket de Cloud Storage.
Si creas instantáneas de forma manual, Airflow administrado las guarda en el bucket del entorno de forma predeterminada. Para las instantáneas programadas, recomendamos guardarlas en un bucket independiente. De esta manera, puedes configurar permisos y una configuración del ciclo de vida para este bucket. Un bucket puede contener instantáneas de varios entornos, y también puedes crear buckets que sean redundantes en todas las regiones.
Antes de comenzar
Para obtener más información sobre los requisitos y las limitaciones de las instantáneas, consulta Guarda y carga instantáneas.
Crea un bucket para las instantáneas programadas
Crea un bucket para las instantáneas programadas. Considera cómo deseas usar las instantáneas del entorno. Si es parte de tu plan de recuperación ante desastres, usa un bucket que sea redundante en todas las regiones o un bucket en una región diferente, de modo que tengas acceso a los datos incluso en caso de una interrupción regional completa. De lo contrario, un bucket en la misma región que el entorno podría ser más adecuado y, en este caso, reduces los costos de transferencia de datos entre regiones.
Configura los permisos para el bucket
Configura los siguientes permisos:
La cuenta de servicio de tu entorno debe tener permisos de lectura y escritura para este bucket. Por ejemplo, la función Administrador de objetos de almacenamiento tiene esos permisos.
Las cuentas de usuario no necesitan permisos adicionales para que el bucket cargue instantáneas desde él, a menos que desees ver el contenido del bucket desde Cloud de Confiance console. En este caso, una cuenta de usuario debe tener permiso de lectura en el bucket.
Establece una configuración del ciclo de vida para el bucket
Para ahorrar costos de almacenamiento, puedes configurar una regla que borre las instantáneas del entorno después de un período determinado.
Por ejemplo, para borrar automáticamente las instantáneas con más de 30 días de antigüedad, haz lo siguiente:
- Establece una configuración del ciclo de vida para el bucket.
- Especifica la acción Borrar objeto.
- Selecciona Antigüedad y 30 días como condición.
Habilita una programación de instantáneas para tu entorno
Console
En Cloud de Confiance console, 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.
Ve a la pestaña Configuración del entorno.
En Configuración de recuperación > Programación de instantáneas, haz clic en Editar. Se abrirá el panel Programación de instantáneas.
En el panel Programación de instantáneas , selecciona Crear instantáneas periódicamente según el programa especificado.
En la lista desplegable Frecuencia de programación , selecciona el período diario, semanal o personalizado para las instantáneas.
Puedes especificar una programación personalizada con el formato unix-cron. Por ejemplo, para guardar instantáneas cada 30 minutos, especifica
*/30 * * * *.En el campo Ubicación de la instantánea, selecciona la carpeta del bucket en la que deseas guardar las instantáneas.
gcloud
Actualiza la configuración de tu entorno. Los siguientes argumentos definen los parámetros de las instantáneas programadas:
--enable-scheduled-snapshot-creationhabilita las instantáneas programadas.--snapshot-locationespecifica una carpeta del bucket en la que deseas guardar las instantáneas.--snapshot-creation-scheduleespecifica con qué frecuencia se deben tomar las instantáneas del entorno, en el formato unix-cron. Por ejemplo, para crear una instantánea cada 30 minutos, especifica*/30 * * * *.--snapshot-schedule-timezonedefine una zona horaria para la programación. Este valor es una compensación de tiempo y no tiene en cuenta los cambios de horario de verano. Los valores válidos van desdeUTC-12hastaUTC+12. Ejemplos:UTC,UTC-01,UTC+03.
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--enable-scheduled-snapshot-creation \
--snapshot-location "gs://SNAPSHOTS_FOLDER" \
--snapshot-creation-schedule "CRON_EXPRESSION" \
--snapshot-schedule-timezone "TIME_ZONE"
Reemplaza lo siguiente:
ENVIRONMENT_NAMEpor el nombre del entorno.LOCATIONpor la región en la que se encuentra el entorno.SNAPSHOTS_FOLDERpor el URI de una carpeta del bucket en la que se guardará la instantánea.CRON_EXPRESSIONpor la programación, en formato unix-cron.TIME_ZONEpor una zona horaria para la programación.
Ejemplo (todos los días a las 4:00, UTC+01):
gcloud composer environments update example-environment \
--location us-central1 \
--enable-scheduled-snapshot-creation \
--snapshot-location "gs://example-bucket/environment_snapshots" \
--snapshot-creation-schedule "0 4 * * *" \
--snapshot-schedule-timezone "UTC+01"
API
Realiza una solicitud a la API de environments.patch.
En esta solicitud, realiza lo siguiente:
En el parámetro
updateMask, especifica la máscaraconfig.recoveryConfig.scheduledSnapshotsConfigpara reemplazar la configuración de instantáneas programadas existente.En el cuerpo de la solicitud, especifica la configuración de las instantáneas:
{ "config": { "recoveryConfig": { "scheduledSnapshotsConfig": { "enabled": true, "snapshot_location": "gs://SNAPSHOTS_FOLDER", "snapshot_creation_schedule": "CRON_EXPRESSION", "time_zone": "TIME_ZONE" } } } }Reemplaza lo siguiente:
SNAPSHOTS_FOLDERpor el URI de una carpeta del bucket en la que se guardará la instantánea.CRON_EXPRESSIONpor la programación, en formato unix-cron.TIME_ZONEpor una zona horaria para la programación. Este valor es una compensación de tiempo y no tiene en cuenta los cambios de horario de verano. Los valores válidos van desdeUTC-12hastaUTC+12. Ejemplos:UTC,UTC-01,UTC+03.
Ejemplo (todos los días a las 4:00, UTC+01):
// PATCH https://composer.googleapis.com/v1/projects/example-project/ // locations/us-central1/environments/example-environment?updateMask= // config.recoveryConfig.scheduledSnapshotsConfig { "config": { "recoveryConfig": { "scheduledSnapshotsConfig": { "enabled": true, "snapshot_location": "gs://example-bucket/environment_snapshots", "snapshot_creation_schedule": "0 4 * * *", "time_zone": "UTC+01" } } } }
Terraform
El scheduled_snapshots_config en el bloque recovery_config define los parámetros de las instantáneas programadas:
enabledhabilita las instantáneas programadas.snapshot_locationespecifica una carpeta del bucket en la que deseas guardar las instantáneas.snapshot_creation_scheduleespecifica con qué frecuencia se deben tomar las instantáneas del entorno, en el formato unix-cron. Por ejemplo, para crear una instantánea cada 30 minutos, especifica*/30 * * * *.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
recovery_config {
scheduled_snapshots_config {
enabled = true
snapshot_location = "gs://SNAPSHOTS_FOLDER"
snapshot_creation_schedule = "CRON_EXPRESSION"
time_zone = "TIME_ZONE"
}
}
}
Reemplaza lo siguiente:
SNAPSHOTS_FOLDERpor el URI de una carpeta del bucket en la que se guardará la instantánea.CRON_EXPRESSIONpor la programación, en formato unix-cron.TIME_ZONEpor una zona horaria para la programación. Este valor es una compensación de tiempo y no tiene en cuenta los cambios de horario de verano. Los valores válidos van desdeUTC-12hastaUTC+12. Ejemplos:UTC,UTC-01,UTC+03.
Ejemplo (todos los días a las 4:00, UTC+01):
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
recovery_config {
scheduled_snapshots_config {
enabled = true
snapshot_location = "gs://example-bucket/environment_snapshots"
snapshot_creation_schedule = "0 4 * * *"
time_zone = "UTC+01"
}
}
}
Inhabilita las instantáneas programadas
Si inhabilitas las instantáneas programadas, no se modifican ni quitan las instantáneas existentes que ya se tomaron. Estas instantáneas permanecen en la ubicación en la que se guardaron.
Console
En Cloud de Confiance console, 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.
Ve a la pestaña Configuración del entorno.
En Configuración de recuperación > Programación de instantáneas, haz clic en Editar. Se abrirá el panel Programación de instantáneas.
En el panel Programación de instantáneas, selecciona No crear instantáneas automáticamente.
gcloud
Actualiza la configuración de tu entorno. El argumento --disable-scheduled-snapshot-creation inhabilita las instantáneas programadas.
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--disable-scheduled-snapshot-creation
Reemplaza lo siguiente:
ENVIRONMENT_NAMEpor el nombre del entorno.LOCATIONpor la región en la que se encuentra el entorno.
Ejemplo:
gcloud composer environments update example-environment \
--location us-central1 \
--disable-scheduled-snapshot-creation
API
Realiza una solicitud a la API de environments.patch.
En esta solicitud, realiza lo siguiente:
En el parámetro
updateMask, especifica laconfig.recoveryConfig.scheduledSnapshotsConfig.enabledmáscara para reemplazar el valor del campoenabled.En el cuerpo de la solicitud, especifica el valor nuevo:
{ "config": { "recoveryConfig": { "scheduledSnapshotsConfig": { "enabled": false } } } }
Ejemplo:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.recoveryConfig.scheduledSnapshotsConfig.enabled
{
"config": {
"recoveryConfig": {
"scheduledSnapshotsConfig": {
"enabled": false
}
}
}
}
Terraform
Para inhabilitar las instantáneas programadas, establece el campo enabled en el bloque scheduled_snapshots_config en false:
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
recovery_config {
scheduled_snapshots_config {
enabled = false
}
}
}
Ejemplo:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
recovery_config {
scheduled_snapshots_config {
enabled = false
// Other scheduled snapshots parameters
}
}
}