Atualize ambientes

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 com 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 é possível 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 originar 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.

É apresentada uma mensagem de descontinuação na página Detalhes do ambiente
Figura 1. É apresentada uma mensagem de descontinuação na página de detalhes do ambiente

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

  1. Na Google Cloud consola, aceda à página Ambientes.

    Aceder a Ambientes

  2. Na lista de ambientes, clique no nome do seu ambiente. É apresentada a página Detalhes do ambiente.

  3. Aceda ao separador Configuração do ambiente.

  4. 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

  1. Na Google Cloud consola, aceda à página Ambientes.

    Aceder a Ambientes

  2. Na lista de ambientes, clique no nome do seu ambiente. É apresentada a página Detalhes do ambiente.

  3. Aceda ao separador Configuração do ambiente e clique em Atualizar versão da imagem.

  4. 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

Substituir:

  • 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 antes de atualizar

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:

  1. Na Google Cloud consola, aceda à página Ambientes.

    Aceder a Ambientes

  2. Na lista de ambientes, clique no nome do seu ambiente. É apresentada a página Detalhes do ambiente.

  3. Aceda ao separador Configuração do ambiente, localize a entrada Versão da imagem e clique em Atualizar.

  4. 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.

  5. Na secção Compatibilidade de pacotes PyPI, clique em Verificar conflitos.

  6. Aguarde até que a verificação esteja concluída. Se existirem conflitos de dependências de pacotes PyPI, as mensagens de erro apresentadas contêm detalhes sobre os pacotes e as versões dos 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

Substituir:

  • 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 formato airflow-x.y.z-build.t. Também 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.11

Exemplo de resultado:

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.11. Operation [projects/example-project/locations/
us-central1/operations/04d0e8b2-...]...done.
...

Response:
'@type': type.googleapis.com/
google.cloud.orchestration.airflow.service.v1.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.

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.

Atualize o seu ambiente

Para atualizar o seu ambiente para uma nova versão ou compilação do Airflow:

Consola

  1. Na Google Cloud consola, aceda à página Ambientes.

    Aceder a Ambientes

  2. Na lista de ambientes, clique no nome do seu ambiente. É apresentada a página Detalhes do ambiente.

  3. Aceda ao separador Configuração do ambiente.

  4. Localize o item Versão de imagem e clique em Atualizar.

  5. 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.

  6. Clique em Atualizar.

gcloud

gcloud composer environments update \
  ENVIRONMENT_NAME \
  --location LOCATION \
  --airflow-version VERSION

Substituir:

  • 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 formato airflow-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.11

API

  1. Construa um pedido de API environments.patch.

  2. Neste pedido:

    1. No parâmetro updateMask, especifique a máscara config.softwareConfig.imageVersion.

    2. 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.11"
      }
    }
  }

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"
    }
  }
}

Substituir:

  • 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 formato airflow-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.11"
    }
  }
}

O que se segue?