Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Esta página descreve como atualizar o seu ambiente para uma nova versão do Airflow.
Acerca das operações de atualização
No Cloud Composer 3, não gere a versão do Cloud Composer do seu ambiente:
- O Cloud Composer atualiza automaticamente os componentes de infraestrutura do seu ambiente. Estes componentes estão relacionados com a funcionalidade do Cloud Composer e não alteram o funcionamento do Airflow nem a forma como os seus DAGs do Airflow são executados.
- O Cloud Composer não atualiza automaticamente a versão do Airflow e a compilação, os componentes do Airflow nem os componentes estreitamente relacionados com as cargas de trabalho do Airflow. Não são alterados quando os componentes da infraestrutura são atualizados automaticamente.
- Pode atualizar manualmente para uma nova versão ou compilação do Airflow.
Por exemplo, pode usar a mesma versão e compilação do Airflow durante vários meses, sem fazer atualizações, e o seu ambiente continua a receber as atualizações, as correções e as melhorias mais recentes do Cloud Composer dos componentes de infraestrutura do ambiente. Quando decidir mudar para uma nova versão ou compilação do Airflow, atualize a versão do Airflow no seu ambiente.
Acerca da atualização da versão do Airflow
O seu ambiente altera a versão ou a compilação do Airflow da seguinte forma:
Controla a versão (e a compilação) do Airflow do seu ambiente. Pode realizar a operação de atualização da versão do Airflow quando optar por mudar o seu ambiente para uma versão diferente do Airflow. Por exemplo, isto pode acontecer se a versão e a compilação atuais do Airflow já não forem suportadas.
O Cloud Composer volta a implementar os componentes do Airflow do seu ambiente usando a versão e a compilação do Airflow especificadas.
O 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 seu ambiente os tiver antes da atualização.
O Cloud Composer atualiza a ligação do Airflow
airflow_db
para apontar para a nova base de dados do Cloud SQL.
A alteração da versão do Airflow não altera a forma como se liga aos recursos no seu ambiente, como o URL do contentor do seu ambiente ou o servidor Web do Airflow.
Acerca das operações de atualização automática da infraestrutura
O Cloud Composer executa periodicamente operações de atualização automática da infraestrutura:
As operações de atualização automática da infraestrutura são executadas periodicamente durante os períodos de manutenção especificados para o ambiente.
Não é possível desativar as atualizações automáticas da infraestrutura no Cloud Composer 3. Pode controlar os períodos em que as atualizações automáticas podem ser executadas especificando períodos de manutenção personalizados para o seu ambiente.
Esta operação é visível na Google Cloud consola e nos registos do ambiente, como qualquer outra operação de longa duração. Enquanto a operação estiver em execução, não pode iniciar outras operações ao nível do ambiente (mas continua a poder executar DAGs do Airflow).
Em alguns casos, as atualizações automáticas da infraestrutura podem reiniciar os componentes do Airflow. Durante esses reinícios, os trabalhadores do Airflow são terminados com elegância com um período de tolerância de 24 horas. Se tiver tarefas que demoram mais de 24 horas a concluir, considere usar operadores adiáveis. Uma atualização pode resultar num curto período de indisponibilidade dos componentes de infraestrutura do ambiente, como a monitorização do ambiente.
Limitações das operações de atualização
As operações de atualização têm as seguintes limitações:
As versões do Cloud Composer são implementadas gradualmente em todas as regiões suportadas pelo Cloud Composer ao longo de vários dias. A versão mais recente de um lançamento em curso pode ainda não estar disponível na sua região.
Não pode reverter para uma versão ou uma compilação anterior do Airflow.
Não pode atualizar o seu ambiente se a base de dados do Airflow contiver mais de 20 GB de dados. Durante uma atualização, é apresentado um aviso se o tamanho da base de dados do Airflow for superior a 20 GB. Neste caso, faça a manutenção da base de dados para reduzir o tamanho da base de dados.
Se usar o mecanismo XCom para transferir ficheiros, certifique-se de que o usa de acordo com as diretrizes do Airflow. A transferência de ficheiros grandes ou de um grande número de ficheiros através do XCom afeta o desempenho da base de dados do Airflow e pode provocar falhas ao carregar instantâneos ou atualizar o seu ambiente. Considere usar alternativas, como o Cloud Storage, para transferir grandes volumes de dados.
Antes de começar
Recomendamos que crie uma nova captura de ecrã do ambiente para poder recriá-lo, caso seja necessário.
A sua conta tem de ter uma função que possa acionar operações de atualização do ambiente. Além disso, a conta de serviço do ambiente tem de ter uma função com autorizações suficientes para realizar operações de atualização. Para mais informações, consulte o artigo Controlo de acesso.
Verifique se o seu ambiente está atualizado
O Cloud Composer apresenta avisos quando a compilação do Airflow do seu ambiente se aproxima da data de fim do suporte técnico. Pode usar estes avisos para manter sempre o seu ambiente suportado.

O Cloud Composer monitoriza a versão e a compilação do Airflow nas quais o seu ambiente se baseia. Quando se aproxima da data de fim do apoio técnico, pode ver um aviso na lista de ambientes e na página Detalhes do ambiente.
Para verificar se o seu ambiente está atualizado:
Consola
Na Google Cloud consola, aceda à página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. É apresentada a página Detalhes do ambiente.
Aceda ao separador Configuração do ambiente.
No campo Versão da imagem, é apresentada uma das seguintes mensagens:
Versão mais recente disponível. A imagem do ambiente é totalmente suportada.
Nova versão disponível. A imagem do ambiente é totalmente suportada e pode atualizá-la para uma versão posterior.
O suporte desta versão da imagem termina em… A imagem do ambiente aproxima-se do fim do período de apoio técnico completo.
Esta versão não é suportada a partir de... O seu ambiente já ultrapassou o período de apoio técnico completo.
gcloud
Esta funcionalidade não está disponível através da CLI do Google Cloud. Em alternativa, pode ver as atualizações sugeridas, que mostram as novas versões disponíveis.
API
Esta funcionalidade não está disponível através da API. Em alternativa, pode ver as atualizações sugeridas, que mostram as novas versões disponíveis.
Veja as atualizações sugeridas
O Cloud Composer fornece uma lista de compilações do Airflow para as quais pode atualizar o seu ambiente.
Para ver as versões do Cloud Composer sugeridas para uma atualização:
Consola
Na Google Cloud consola, aceda à página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. É apresentada a página Detalhes do ambiente.
Aceda ao separador Configuração do ambiente e clique em Atualizar versão da imagem.
Para a lista de versões sugeridas, clique no menu pendente Versão da imagem do Cloud Composer.
gcloud
gcloud composer environments list-upgrades \
ENVIRONMENT_NAME \
--location LOCATION
Substituição:
ENVIRONMENT_NAME
com o nome do ambiente.LOCATION
com a região onde o ambiente está localizado.
Exemplo:
gcloud composer environments list-upgrades example-environment \
--location us-central1
API
Pode ver as versões disponíveis para uma localização. Para o fazer, crie um pedido da API imageVersions.list
.
Por exemplo:
// GET https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/imageVersions
Verifique se existem conflitos de pacotes do PyPI
Pode verificar se os pacotes PyPI instalados no seu ambiente têm conflitos com os pacotes pré-instalados na nova versão ou compilação do Airflow.
Uma verificação bem-sucedida significa que não existem conflitos nas dependências do pacote PyPI entre a versão atual e a versão especificada. No entanto, uma operação de atualização pode não ser bem-sucedida por outros motivos.
Consola
Para executar uma verificação de atualização para o seu ambiente:
Na Google Cloud consola, aceda à página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. É apresentada a página Detalhes do ambiente.
Aceda ao separador Configuração do ambiente, localize a entrada Versão da imagem e clique em Atualizar.
Na caixa de diálogo Atualização da versão do ambiente, na lista pendente Nova versão, selecione uma versão ou uma compilação do Airflow para a qual quer atualizar.
Na secção Compatibilidade de pacotes PyPI, clique em Verificar conflitos.
Aguarde até que a verificação esteja concluída. Se existirem conflitos de dependência de pacotes PyPI, as mensagens de erro apresentadas contêm detalhes sobre pacotes e versões de pacotes em conflito.
gcloud
Para executar uma verificação de atualização para o seu ambiente, execute o comando
environments check-upgrade
com a versão ou a compilação do Airflow
para a qual quer atualizar.
gcloud composer environments check-upgrade \
ENVIRONMENT_NAME \
--location LOCATION \
--airflow-version VERSION
Substituição:
ENVIRONMENT_NAME
com o nome do ambiente.LOCATION
com a região onde o ambiente está localizado.VERSION
com a nova versão e compilação do Airflow para as quais quer fazer a atualização no formatoairflow-x.y.z-build.t
. Pode usar todos os alias de versão.
Exemplo:
gcloud composer environments check-upgrade example-environment \
--location us-central1 \
--airflow-version airflow-2.10.5-build.16
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-3-airflow-2.10.5-build.16. 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.
Em alternativa, pode executar uma verificação de atualização de forma assíncrona. Use o argumento
--async
para fazer uma chamada assíncrona e, em seguida, verifique o resultado com o comando
gcloud composer operations describe
.
API
Construa um pedido da API environments.checkUpgrade
.
Especifique a versão da imagem no campo imageVersion
:
{
"imageVersion": "VERSION"
}
Substitua VERSION
pela nova versão para a qual quer fazer a atualização no formato composer-3-airflow-x.y.z-build.t
.
Verifique se existem conflitos com o Cloud Composer 3
O Cloud Composer 3 é a versão principal mais recente do Cloud Composer. Pode verificar se um ambiente do Cloud Composer 2 pode ser atualizado para o Cloud Composer 3 com uma verificação de atualização. A seguinte descrição aplica-se aos ambientes do Cloud Composer 2.
Embora não seja possível migrar o seu ambiente do Cloud Composer 2 para o Cloud Composer 3 no local, pode verificar se existem problemas de compatibilidade através de uma verificação de atualização. Recomendamos que o faça antes de migrar para o Cloud Composer 3.
Para verificar a compatibilidade com o Cloud Composer 3, faça uma verificação de atualização regular do seu ambiente do Cloud Composer 2 e especifique uma versão do Cloud Composer 3 como destino.
Cada conflito comunicado pode ter os seguintes tipos:
O relatório de conflitos
BLOCKING
indica elementos de configuração do ambiente incompatíveis que não são suportados no Cloud Composer 3. Recomendamos que resolva estes conflitos antes de iniciar uma migração para o Cloud Composer 3.Os conflitos
NON_BLOCKING
comunicam elementos de configuração do ambiente que são diferentes no Cloud Composer 3 e podem causar um comportamento inesperado. Por exemplo, as alterações aos valores predefinidos, como os períodos de manutenção predefinidos, são comunicadas como conflitos não bloqueadores. Recomendamos que verifique se estes conflitos podem causar problemas antes de iniciar o processo de migração.Os conflitos de pacotes do PyPI também são comunicados como parte desta verificação. São incluídas nos relatórios separadamente dos conflitos de configuração, da mesma forma que para uma verificação de compatibilidade de pacotes do PyPI normal.
Consola
Para verificar a compatibilidade com o Cloud Composer 3, use a CLI gcloud ou a API Cloud Composer. Google Cloud A consola só suporta verificações de compatibilidade de pacotes PyPI.
gcloud
Para verificar a compatibilidade com o Cloud Composer 3, execute o comando
environments check-upgrade
e especifique uma versão do Cloud Composer 3 como destino.
gcloud composer environments check-upgrade \
ENVIRONMENT_NAME \
--location LOCATION \
--image-version COMPOSER_3_VERSION
Substituição:
ENVIRONMENT_NAME
com o nome do ambiente.LOCATION
com a região onde o ambiente está localizado.COMPOSER_3_VERSION
com a versão e a compilação do Airflow para as quais quer fazer a atualização, no formatoairflow-x.y.z-build.t
. Pode usar todos os alias de versão.
Exemplo:
gcloud composer environments check-upgrade example-environment \
--location us-central1 \
--image-version composer-3-airflow-2
Exemplos de mensagens de conflito:
...
- message: Error validating property [core]unit_test_mode. Overriding [core]
unit_test_mode is not permitted.
type: BLOCKING
- message: Environment variables [GOOGLE_CLOUD_PROJECT] may not be overridden.
type: BLOCKING
- message: You have to specify Worker CPUs to be 0.5, 1.0 or multiples of 2.0.
type: BLOCKING
- message: The environment uses a default maintenance window, which is
different in Composer 2 and Composer 3. Unless set to a custom value, the
maintenance window will be changed to a new default after the upgrade.
type: NON_BLOCKING
...
Em alternativa, pode executar esta verificação de forma assíncrona. Use o argumento
--async
para fazer uma chamada assíncrona e, em seguida, verifique o resultado com o comando
gcloud composer operations describe
.
API
Construa um pedido da API environments.checkUpgrade
.
Especifique a versão da imagem no campo imageVersion
:
{
"imageVersion": "COMPOSER_3_VERSION"
}
Substitua COMPOSER_3_VERSION
pela versão e compilação do Airflow para a qual quer fazer a atualização, no formato airflow-x.y.z-build.t
. Pode usar todos os alias de versão.
Atualize o seu ambiente
Para atualizar o seu ambiente para uma nova versão ou compilação do Airflow:
Consola
Na Google Cloud consola, aceda à página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. É apresentada a página Detalhes do ambiente.
Aceda ao separador Configuração do ambiente.
Localize o item Versão de imagem e clique em Atualizar.
No menu pendente Versão da imagem, selecione uma versão ou uma compilação do Airflow para a qual quer fazer a atualização.
Clique em Atualizar.
gcloud
gcloud composer environments update \
ENVIRONMENT_NAME \
--location LOCATION \
--airflow-version VERSION
Substituição:
ENVIRONMENT_NAME
com o nome do ambiente.LOCATION
com a região onde o ambiente está localizado.VERSION
com a nova versão e compilação do Airflow para as quais quer fazer a atualização no formatoairflow-x.y.z-build.t
. Também pode usar todos os alias de versão.
Por exemplo:
gcloud composer environments update
example-environment \
--location us-central1 \
--airflow-version airflow-2.10.5-build.16
API
Construa um pedido de API
environments.patch
.Nesta solicitação:
No parâmetro
updateMask
, especifique a máscaraconfig.softwareConfig.imageVersion
.No corpo do pedido, no campo
imageVersion
, especifique uma nova versão para a qual quer fazer a atualização.
Por exemplo:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.imageVersion
{
"config": {
"softwareConfig": {
"imageVersion": "composer-3-airflow-2.10.5-build.16"
}
}
}
Terraform
O campo image_version
no bloco config.software_config
controla a versão e a compilação do Airflow do seu ambiente. Neste campo, especifique uma nova versão e compilação do Airflow.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
software_config {
image_version = "VERSION"
}
}
}
Substituição:
ENVIRONMENT_NAME
com o nome do ambiente.LOCATION
com a região onde o ambiente está localizado. a nova versão e compilação do Airflow para a qual quer fazer a atualização no formatoairflow-x.y.z-build.t
. Também pode usar todos os alias de versão.
Exemplo:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
software_config {
image_version = "airflow-2.10.5-build.16"
}
}
}