Fazer upgrade dos ambientes

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Nesta página, descrevemos como fazer upgrade do ambiente para um novo o Airflow para a versão anterior.

Sobre as operações de upgrade

No Cloud Composer 3, você não gerencia a versão do Cloud Composer. do seu ambiente:

  • O Cloud Composer faz o upgrade automático da infraestrutura componentes do seu ambiente. Esses componentes estão relacionados a funcionalidade do Cloud Composer e não alterar o funcionamento do Airflow ou como os DAGs do Airflow são executados.
  • O Cloud Composer não faz upgrade automático da versão do Airflow e criar, componentes do Airflow ou componentes estreitamente relacionados ao Airflow do Google Cloud. Eles não são alterados quando os componentes de infraestrutura são atualizados automaticamente.
  • É possível fazer um upgrade manual para um novo Airflow versão ou build.

Por exemplo, é possível usar a mesma versão e build do Airflow para vários meses, sem fazer upgrades, e seu ambiente ainda recebe as atualizações, correções e melhorias mais recentes do Cloud Composer os componentes de infraestrutura do seu ambiente. Mais tarde, quando você decidir mudar nova versão ou build do Airflow, você faz o upgrade da versão do Airflow em seu de nuvem.

Sobre o upgrade da versão do Airflow

Seu ambiente altera a versão ou o build do Airflow nos seguintes maneira:

  • Você controla a versão (e o build) do Airflow do ambiente. Você pode execute a operação de upgrade da versão do Airflow ao trocar seu ambiente para uma versão diferente do Airflow. Por exemplo, isso pode acontecer se a versão atual e o build do Airflow forem não são mais compatíveis.

  • O Cloud Composer reimplanta os componentes do Airflow do ambiente usando a versão e o build especificados do Airflow.

  • O Cloud Composer aplica alterações de configuração do Airflow, como com substituições de pacotes PyPI personalizados ou opções de configuração do Airflow, que as tinham antes do upgrade.

  • O Cloud Composer atualiza a conexão airflow_db do Airflow para para o novo banco de dados do Cloud SQL.

Mudar a versão do Airflow não muda a forma como você se conecta aos recursos do ambiente, como o URL do bucket ou Servidor da Web do Airflow.

Sobre operações de upgrade automático de infraestrutura

O Cloud Composer é executado periodicamente operações automáticas de upgrade da infraestrutura:

  • As operações de upgrade automático da infraestrutura são executadas periodicamente janelas de manutenção especificadas para o ambiente.

  • Não é possível desabilitar as atualizações automáticas de infraestrutura em Cloud Composer 3. É possível controlar os períodos em que os upgrades automáticos podem ser executados especificando janelas de manutenção personalizadas para o ambiente.

  • Essa operação é visível no console do Google Cloud e do ambiente de execução, como qualquer outra operação de longa duração. Enquanto o está em execução, não é possível iniciar outras operações no ambiente mas ainda é possível executar DAGs do Airflow.

  • Os upgrades automáticos da infraestrutura não interrompem o Airflow ou as tarefas do Airflow já em execução. Isso pode resultar em um upgrade em um curto período de indisponibilidade da infraestrutura do ambiente componentes, como monitoramento de ambiente.

Limitações das operações de upgrade

As operações de upgrade têm as seguintes limitações:

  • não é possível fazer downgrade para uma versão ou um build anterior do Airflow.

  • Não será possível fazer upgrade do ambiente se o banco de dados do Airflow tiver com mais de 16 GB de dados. Durante o upgrade, um aviso é mostrado 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 do banco de dados.

Antes de começar

  • Recomendamos criar um novo snapshot do para recriá-lo caso isso seja necessário.

  • Sua conta precisa ter um papel que possa acionar o upgrade do ambiente operations. Além disso, a conta de serviço do ambiente deve ter um com permissões suficientes para executar operações de upgrade. Para mais mais comuns, consulte Controle de acesso.

Verificar se o ambiente está atualizado

O Cloud Composer exibe avisos quando se o build do Airflow do seu ambiente está próximo da data de término do suporte. Use esses avisos para sempre manter seu ambiente compatível.

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

O Cloud Composer monitora os Versão e build do Airflow em que o ambiente é baseado. Quando se aproxima do data de fim do suporte, um aviso vai aparecer na lista de ambientes e Página Detalhes do ambiente.

Para verificar se o ambiente está atualizado:

Console

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

    Acessar "Ambientes"

  2. Na lista de ambientes, clique no nome do 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.

gcloud

Essa funcionalidade não está disponível pela Google Cloud CLI. Você pode Confira os upgrades disponíveis, que mostra as novas versões que estão disponíveis.

API

Essa funcionalidade não está disponível pela API. Você pode Confira os upgrades disponíveis, que mostra as novas versões que estão disponíveis.

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 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 acessar a lista de versões disponíveis, clique no nome do Cloud Composer Menu suspenso Versão da imagem.

gcloud

gcloud 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 composer environments list-upgrades example-environment \
  --location us-central1

API

É possível consultar as versões disponíveis para um local. Para fazer isso, construa uma imageVersions.list.

Exemplo:

// GET https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/imageVersions

Verifique se há conflitos de pacotes PyPI antes de fazer upgrade

É possível verificar se os pacotes PyPI instalados no ambiente têm algum entra em conflito com pacotes pré-instalados na nova Versão ou build do Airflow.

Uma verificação bem-sucedida significa que não há conflitos no pacote PyPI dependências entre a versão atual e a especificada. No entanto, um a operação de upgrade ainda não tenha êxito 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 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, em na lista suspensa Nova versão, selecione uma versão ou um build do Airflow para o qual você quer fazer o 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 fazer uma verificação de upgrade no seu ambiente, execute o environments check-upgrade com o Versão ou build do Airflow. para o qual você quer fazer o upgrade.

gcloud composer environments check-upgrade \
  ENVIRONMENT_NAME \
  --location LOCATION \
  --airflow-version VERSION

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente
  • LOCATION pela região em que o ambiente está localizado;
  • VERSION com a nova versão e o build do Airflow que serão atualizados no formato airflow-x.y.z-build.t. Também é possível usar todas aliases de versão.

Exemplo:

gcloud composer environments check-upgrade example-environment \
  --location us-central1 \
  --airflow-version airflow-2.7.3-build.8

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.7.3-build.8. 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.

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, em o formato composer-3-airflow-x.y.z-build.t.

Fazer upgrade do ambiente

Para fazer upgrade do ambiente para uma nova versão ou build 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 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 ou um build do Airflow para o qual você quer fazer o upgrade.

  6. Clique em Fazer upgrade.

gcloud

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

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente
  • LOCATION pela região em que o ambiente está localizado;
  • VERSION com a nova versão e o build do Airflow que serão atualizados no formato airflow-x.y.z-build.t. Também é possível usar todas aliases de versão.

Exemplo:

gcloud composer environments update
  example-environment \
  --location us-central1 \
  --airflow-version airflow-2.7.3-build.8

API

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

  2. Nesta solicitação:

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

    2. No corpo da solicitação, no campo imageVersion, especifique uma nova 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-3-airflow-2.7.3-build.8"
      }
    }
  }

Terraform

O campo image_version no bloco config.software_config controla a versão do Airflow e o build do seu ambiente. Neste especifique uma nova versão e um build do Airflow.

  resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    software_config {
      image_version = "VERSION"
    }
  }
}

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente
  • LOCATION pela região em que o ambiente está localizado; a versão e o build do Airflow que serão atualizados no formato airflow-x.y.z-build.t. Também é possível usar todas aliases 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.7.3-build.8"
    }
  }
}

A seguir