Nesta página, explicamos como configurar o ambiente para salvar snapshots de acordo com uma programação.
Para mais informações sobre como os snapshots de ambiente funcionam e como salvar snapshots manualmente, consulte Salvar e carregar snapshots.
Como os snapshots programados funcionam
Ao ativar snapshots programados, o Airflow gerenciado salva periodicamente snapshots do ambiente em um bucket do Cloud Storage.
Se você criar snapshots manualmente, o Airflow gerenciado vai salvar snapshots no bucket do ambiente por padrão. Para snapshots programados, recomendamos salvar snapshots em um bucket separado. Dessa forma, é possível configurar permissões e uma configuração de ciclo de vida para esse bucket. Um bucket pode conter snapshots de vários ambientes, e também é possível criar buckets que são redundantes em várias regiões.
Antes de começar
Para mais informações sobre os requisitos e limitações de snapshots, consulte Salvar e carregar snapshots.
Criar um bucket para snapshots programados
Crie um bucket para snapshots programados. Considere como você quer usar snapshots de ambiente. Se eles fizerem parte do seu plano de recuperação de desastres, use um bucket que seja redundante em várias regiões ou um bucket em uma região diferente. Assim, você terá acesso aos dados mesmo em caso de uma interrupção regional completa. Caso contrário, um bucket na mesma região do ambiente pode ser mais adequado. Nesse caso, você reduz os custos de transferência de dados entre regiões.
Configurar permissões para o bucket
Configure as seguintes permissões:
A conta de serviço do ambiente precisa ter permissões de leitura e gravação para esse bucket. Por exemplo, o papel de Administrador de objetos do Storage tem essas permissões.
As contas de usuário não precisam de permissões adicionais para que o bucket carregue snapshots, a menos que você queira visualizar o conteúdo do bucket no Cloud de Confiance console. Nesse caso, uma conta de usuário precisa ter permissão de leitura no bucket.
Definir uma configuração de ciclo de vida para o bucket
Para economizar custos de armazenamento, é possível configurar uma regra que exclui snapshots de ambiente após um determinado período.
Por exemplo, para excluir automaticamente snapshots com mais de 30 dias:
- Defina uma configuração de ciclo de vida para o bucket.
- Especifique a ação Excluir objeto.
- Selecione Idade e 30 dias como condição.
Ativar uma programação de snapshots para seu ambiente
Console
No Cloud de Confiance console, acesse a página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. A página Detalhes do ambiente é aberta.
Acesse a guia Configuração do ambiente.
Em Configuração de recuperação > Programação de snapshots, clique em Editar. O painel Programação de snapshots é aberto.
No painel Programação de snapshots, selecione Criar snapshots periodicamente, de acordo com a programação especificada.
Na lista suspensa Frequência de programação , selecione o período diário, semanal ou personalizado para snapshots.
É possível especificar uma programação personalizada com o formato unix-cron. Por exemplo, para salvar snapshots a cada 30 minutos, especifique
*/30 * * * *.No campo Local do snapshot, selecione a pasta do bucket em que você quer salvar snapshots.
gcloud
Atualize a configuração do ambiente. Os argumentos a seguir definem parâmetros para snapshots programados:
--enable-scheduled-snapshot-creationativa snapshots programados.--snapshot-locationespecifica uma pasta de bucket em que você quer salvar snapshots.--snapshot-creation-scheduleespecifica a frequência com que os snapshots de ambiente precisam ser feitos, no formato unix-cron. Por exemplo, para criar um snapshot a cada 30 minutos, especifique*/30 * * * *.--snapshot-schedule-timezonedefine um fuso horário para a programação. Esse valor é um ajuste de tempo e não considera as mudanças de horário de verão. Os valores válidos são deUTC-12aUTC+12. Exemplos: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"
Substitua:
ENVIRONMENT_NAMEpelo nome do ambienteLOCATIONpela região em que o ambiente está localizadoSNAPSHOTS_FOLDERpelo URI de uma pasta de bucket em que o snapshot será salvoCRON_EXPRESSIONpela programação, no formato unix-cron.TIME_ZONEpor um fuso horário para a programação
Exemplo (todos os dias às 4h, 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
Crie uma solicitação de API environments.patch.
Nesta solicitação:
No parâmetro
updateMask, especifique a máscaraconfig.recoveryConfig.scheduledSnapshotsConfigpara substituir a configuração de snapshots programados atual.No corpo da solicitação, especifique a configuração dos snapshots:
{ "config": { "recoveryConfig": { "scheduledSnapshotsConfig": { "enabled": true, "snapshot_location": "gs://SNAPSHOTS_FOLDER", "snapshot_creation_schedule": "CRON_EXPRESSION", "time_zone": "TIME_ZONE" } } } }Substitua:
SNAPSHOTS_FOLDERpelo URI de uma pasta de bucket em que o snapshot será salvoCRON_EXPRESSIONpela programação, no formato unix-cron.TIME_ZONEpor um fuso horário para a programação Esse valor é um ajuste de tempo e não considera as mudanças de horário de verão. Os valores válidos são deUTC-12aUTC+12. Exemplos:UTC,UTC-01,UTC+03.
Exemplo (todos os dias às 4h, 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
O scheduled_snapshots_config no bloco recovery_config define parâmetros para snapshots programados:
enabledativa snapshots programados.snapshot_locationespecifica uma pasta de bucket em que você quer salvar snapshots.snapshot_creation_scheduleespecifica a frequência com que os snapshots de ambiente precisam ser feitos, em formato unix-cron. Por exemplo, para criar um snapshot a cada 30 minutos, especifique*/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"
}
}
}
Substitua:
SNAPSHOTS_FOLDERpelo URI de uma pasta de bucket em que o snapshot será salvoCRON_EXPRESSIONpela programação, no formato unix-cron.TIME_ZONEpor um fuso horário para a programação Esse valor é um ajuste de tempo e não considera as mudanças de horário de verão. Os valores válidos são deUTC-12aUTC+12. Exemplos:UTC,UTC-01,UTC+03.
Exemplo (todos os dias às 4h, 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"
}
}
}
Desativar snapshots programados
Se você desativar snapshots programados, todos os snapshots atuais que já foram feitos não serão modificados nem removidos. Esses snapshots permanecem no local em que foram salvos.
Console
No Cloud de Confiance console, acesse a página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. A página Detalhes do ambiente é aberta.
Acesse a guia Configuração do ambiente.
Em Configuração de recuperação > Programação de snapshots, clique em Editar. O painel Programação de snapshots é aberto.
No painel Programação de snapshots, selecione Não criar snapshots automaticamente.
gcloud
Atualize a configuração do ambiente. O argumento --disable-scheduled-snapshot-creation desativa snapshots programados.
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--disable-scheduled-snapshot-creation
Substitua:
ENVIRONMENT_NAMEpelo nome do ambienteLOCATIONpela região em que o ambiente está localizado
Exemplo:
gcloud composer environments update example-environment \
--location us-central1 \
--disable-scheduled-snapshot-creation
API
Crie uma solicitação de API environments.patch.
Nesta solicitação:
No parâmetro
updateMask, especifique aconfig.recoveryConfig.scheduledSnapshotsConfig.enabledmáscara para substituir o valor do campoenabled.No corpo da solicitação, especifique o novo valor:
{ "config": { "recoveryConfig": { "scheduledSnapshotsConfig": { "enabled": false } } } }
Exemplo:
// 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 desativar snapshots programados, defina o campo enabled no bloco scheduled_snapshots_config como false:
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
recovery_config {
scheduled_snapshots_config {
enabled = false
}
}
}
Exemplo:
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
}
}
}