Airflow Gerenciado (Geração 3) | Airflow Gerenciado (Geração 2) | Airflow Gerenciado (Geração 1 legada)
Nesta página, descrevemos como fazer upgrade do ambiente para uma nova versão do Airflow Gerenciado ou do Airflow.
Sobre as operações de upgrade
É possível fazer upgrade da versão do Airflow Gerenciado, da versão do Airflow ou de ambos ao mesmo tempo.
Quando você muda a versão do Airflow ou do Airflow Gerenciado usada pelo ambiente:
O Airflow Gerenciado reimplanta os componentes do ambiente usando novas versões das imagens do Airflow Gerenciado.
O Airflow Gerenciado aplica mudanças de configuração do Airflow, como pacotes PyPI personalizados ou modificações de opções de configuração do Airflow, se o ambiente os tiver antes do upgrade.
O Airflow Gerenciado atualiza a conexão
airflow_dbdo Airflow para apontar para o novo banco de dados do Cloud SQL.
O upgrade não muda a maneira como você se conecta aos recursos do ambiente, como o URL do bucket do ambiente ou o servidor da Web do Airflow.
Limitações das operações de upgrade
As operações de upgrade têm as seguintes limitações:
As versões do Airflow Gerenciado são lançadas gradualmente em todas as regiões com suporte ao Airflow Gerenciado ao longo de vários dias. A versão mais recente de um lançamento em andamento ainda não está disponível na sua região.
Não é possível fazer downgrade para uma versão anterior do Airflow Gerenciado ou do Airflow.
No Google Cloud console do, só é possível fazer upgrade para as versões mais recentes com suporte do Airflow Gerenciado (Geração 2).
Na CLI do Google Cloud, na API ou no Terraform, é possível fazer upgrade de um ambiente para as versões mais recentes com suporte, três versões anteriores do Airflow Gerenciado (Geração 2), a última versão de patch da versão secundária anterior e para versões com um cronograma de upgrade estendido. Não é possível fazer upgrade para outras versões do Airflow Gerenciado (Geração 2), mesmo que elas ainda tenham suporte e possam ser usadas para criar um novo ambiente.
Exemplo de opções de upgrade para a Google Cloud CLI, a API e o Terraform:
- Versões mais recentes:
composer-2.11.5-airflow-* - Três versões anteriores do Airflow Gerenciado (Geração 2):
composer-2.11.4-airflow-*,composer-2.11.3-airflow-*,composer-2.11.2-airflow-*. - Último patch da versão secundária anterior do Airflow Gerenciado (Geração 2):
composer-2.10.2-airflow-* - Versões do Airflow Gerenciado (Geração 2) com um cronograma de upgrade estendido:
composer-2.10.2-airflow-*,composer-2.10.1-ariflow-*,composer-2.9.7-airflow-*e outras versões com um cronograma de upgrade estendido.
- Versões mais recentes:
A versão para a qual você faz upgrade precisa oferecer suporte à versão atual do Python do ambiente.
Os limites de cota da API Compute Engine podem impedir upgrades. No Google Cloud console do, acesse a página IAM e administrador > Cotas e limites do sistema e verifique se a cota da API Compute Engine para CPU não foi excedida. Se o limite de cota estiver se aproximando, solicite uma extensão de cota antes de continuar com a operação de upgrade.
Não é possível fazer upgrade para uma versão principal diferente do Airflow Gerenciado ou do Airflow no local. É possível transferir manualmente DAGs e configurações entre ambientes. Para mais informações, consulte:
- Migre do Airflow Gerenciado (Geração 1 legada), Airflow 1 para o Airflow Gerenciado (Geração 2), Airflow 2.
- Migre do Airflow Gerenciado (Geração 1 legada), Airflow 2 para o Airflow Gerenciado (Geração 2), Airflow 2.
- Migre do Airflow Gerenciado (Geração 1 legada), Airflow 1 para o Airflow Gerenciado (Geração 1 legada), Airflow 2.
Não será possível fazer upgrade do ambiente se o banco de dados do Airflow tiver mais de 16 GB de dados. Durante um upgrade, um aviso será exibido se o tamanho do banco de dados do Airflow for maior que 16 GB. Nesse caso, realize a manutenção do banco de dados para reduzir o tamanho dele.
Se você usar o mecanismo XCom para transferir arquivos, certifique-se de que você o use de acordo com as diretrizes do Airflow. A transferência de arquivos grandes ou de um grande número de arquivos usando o XCom afeta o desempenho do banco de dados do Airflow e pode levar a falhas ao carregar snapshots ou fazer upgrade do ambiente. Considere usar alternativas como o Cloud Storage para transferir grandes volumes de dados.
Antes de começar
Recomendamos criar um novo snapshot do ambiente para poder recriá-lo, caso seja necessário.
Sua conta precisa ter um papel que acione operações de upgrade de ambiente. Além disso, a conta de serviço do ambiente precisa ter um papel com permissões suficientes para executar operações de upgrade. Consulte Controle de acesso para mais informações.
Verificar se o ambiente está atualizado
O Airflow Gerenciado exibe avisos quando a imagem do ambiente se aproxima da data de término do suporte completo. Você pode usar esses avisos para manter o ambiente com suporte.
O Airflow Gerenciado acompanha a versão de imagem do Airflow Gerenciado em que o ambiente se baseia. Quando ela se aproxima da data de término do suporte, você vê um aviso na lista de ambientes e na página Detalhes do ambiente.
Para verificar se o ambiente está atualizado:
Console
No Google Cloud console do, acesse a página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. A página Detalhes do ambiente será aberta.
Acesse a guia Configuração do ambiente.
No campo versão de imagem, uma das seguintes mensagens será exibida:
Versão mais nova disponível. A imagem do ambiente é totalmente compatível.
Nova versão disponível. A imagem do ambiente é totalmente compatível e é possível fazer upgrade dela para uma versão posterior.
O suporte para esta versão de imagem termina em... A imagem do ambiente se aproxima do final do período de suporte completo.
Esta versão não é compatível desde... Seu ambiente já passou do período de suporte completo.
gcloud
Essa funcionalidade não está disponível na Google Cloud CLI. Em vez disso, você pode conferir os upgrades sugeridos, que mostram as novas versões disponíveis.
API
Essa funcionalidade não está disponível na API. Em vez disso, você pode conferir os upgrades sugeridos, que mostram as novas versões disponíveis.
Conferir upgrades sugeridos
O Airflow Gerenciado fornece uma lista de versões do Airflow Gerenciado para as quais é possível fazer upgrade do ambiente.
Para conferir as versões do Airflow Gerenciado sugeridas para um upgrade:
Console
No Google Cloud console do, acesse a página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. A página Detalhes do ambiente será aberta.
Acesse a guia Configuração do ambiente e clique em Fazer upgrade da versão da imagem.
Para a lista de versões sugeridas, clique no menu suspenso Versão da imagem do Airflow Gerenciado.
gcloud
gcloud composer environments list-upgrades \
ENVIRONMENT_NAME \
--location LOCATION
Substitua:
ENVIRONMENT_NAMEpelo nome do ambienteLOCATIONpela região em que o ambiente está localizado
Exemplo:
gcloud composer environments list-upgrades example-environment \
--location us-central1
API
É possível conferir as versões disponíveis para um local. Para fazer isso, crie uma solicitação de API
imageVersions.list.
Exemplo:
// GET https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/imageVersions
Verificar conflitos de pacote PyPI
É possível verificar se os pacotes PyPI instalados no ambiente têm conflitos com pacotes pré-instalados na nova imagem do Airflow Gerenciado.
Uma verificação bem-sucedida significa que não há conflitos nas dependências de pacote PyPI entre a versão atual e a especificada. No entanto, uma operação de upgrade ainda pode não ser bem-sucedida por outros motivos.
Console
Para executar uma verificação de upgrade no ambiente:
No Google Cloud console do, acesse a página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. A página Detalhes do ambiente será aberta.
Acesse a guia Configuração do ambiente , localize a entrada Versão da imagem e clique em Fazer upgrade.
Na caixa de diálogo Upgrade da versão do ambiente, na lista suspensa Nova versão, selecione uma versão do Airflow Gerenciado para a qual quer fazer upgrade.
Na seção Compatibilidade de pacotes PyPI, clique em Verificar conflitos.
Aguarde a conclusão da verificação. Se houver conflitos de dependência de pacote PyPI, as mensagens de erro exibidas conterão detalhes sobre pacotes conflitantes e versões de pacotes.
gcloud
Para executar uma verificação de upgrade para o ambiente, execute o
environments check-upgrade
comando com a
versão de imagem do Airflow Gerenciado
para a qual você quer fazer upgrade.
gcloud composer environments check-upgrade \
ENVIRONMENT_NAME \
--location LOCATION \
--image-version VERSION
Substitua:
ENVIRONMENT_NAMEpelo nome do ambienteLOCATIONpela região em que o ambiente está localizadoVERSIONcom a nova versão de imagem do Airflow Gerenciado para a qual você quer fazer upgrade, no formatocomposer-a.b.c-airflow-x.y.z. É possível usar todos os aliases de versão.
Exemplo:
gcloud composer environments check-upgrade example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15
Exemplo de saída:
Waiting for [projects/example-project/locations/us-central1/environments/
example-environment] to be checked for PyPI package conflicts when upgrading
to composer-1.20.12-airflow-1.10.15. Operation [projects/example-project/locations/
us-central1/operations/04d0e8b2-...]...done.
...
Response:
'@type': type.googleapis.com/
google.cloud.orchestration.airflow.service.v1.CheckUpgradeResponse
buildLogUri: ...
containsPypiModulesConflict: CONFLICT
pypiConflictBuildLogExtract: |-
The Cloud Build image build failed: Build failed; check build logs for
details. Full log can be found at ...
Error details: tensorboard 2.2.2 has requirement
setuptools>=41.0.0, but you have setuptools 40.3.0.
Como alternativa, é possível executar uma verificação de upgrade de forma assíncrona. Use o
argumento --async para fazer uma chamada assíncrona e verifique o resultado com
o comando
gcloud composer operations describe.
API
Crie uma solicitação de API environments.checkUpgrade.
Especifique a versão da imagem no campo imageVersion:
{
"imageVersion": "VERSION"
}
Substitua VERSION pela nova versão para a qual você quer fazer upgrade, no
formato composer-a.b.c-airflow-x.y.z
Fazer upgrade do ambiente
Para fazer upgrade do ambiente para uma versão mais recente do Airflow Gerenciado ou do Airflow:
Console
No Google Cloud console do, acesse a página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. A página Detalhes do ambiente será aberta.
Acesse a guia Configuração do ambiente.
Localize o item versão de imagem e clique em Fazer upgrade.
No menu suspenso Versão da imagem, selecione uma versão do Airflow Gerenciado para a qual quer fazer upgrade.
Clique em Fazer upgrade.
gcloud
gcloud composer environments update \
ENVIRONMENT_NAME \
--location LOCATION \
--image-version VERSION
Substitua:
ENVIRONMENT_NAMEpelo nome do ambienteLOCATIONpela região em que o ambiente está localizadoVERSIONcom a nova versão de imagem do Airflow Gerenciado para a qual você quer fazer upgrade, no formatocomposer-a.b.c-airflow-x.y.z. Também é possível usar todos os aliases de versão.
Exemplo:
gcloud composer environments update
example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15
API
Crie uma solicitação de API
environments.patch.Nesta solicitação:
No parâmetro
updateMask, especifique a máscaraconfig.softwareConfig.imageVersion.No corpo da solicitação, no campo
imageVersion, especifique uma nova versão para a qual você quer fazer upgrade.
Exemplo:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.imageVersion
{
"config": {
"softwareConfig": {
"imageVersion": "composer-1.20.12-airflow-1.10.15"
}
}
}
Terraform
O campo image_version no bloco config.software_config
controla
a imagem do Airflow Gerenciado do ambiente. Nesse campo, especifique uma nova imagem do Airflow Gerenciado.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
software_config {
image_version = "VERSION"
}
}
}
Substitua:
ENVIRONMENT_NAMEpelo nome do ambienteLOCATIONpela região em que o ambiente está localizado a nova versão de imagem do Airflow Gerenciado para a qual você quer fazer upgrade, nocomposer-a.b.c-airflow-x.y.zformato. Também é possível usar todos os aliases de versão.
Exemplo:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
software_config {
image_version = "composer-1.20.12-airflow-1.10.15"
}
}
}