Fazer upgrade dos ambientes

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:

  1. Reimplanta os componentes do ambiente usando novas versões das imagens do Cloud Composer.
  2. 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.
  3. 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.

Uma mensagem de descontinuação é exibida na página de detalhes do ambiente
Figura 1. Uma mensagem de descontinuação é exibida na página de detalhes do ambiente.

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

  1. No console do Google Cloud, acesse a página Ambientes.

    Acessar "Ambientes"

  2. Na lista de ambientes, clique no nome do seu ambiente. A página Detalhes do ambiente é aberta.

  3. Acesse a guia Configuração do ambiente.

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

  1. No console do Google Cloud, acesse a página Ambientes.

    Acessar "Ambientes"

  2. Na lista de ambientes, clique no nome do seu ambiente. A página Detalhes do ambiente é aberta.

  3. Acesse a guia Configuração do ambiente e clique em Fazer upgrade da versão da imagem.

  4. 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 ambiente
  • LOCATION 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:

  1. No console do Google Cloud, acesse a página Ambientes.

    Acessar "Ambientes"

  2. Na lista de ambientes, clique no nome do seu ambiente. A página Detalhes do ambiente é aberta.

  3. Acesse a guia Configuração do ambiente, localize a entrada Versão da imagem e clique em Fazer upgrade.

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

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

  6. 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 ambiente
  • LOCATION 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 formato composer-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

  1. No console do Google Cloud, acesse a página Ambientes.

    Acessar "Ambientes"

  2. Na lista de ambientes, clique no nome do seu ambiente. A página Detalhes do ambiente é aberta.

  3. Acesse a guia Configuração do ambiente.

  4. Localize o item Versão da imagem e clique em Fazer upgrade.

  5. No menu suspenso Versão da imagem, selecione uma versão.

  6. Clique em Fazer upgrade.

gcloud

gcloud beta composer environments update \
  ENVIRONMENT_NAME \
  --location LOCATION \
  --image-version COMPOSER_IMAGE

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente
  • LOCATION 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 formato composer-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

  1. Crie uma solicitação de API Beta environments.patch.

  2. Nesta solicitação:

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

    2. 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 formato composer-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 ambiente
  • LOCATION 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 formato composer-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"
    }
  }
}

A seguir