Cloud Composer 1 | Cloud Composer 2
Nesta página, explicamos como salvar e carregar o estado do ambiente usando snapshots do ambiente.
É possível configurar seu ambiente para salvar snapshots automaticamente. Para mais informações, consulte Configurar snapshots programados.
Sobre os snapshots do ambiente
Os snapshots do ambiente armazenam o estado do ambiente. É possível salvar e carregar snapshots do ambiente sob demanda.
É possível usar snapshots para:
- Migre seus ambientes para uma versão principal posterior do Composer ou do Airflow.
Como os snapshots são armazenados
Um snapshot do ambiente é um conjunto de arquivos que descrevem o estado do ambiente e armazenam o backup dos dados dele.
É possível criar vários snapshots do ambiente. Os snapshots do ambiente não são incrementais. É possível usar qualquer snapshot independentemente de outros snapshots.
O Cloud Composer não exclui snapshots quando você exclui o ambiente.
Por padrão, o Cloud Composer armazena snapshots na pasta snapshots/
no bucket do ambiente. Também é possível especificar um local personalizado ao criar um snapshot.
Enquanto a IU do Cloud Storage exibe dados como pastas por conveniência, os buckets funcionam em uma estrutura de arquivos simples. Isso não muda a forma como você trabalha para salvar e carregar snapshots no console do Google Cloud, mas pode ser uma distinção importante a ser considerada ao executar operações diretamente nos arquivos do bucket. Para mais informações, consulte Pastas.
Considerações de segurança para snapshots
Para reduzir esse risco de segurança, armazene informações confidenciais usadas pelos DAGs do Airflow, como chaves ou senhas, no Secret Manager. Para mais informações, acesse Configurar o Secret Manager para o ambiente.
Verifique as permissões de segurança para o bucket do seu ambiente. Se você armazenar snapshots do ambiente em um bucket personalizado, verifique se as permissões de acesso a eles estão configuradas corretamente no projeto. Ao atribuir permissões, verifique se a conta de serviço desse ambiente tem permissões suficientes para salvar e carregar snapshots do bucket.
Quais dados são salvos nos snapshots
O Cloud Composer salva os seguintes dados em snapshots:
- Substituições de configuração do Airflow.
- Variáveis de ambiente.
- Lista de pacotes PyPI personalizados, como requisitos.
- um backup do banco de dados do Airflow, incluindo estados de tarefas executadas e histórico de execuções do DAG.
- Um backup das pastas
/dags
,/data
e/plugins
do bucket do ambiente. - Chave fernet do ambiente
- Outras informações sobre a configuração do ambiente, como os parâmetros de escalonamento e desempenho. O Cloud Composer não usa essas informações ao carregar snapshots.
Quais dados são carregados de snapshots
O Cloud Composer carrega os seguintes dados usando snapshots:
- Substituições de configuração do Airflow.
- Variáveis de ambiente.
Pacotes PyPI personalizados (a menos que você escolha pular a instalação).
O conteúdo do banco de dados do Airflow, incluindo estados de tarefas executadas e histórico de execuções do DAG.
O conteúdo das pastas
/dags
,/data
e/plugins
do snapshot é carregado no bucket do ambiente.A chave fernet do snapshot é usada para recriptografar os dados do snapshot com a própria chave fernet do ambiente. A chave fernet do ambiente permanece inalterada.
O Cloud Composer armazena algumas informações sobre a configuração do ambiente em snapshots, mas ele não é usado ao carregar snapshots. Os parâmetros a seguir do seu ambiente não mudam quando você carrega um snapshot:
- Configuração do ambiente, como escala do ambiente e parâmetros de desempenho.
- Configuração de rede do ambiente.
- Conteúdo do bucket do ambiente fora das pastas
/dags
,/data
e/plugins
. - Rótulos de ambiente.
Todas as configurações aplicadas na infraestrutura do Cloud Composer sem usar a API Cloud Composer podem ser perdidas ao carregar um snapshot.
Sobre operações parcialmente concluídas
Ao carregar um snapshot, a operação pode ser bem-sucedida, com falha ou parcialmente concluída:
- Operações bem-sucedidas carregam todos os dados do snapshot.
- As operações com falha não introduzem alterações.
- Operações parcialmente concluídas carregam um subconjunto de dados do snapshot. Essas operações são relatadas como com falha, mas a mensagem de erro indica quais dados foram carregados. Por exemplo, se os pacotes PyPI estiverem instalados, mas as substituições da opção de configuração do Airflow não tiverem sido bem-sucedidas, a mensagem de erro vai indicar isso.
Para uma operação parcialmente concluída, tente carregar o mesmo snapshot novamente. O Cloud Composer pula as etapas que foram bem-sucedidas na tentativa anterior. Por exemplo, se uma operação falhou no tempo limite, mas o banco de dados foi carregado, a próxima tentativa não vai carregá-lo novamente.
Antes de começar
- No Cloud Composer 1, só é possível salvar snapshots, mas não carregá-los. É possível carregar snapshots de um ambiente do Cloud Composer 1 para os do Cloud Composer 2.
Os snapshots são compatíveis com o Cloud Composer 2 versão 2.0.9 e posterior. O Cloud Composer 1 é compatível com o salvamento de snapshots do ambiente nas versões 1.18.5 ou mais recentes.
Os snapshots não criam um ambiente. Se você quiser carregar um snapshot de um ambiente para um diferente, primeiro crie um novo ambiente e carregue o snapshot nele.
Não é possível carregar snapshots em ambientes que estão com estado de erro. Não é possível corrigir esses ambientes carregando um snapshot. Ainda é possível carregar um snapshot atual em um novo ambiente.
Só é possível carregar snapshots para a mesma versão ou para uma versão posterior do Cloud Composer ou do Airflow. Por exemplo, não é possível carregar um snapshot do Cloud Composer 2.0.2 em um ambiente com o Cloud Composer 2.0.1. Por outro exemplo, não é possível carregar um snapshot do Airflow 2.2.3 para o Airflow 2.1.4.
Os snapshots não alteram a versão do Cloud Composer. Se você fizer upgrade do ambiente para uma versão posterior do Cloud Composer e, em seguida, carregar um snapshot de uma versão anterior, o ambiente ainda manterá a versão atual do Cloud Composer. Por exemplo, carregar um snapshot do Cloud Composer 2.0.1 para o Cloud Composer 2.0.2 não reverte o ambiente para o Cloud Composer 2.0.1.
O tamanho máximo do banco de dados do Airflow que aceita snapshots é de 20 GB. Se o banco de dados do ambiente ocupar mais de 20 GB, reduza o tamanho do banco de dados do Airflow antes de salvar um snapshot.
Se você salvar snapshots em um local fora do bucket do ambiente, a conta de serviço do ambiente precisará ter permissões de leitura e gravação para o local especificado. Por exemplo, o papel Administrador de objetos do Storage inclui essas permissões. É possível aplicá-la a um projeto ou a um bucket específico.
A criação e o armazenamento de snapshots produz custos extras, que estão relacionados ao Cloud Storage. Para saber mais informações, consulte Preços.
Salvar um snapshot do ambiente
O Cloud Composer salva os snapshots do ambiente em uma
subpasta, relativa à pasta especificada.
O nome da pasta contém o ID do projeto, o local do ambiente,
o nome do ambiente e o carimbo de data/hora de quando o snapshot foi salvo. Por exemplo, /snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00
.
Para criar um snapshot do seu ambiente:
No console do Google Cloud, acesse a página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. A página Detalhes do ambiente é aberta.
Clique em Salvar snapshot.
Na caixa de diálogo Salvar snapshot, selecione onde armazenar o snapshot:
Para armazenar o snapshot na pasta
/snapshots
no bucket do ambiente, selecione Usar pasta de snapshots no bucket de ambiente (padrão).Para armazenar o snapshot na pasta personalizada, selecione Usar pasta personalizada em outro bucket e especifique um local.
Clique em Save.
O comando gcloud beta composer environments snapshots save
salva um snapshot do seu ambiente.
- O argumento
snapshot-location
especifica uma pasta em que o snapshot é salvo. Por padrão, os snapshots são salvos na pasta/snapshots
no bucket do ambiente. Por exemplo,gs://us-central1-example-916807e1-bucket/snapshots
. Também é possível especificar qualquer outra pasta.
Para salvar um snapshot do seu ambiente, execute:
gcloud beta composer environments snapshots save \
ENVIRONMENT_NAME \
--location LOCATION \
--snapshot-location "SNAPSHOTS_FOLDER "
Substitua:
ENVIRONMENT_NAME
pelo nome do ambienteLOCATION
pela região em que o ambiente está localizado;- (Opcional)
SNAPSHOTS_FOLDER
pelo URI de uma pasta do bucket em que o snapshot será armazenado. Se você omitir esse argumento, o Cloud Composer salvará o snapshot na pasta/snapshots
no bucket do ambiente.
O exemplo a seguir usa o local padrão:
gcloud beta composer environments snapshots save \
example-environment \
--location us-central1
O exemplo a seguir é salvo em uma pasta personalizada:
gcloud beta composer environments snapshots save \
example-environment \
--location us-central1 \
--snapshot-location "gs://example-bucket/environment_snapshots"
Crie uma solicitação de API
environments.saveSnapshot
.No corpo da solicitação, no campo
snapshotLocation
, especifique a pasta em que você quer salvar o snapshot.
{
"snapshotLocation": "SNAPSHOTS_FOLDER "
}
Substitua:
SNAPSHOTS_FOLDER
pelo URI de uma pasta do bucket em que o snapshot será salvo.
Exemplo:
// POST https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment:saveSnapshot
{
"snapshotLocation": "gs://us-central1-example-916807e1-bucket/snapshots"
}
Não é possível salvar e carregar snapshots do ambiente do Terraform.
Salvar e carregar snapshots são ações realizadas em um ambiente. Os snapshots resultantes não fazem parte da definição do ambiente. Como o Terraform gerencia apenas a configuração do ambiente do Cloud Composer, não é possível salvar nem carregar snapshots dele.
Carregar um snapshot do ambiente
No Cloud Composer 1, só é possível salvar snapshots, mas não carregá-los. É possível carregar snapshots de um ambiente do Cloud Composer 1 para os do Cloud Composer 2. Por exemplo, quando você muda seus ambientes para o Cloud Composer 2.