Configurar snapshots programados

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Esta página explica como configurar seu ambiente para salvar snapshots em um cronograma.

Para mais informações sobre como os snapshots do ambiente funcionam e como salvar snapshots manualmente, consulte Salvar e carregar snapshots.

Como os snapshots programados funcionam

Quando você ativa snapshots programados, o Cloud Composer periodicamente salva snapshots do ambiente em um bucket do Cloud Storage.

Se você criar snapshots manualmente, o Cloud Composer vai salvar snapshots no bucket do ambiente por padrão. Para snapshots programados, recomendamos salvar os snapshots em um bucket separado. Assim, é possível configurar permissões e uma configuração do ciclo de vida para esse bucket. Um bucket pode conter snapshots de vários ambientes, além de criar buckets que são redundantes entre as regiões.

Antes de começar

  • Para mais informações sobre os requisitos e as limitações de snapshots, consulte Salvar e carregar snapshots.

  • O Cloud Composer oferece suporte a snapshots programados na versão 2.0.32 e posteriores mais recentes. Os snapshots do ambiente são compatíveis com as versões 2.0.9 e posteriores.

Criar um bucket para snapshots programados

Crie um bucket para snapshots programados. Pense em como você quer usar snapshots do ambiente. Se ela faz parte da sua plano de recuperação de desastres e use um um bucket redundante entre regiões ou em uma região diferente, para que você tenha acesso aos dados mesmo uma interrupção regional total. Caso contrário, um bucket na mesma região do ambiente pode ser mais adequado e, nesse caso, você reduz os custos de transferência dados entre regiões.

Configurar permissões para o bucket

Configure as seguintes permissões:

  • A conta de serviço do seu ambiente precisa ter permissões de leitura e permissões de gravação. Por exemplo, o O papel Administrador de objetos do Storage tem essas permissões.

  • As contas de usuário não precisam de outras permissões para o bucket para carregar snapshots a partir dele, a menos que queira ver o conteúdo do no console do Google Cloud. 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 nos custos de armazenamento, configure uma regra que exclua o ambiente snapshots após um determinado período.

Por exemplo, para excluir automaticamente snapshots com mais de 30 dias:

  1. Defina uma configuração de ciclo de vida para o bucket.
  2. Especifique a ação Excluir objeto.
  3. Selecione Idade e 30 dias como condição.

Ativar uma programação de snapshots para o ambiente

Console

  1. No console do Google Cloud, acesse a página Ambientes.

    Acessar "Ambientes"

  2. Na lista de ambientes, clique no nome do ambiente. A página Detalhes do ambiente é aberta.

  3. Acesse a guia Configuração do ambiente.

  4. Em Configuração de recuperação > Programação de snapshots, clique em Editar. O painel Programação de snapshots é aberto.

  5. No painel Programação de snapshots, selecione Criar snapshots periodicamente, de acordo com a programação especificada.

  6. Na lista suspensa Frequência da programação, selecione diário, semanal ou personalizado para os snapshots.

    É possível especificar uma programação personalizada com o formato unix-cron. Por exemplo, para salvar snapshots a cada 30 minutos, especifique */30 * * * *.

  7. No campo Local do snapshot, selecione a pasta do bucket em que você quer salvar os snapshots.

gcloud

Atualize a configuração do ambiente. Os argumentos a seguir definem parâmetros para snapshots programados:

  • --enable-scheduled-snapshot-creation ativa snapshots programados.
  • --snapshot-location especifica uma pasta de bucket em que você quer salvar os snapshots.
  • --snapshot-creation-schedule especifica com que frequência os snapshots do ambiente precisam ser criados, o formato unix-cron. Por exemplo, para criar um snapshot a cada 30 minutos, especifique */30 * * * *.

  • --snapshot-schedule-timezone define um fuso horário para a programação. Isso o valor é um ajuste de tempo e não leva em consideração o horário de verão mudanças. Os valores válidos vão de UTC-12 a UTC+12. Exemplos: UTC, UTC-01, UTC+03.

gcloud beta 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_NAME pelo nome do ambiente
  • LOCATION pela região em que o ambiente está localizado;
  • SNAPSHOTS_FOLDER pelo URI de uma pasta do bucket em que o snapshot será salvo.
  • CRON_EXPRESSION com a programação no formato unix-cron.
  • TIME_ZONE com um fuso horário para a programação.

Exemplo (todos os dias às 4h, UTC+01):

gcloud beta 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:

  1. No parâmetro updateMask, especifique a máscara config.recoveryConfig.scheduledSnapshotsConfig para substituir a configuração de snapshots programados atual.

  2. 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_FOLDER pelo URI de uma pasta de bucket salvar o snapshot.
    • CRON_EXPRESSION com a programação no formato unix-cron.

    • TIME_ZONE com um fuso horário para a programação. Isso o valor é um ajuste de tempo e não leva em conta o horário de verão as mudanças de horário. Os valores válidos vão de UTC-12 a UTC+12. Exemplos: UTC, UTC-01, UTC+03.

    Exemplo (todos os dias às 4h, UTC+01):

      // PATCH https://composer.googleapis.com/v1beta1/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:

  • enabled ativa os snapshots programados.
  • snapshot_location especifica uma pasta de bucket em que você quer salvar instantâneos.
  • snapshot_creation_schedule especifica com que frequência os snapshots do ambiente precisam ser feitos, no 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_FOLDER pelo URI de uma pasta do bucket em que o snapshot será salvo.
  • CRON_EXPRESSION com a programação, no unix-cron.

  • TIME_ZONE com um fuso horário para a programação. Isso o valor é um ajuste de tempo e não leva em conta o horário de verão as mudanças de horário. Os valores válidos vão de UTC-12 a UTC+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 os snapshots programados, todos os snapshots atuais que já foram criados não serão modificados nem removidos. Esses snapshots permanecem no local elas foram salvas.

Console

  1. No console do Google Cloud, acesse a página Ambientes.

    Acessar "Ambientes"

  2. Na lista de ambientes, clique no nome do seu ambiente. A página Detalhes do ambiente é aberta.

  3. Acesse a guia Configuração do ambiente.

  4. Em Configuração de recuperação > Programação de snapshots, clique em Editar. O painel Programação de snapshots é aberto.

  5. 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 os snapshots programados.

gcloud beta composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --disable-scheduled-snapshot-creation

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente
  • LOCATION pela região em que o ambiente está localizado;

Exemplo:

gcloud beta composer environments update example-environment \
    --location us-central1 \
    --disable-scheduled-snapshot-creation

API

Crie uma solicitação de API environments.patch.

Nesta solicitação:

  1. No parâmetro updateMask, especifique a máscara config.recoveryConfig.scheduledSnapshotsConfig.enabled para substituir o valor do campo enabled.

  2. No corpo da solicitação, especifique o novo valor:

    {
      "config": {
        "recoveryConfig": {
          "scheduledSnapshotsConfig": {
            "enabled": false
          }
        }
      }
    }
    

Exemplo:

// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.recoveryConfig.scheduledSnapshotsConfig.enabled
{
"config": {
  "recoveryConfig": {
    "scheduledSnapshotsConfig": {
      "enabled": false
    }
  }
}
}

Terraform

Para desativar os 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
    }
  }
}

A seguir