Cloud Composer 1 | Cloud Composer 2
Nesta página, descrevemos como fazer upgrade do ambiente para uma nova versão do Cloud Composer ou Airflow.
Sobre as operações de upgrade
Quando você altera a versão do Airflow ou do Cloud Composer usada pelo seu ambiente, ele é atualizado.
O upgrade não altera a maneira como você se conecta aos recursos no ambiente, como o URL do bucket do ambiente ou o servidor da Web do Airflow.
Durante o upgrade, o Cloud Composer faz o seguinte:
- Reimplanta os componentes do ambiente usando novas versões das imagens do Cloud Composer.
- Aplica alterações de configuração do Airflow, como pacotes PyPI personalizados ou substituições de opções de configuração do Airflow, se o ambiente as tivesse antes do upgrade.
- atualiza a conexão
airflow_db
do Airflow para apontar para o novo banco de dados do Cloud SQL.
Antes de começar
O upgrade está em pré-lançamento. Use esse recurso com cuidado em ambientes de produção.
Não é possível fazer downgrade para uma versão anterior do Cloud Composer ou do Airflow.
Recomendamos criar um novo snapshot do ambiente para poder recriar o ambiente, caso isso seja necessário.
É possível fazer upgrade da versão do Cloud Composer, do Airflow ou ambas ao mesmo tempo.
É possível fazer upgrade de qualquer versão do Cloud Composer apenas para a versão mais recente, três versões anteriores do Cloud Composer e para versões com um cronograma de upgrade estendido.
Para fazer upgrade para versões diferentes da versão mais recente do Cloud Composer, use o Google Cloud CLI, a API ou o Terraform. No console do Google Cloud, só é possível fazer upgrade para a versão mais recente.
Não é possível fazer upgrade para uma versão principal diferente do Cloud Composer ou do Airflow no local. É possível transferir os DAGs e a configuração manualmente entre ambientes. Confira mais informações:
Você 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.
Para acessar a lista de pacotes PyPI em uma versão para a qual você quer fazer upgrade, consulte a lista de versões do Cloud Composer.
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 superior a 16 GB. Nesse caso, execute a manutenção do banco de dados para reduzir o tamanho dele.
Você precisa fazer upgrade para uma versão de imagem que seja compatível com a versão atual do Python do seu ambiente.
Verifique se os DAGs são compatíveis com a versão do Airflow e todos os pacotes de provedores, incluindo o pacote de provedor do Airflow para o Google Cloud e os serviços do Google. É possível verificar as versões dos pacotes de provedor incluídos em uma versão específica do Cloud Composer.
No console do Google Cloud, navegue até a página IAM e administrador > Cotas e limites do sistema e verifique se a cota
Compute Engine Engine API
da CPU não foi excedida. Se o limite de cota estiver sendo atingido, solicite a extensão de cota antes de continuar com a operação de upgrade.É possível fazer upgrade das três últimas versões publicadas do Cloud Composer ou de uma das versões com "suporte a upgrade estendido", conforme descrito nas versões do Cloud Composer.
Verifique se o ambiente está atualizado
O Cloud Composer exibe avisos quando a imagem do ambiente está chegando ao fim do suporte. Esses avisos podem ser usados para sempre manter seus ambientes no período de suporte total.

O Cloud Composer monitora a versão da imagem do Cloud Composer em que seu ambiente se baseia. Quando a imagem estiver próxima do fim da data de suporte, você verá um aviso na lista de ambientes e na página Detalhes do ambiente.
Para verificar se a imagem do ambiente está atualizada:
Console
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.
Acesse a guia Configuração do ambiente.
No campo Versão da 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.
Mostrar upgrades disponíveis
Para ver para quais versões do Cloud Composer é possível fazer upgrade, siga estas etapas:
Console
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.
Acesse a guia Configuração do ambiente e clique em Fazer upgrade da versão da imagem.
Para ver a lista de versões disponíveis, clique no menu suspenso Versão de imagem do Cloud Composer.
gcloud
gcloud beta composer environments list-upgrades \
ENVIRONMENT_NAME \
--location LOCATION
Substitua:
ENVIRONMENT_NAME
pelo nome do ambienteLOCATION
pela região em que o ambiente está localizado;
Exemplo:
gcloud beta 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
Como verificar conflitos de pacote do PyPI antes de fazer o upgrade
É possível verificar se os pacotes PyPI instalados no ambiente têm conflitos com pacotes pré-instalados na nova imagem do Cloud Composer.
Uma verificação bem-sucedida significa que não há conflitos de dependência de pacote PyPI entre a versão atual e a especificada. Observe que 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 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.
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 Cloud Composer 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 no ambiente, execute o comando environments check-upgrade
com a versão de imagem do Cloud Composer para que você quer fazer upgrade.
gcloud beta composer environments check-upgrade \
ENVIRONMENT_NAME \
--location LOCATION \
--image-version COMPOSER_IMAGE
Substitua:
ENVIRONMENT_NAME
pelo nome do ambienteLOCATION
pela região em que o ambiente está localizado;COMPOSER_IMAGE
pela nova versão de imagem do Cloud Composer para a qual você quer fazer upgrade, no formatocomposer-a.b.c-airflow-x.y.z
.
Exemplo:
gcloud beta 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.v1beta1.CheckUpgradeResponse
buildLogUri: https://console.cloud.google.com/cloud-build/builds/79738aa7-...
containsPypiModulesConflict: CONFLICT
pypiConflictBuildLogExtract: |-
The Cloud Build image build failed: Build failed; check build logs for
details. Full log can be found at https://console.cloud.google.com/
cloud-build/builds/79738aa7-...
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": "COMPOSER_IMAGE"
}
Substitua COMPOSER_IMAGE
pela nova versão de imagem do Cloud Composer 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 posterior do Cloud Composer ou do Airflow:
Console
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.
Acesse a guia Configuração do ambiente.
Localize o item Versão da imagem e clique em Fazer upgrade.
No menu suspenso Versão da imagem, selecione uma versão.
Clique em Fazer upgrade.
gcloud
gcloud beta composer environments update \
ENVIRONMENT_NAME \
--location LOCATION \
--image-version COMPOSER_IMAGE
Substitua:
ENVIRONMENT_NAME
pelo nome do ambienteLOCATION
pela região em que o ambiente está localizado;COMPOSER_IMAGE
pela nova versão de imagem do Cloud Composer para a qual você quer fazer upgrade, no formatocomposer-a.b.c-airflow-x.y.z
.
Exemplo:
gcloud beta 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 Beta
environments.patch
.Nesta solicitação:
No parâmetro
updateMask
, especifique a máscaraconfig.softwareConfig.imageVersion
.No campo
imageVersion
do corpo da solicitação, insira a nova versão de imagem do Cloud Composer para a qual você quer fazer upgrade, no formatocomposer-a.b.c-airflow-x.y.z
.
Exemplo:
// PATCH https://composer.googleapis.com/v1beta1/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 Cloud Composer do seu ambiente. Nesse campo, especifique uma nova imagem do Cloud Composer.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
software_config {
image_version = "COMPOSER_IMAGE"
}
}
}
Substitua:
ENVIRONMENT_NAME
pelo nome do ambienteLOCATION
pela região em que o ambiente está localizado;COMPOSER_IMAGE
pela nova versão de imagem do Cloud Composer para a qual você quer fazer upgrade, no formatocomposer-a.b.c-airflow-x.y.z
.
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"
}
}
}