Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Nesta página, explicamos como salvar e carregar o estado do seu ambiente usando snapshots do ambiente.
É possível configurar o ambiente para salvar snapshots automaticamente. Para mais informações, consulte Configurar snapshots programados.
Sobre snapshots de ambiente
Os snapshots do ambiente armazenam o estado do ambiente. É possível salvar e e carregar snapshots do ambiente sob demanda.
É possível usar snapshots para:
Restaure o ambiente para um estado anterior. Crie backups dos usando snapshots e carregue um deles para restaurar de nuvem. Por exemplo, é possível reverter uma operação de atualização que instala pacotes PyPI ou substitui as opções de configuração do Airflow, mesmo depois que o ambiente for atualizado.
Executar upgrades e cópias de ambientes lado a lado. Criar um snapshot de um ambiente atual, crie um novo que use a mesma do Cloud Composer e depois aplicar o snapshot a essa nova de nuvem. Esse procedimento é semelhante a migrar. Pause os DAGs antes de criar o snapshot para evitar execuções duplicadas do DAG.
Como os snapshots são armazenados
Um snapshot de ambiente é um conjunto de arquivos que descrevem o estado e armazenar o backup dos dados dele.
É possível criar vários snapshots do ambiente. Snapshots do ambiente não incrementais. É possível usar qualquer snapshot independente de outros.
O Cloud Composer não exclui snapshots quando você exclui de nuvem.
Por padrão, o Cloud Composer armazena snapshots no snapshots/
no bucket do ambiente. Também é possível especificar um local personalizado
quando você cria um snapshot.
Embora a IU do Cloud Storage exiba dados como pastas por conveniência, os buckets trabalham em uma estrutura de arquivos simples. Isso não muda a forma como você trabalha para salvar e o carregamento de snapshots no console do Google Cloud. Lembre-se disso e executar operações diretamente nos arquivos do bucket. Para mais informações, consulte Namespace do objeto.
Considerações de segurança para snapshots
Para reduzir esse risco de segurança, armazene informações sensíveis usada por DAGs do Airflow, como chaves ou senhas, com o Secret Manager. Para mais informações, consulte Configure o Secret Manager para o ambiente.
Confira as permissões de segurança do bucket do ambiente. Se você para armazenar snapshots do ambiente em um bucket personalizado, as permissões de acesso do usuário estejam configuradas corretamente no em um projeto de IA. Ao atribuir permissões, verifique se o serviço do ambiente tem permissões suficientes para salvar e carregar snapshots da do Google Cloud.
Quais dados são salvos em 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 DAG histórico de execuções.
- Um backup das pastas
/dags
,/data
e/plugins
do bucket do seu ambiente de execução. - A chave fernet do ambiente.
- Outras informações sobre a configuração do ambiente, como os parâmetros de escala e desempenho do ambiente. O Cloud Composer não usa essas informações ao carregar snapshots.
Quais dados são carregados dos snapshots
O Cloud Composer carrega os seguintes dados dos snapshots:
- Substituições de configuração do Airflow.
- Variáveis de ambiente.
Pacotes PyPI personalizados (a menos que você opte por pular a instalação).
O conteúdo do banco de dados do Airflow, incluindo os estados das tarefas executadas e Histórico de execuções do DAG.
Conteúdo das pastas
/dags
,/data
e/plugins
do snapshot são carregados no bucket do ambiente.A chave de fernet do snapshot é usada para recriptografar os dados do com a própria chave fernet do ambiente. A chave de fernet da permanece inalterado.
O Cloud Composer armazena algumas informações sobre os do ambiente em snapshots, ela não é usada ao carregar snapshots. Os seguintes parâmetros do seu ambiente não mudam quando você carregar um snapshot:
- Configuração do ambiente, como escalonamento e desempenho parâmetros.
- Configuração de rede do ambiente.
- Conteúdo do bucket do ambiente fora do
/dags
,/data
e/plugins
pastas. - Rótulos de ambiente.
Todas as configurações aplicadas na infraestrutura do Cloud Composer sem usar a API Cloud Composer pode ser perdida ao carregar um snapshot.
Sobre operações parcialmente concluídas
Quando você carrega um snapshot, a operação pode ser bem-sucedida, com falha ou parcialmente concluído:
- Operações bem-sucedidas carregam todos os dados do snapshot.
- As operações com falha não causam mudanças.
- 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 os dados foram carregados. Por exemplo, se pacotes PyPI estiverem instalados, mas as substituições de opções de configuração do Airflow não funcionaram, o erro indica isso.
Para uma operação parcialmente concluída, tente carregar o mesmo snapshot de novo. O Cloud Composer pula as etapas que foram bem-sucedidas de todas as tentativas anteriores. Por exemplo, se uma operação falhar no tempo limite, mas o banco de dados for carregado, a próxima tentativa não carregará o no banco de dados novamente.
Antes de começar
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 de ambiente para as versões 1.18.5 ou posteriores à 1.18.5.
Os snapshots não criam um ambiente. Se você quiser carregar um snapshot um ambiente para outro, primeiro é preciso criar um novo e carregar o snapshot nele.
Não é possível carregar snapshots em ambientes com estado de erro. É corrigir esses ambientes carregando um snapshot. Você ainda pode carregar um snapshot atual em um novo ambiente.
Só é possível carregar snapshots na mesma versão ou em uma versão mais recente do Cloud Composer ou Airflow. Por exemplo, não é possível carregar snapshot do Cloud Composer 2.0.2 para um ambiente com Cloud Composer 2.0.1 Como 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ê atualiza seu ambiente para uma versão posterior do Cloud Composer, carregue um snapshot de uma versão anterior seu ambiente ainda mantém a versão atual do Cloud Composer Por exemplo, carregar um snapshot As versões do Cloud Composer 2.0.1 a 2.0.2 não têm reverter 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.
O comprimento máximo do nome de um objeto no bucket do ambiente não pode ser é maior que 1.024 símbolos. Caso contrário, não será possível criar snapshots.
Se você salvar snapshots em um local fora do ambiente bucket, a conta de serviço do seu ambiente precisa ter de leitura e gravação para o local especificado. Por exemplo, o O papel Administrador de objetos do Storage tem essas permissões. Você pode aplicá-lo a um projeto ou a um bucket específico.
A criação e o armazenamento de snapshots geram outros custos, para o Cloud Storage. Para saber mais informações, consulte Preços.
Salvar um snapshot do ambiente
O Cloud Composer salva snapshots de ambiente em uma
subfolder, relativa à pasta que você especificar.
O nome da pasta contém o ID do projeto, o local do ambiente, a
o nome do ambiente e o carimbo de data/hora em que o snapshot foi salvo. Por exemplo, /snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00
.
Console
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 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
do arquivo do bucket, selecione Usar pasta de snapshot no bucket do ambiente (padrão).Para armazenar o snapshot na pasta personalizada, selecione Usar a pasta personalizada em outro bucket, depois especificar um local.
Clique em Salvar.
gcloud
O comando gcloud beta composer environments snapshots save
salva um snapshot do ambiente.
- O argumento
snapshot-location
especifica uma pasta em que o snapshot é salvas. Por padrão, os snapshots são salvos na pasta/snapshots
do seu bucket do seu ambiente de execução. 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 da pasta do bucket em que o armazenamento será armazenado. o snapshot. 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"
API
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 de bucket salvar o snapshot.
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"
}
Terraform
Não é possível salvar e carregar snapshots de ambiente do Terraform.
Salvar e carregar snapshots são ações executadas em um ambiente, e a os snapshots resultantes não fazem parte da definição de um ambiente. Como O Terraform gerencia apenas a configuração do ambiente do Cloud Composer, não é possível salvar nem carregar snapshots do ambiente dele.
Carregar um snapshot de ambiente
Considere a seguinte situação. Por exemplo: catch-up é ativado, e o Airflow executa um DAG em uma programação entre o momento em que o snapshot foi criado e quando ele foi carregado. Nesse caso, depois que você carrega o snapshot, o Airflow não tem informações sobre a execução do DAG que aconteceu, então o Airflow executa o DAG novamente para o ao mesmo tempo e dados.
Como outro exemplo, considere um DAG executado diariamente. Você faz uma em seguida, o Airflow executa esse DAG e, depois disso, você carrega o snapshot no mesmo dia. Nesse caso, o Airflow executa o DAG novamente, mesmo que a atualização seja desativado.
Console
Para carregar um snapshot no ambiente do Cloud Composer 2:
No console do Google Cloud, acesse a página Ambientes.
Na lista de ambientes, clique no nome de nuvem. A página Detalhes do ambiente é aberta.
Clique em Carregar snapshot.
Na caixa de diálogo Carregar snapshot, clique em Procurar.
Selecione uma pasta que armazene o snapshot. O nome da pasta indica ID do seu projeto, a localização do ambiente e o carimbo de data/hora em que o snapshot foi salvo. Por exemplo,
/snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00
.(Opcional) Para pular a instalação de pacotes PyPI personalizados do snapshot, selecione Skip PyPI packages installation. Se você carregar snapshot de um ambiente com instalação pacotes PyPI personalizados, o Cloud Composer não vai instalar esses pacotes personalizados.
Clique em Carregar e aguarde até que o Cloud Composer carregue o snapshot.
gcloud
O comando gcloud beta composer environments snapshots load
carrega uma
para seu ambiente.
O argumento
--snapshot-path
especifica uma pasta em que o snapshot é localizado.O nome da pasta lista o ID do projeto, o ID local e o carimbo de data/hora em que o snapshot foi salvo. Por exemplo,
gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00
.(Opcional) O argumento
--skip-pypi-packages-installation
ignora a a instalação de pacotes PyPI personalizados a partir do snapshot. Se você carregar snapshot de um ambiente com instalação pacotes PyPI personalizados, o Cloud Composer não vai instalar esses pacotes personalizados.
gcloud beta composer environments snapshots load \
DESTINATION_ENVIRONMENT_NAME \
--location LOCATION \
--snapshot-path "SNAPSHOT_PATH"
Substitua:
DESTINATION_ENVIRONMENT_NAME
pelo nome do ambiente em que você quiser carregar o snapshot.LOCATION
pela região em que o ambiente está localizado;SNAPSHOT_PATH
pelo URI de um bucket, seguido pelo caminho para o snapshot.
Exemplo:
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
Crie uma solicitação de API
environments.loadSnapshot
.No corpo da solicitação, no campo
snapshotPath
, especifique o URI de um bucket, seguido pelo caminho para o snapshot. O nome a pasta lista o ID do projeto, o local do ambiente e o carimbo de data/hora em que o snapshot foi salvo. Por exemplo,gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00
.(Opcional) No corpo da solicitação, no campo
skipPypiPackagesInstallation
especificar se o Cloud Composer precisa ignorar o a instalação de pacotes PyPI personalizados a partir do snapshot. Se você carregar snapshot de um ambiente com instalação pacotes PyPI personalizados, o Cloud Composer não vai instalar esses pacotes personalizados.Este campo é opcional. Se você omitir esse campo, o Cloud Composer instala pacotes PyPI do snapshot.
{
"snapshotPath": "SNAPSHOT_PATH"
}
Substitua:
SNAPSHOT_PATH
pelo URI de uma pasta de bucket para armazenar o snapshot.
Exemplo:
// 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
Não é possível salvar e carregar snapshots de ambiente usando o Terraform.
Salvar e carregar snapshots são ações executadas em um ambiente, e a os snapshots resultantes não fazem parte da definição de um ambiente. Como O Terraform gerencia apenas a configuração do ambiente do Cloud Composer, não é possível salvar nem carregar snapshots do ambiente dele.