Instalar plug-ins personalizados

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Nesta página, descrevemos como instalar plug-ins personalizados no Cloud Composer. de nuvem.

O gerenciador de plug-ins do Apache Airflow permite que você crie operadores, hooks, sensores ou interfaces internos personalizados do Apache Airflow. Para mais informações, consulte plug-ins personalizados (link em inglês) na documentação do Airflow.

Sobre plug-ins personalizados

Quando você cria um ambiente, o Cloud Composer cria um bucket do Cloud Storage e o associa a ele. Você usa a pasta plugins na sua para instalar plug-ins personalizados.

Antes de começar

  • Sua conta precisa ter um papel que permita a visualização e a modificação do conteúdo do bucket do ambiente.
  • Este método de instalação se aplica apenas aos plug-ins do Airflow (em inglês). Por exemplo, não pode usar esse método para instalar módulos comuns do Python ou outras bibliotecas.
  • Os plug-ins precisam estar em conformidade com as diretrizes do modelo de plug-ins do Airflow (em inglês).

Instalar um plug-in

Para instalar um plug-in personalizado no ambiente do Cloud Composer, copie o código do plug-in para a pasta plugins no bucket do ambiente.

Para instalar um plug-in:

Console

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

    Acessar "Ambientes"

  2. Encontre seu ambiente e siga o link DAGs.

  3. Vá para um nível acima da pasta e navegue até a pasta plugins/.

  4. Faça upload dos arquivos de plug-in. Para mais informações sobre como fazer upload de objetos, consulte Como fazer upload de objetos.

gcloud

Use o seguinte comando gcloud:

gcloud composer environments storage plugins import \
    --environment ENVIRONMENT_NAME \
    --location LOCATION \
    --source PATH_TO_LOCAL_FILE \
    --destination PATH_IN_SUBFOLDER

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente
  • LOCATION pela região em que o ambiente está localizado;
  • PATH_TO_LOCAL_FILE pelo caminho do arquivo para upload;
  • (Opcional) PATH_IN_SUBFOLDER pelo caminho da subpasta. Use o argumento --destination para fazer upload de um plug-in para uma subpasta na pasta plugins. Caso contrário, omita o argumento --destination.

Ver a lista de plug-ins

Console

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

    Acessar "Ambientes"

  2. Encontre seu ambiente e siga o link DAGs.

  3. Vá para um nível acima da pasta e navegue até a pasta plugins/.

  4. Veja os arquivos do plug-in.

gcloud

Use o seguinte comando gcloud:

gcloud composer environments storage plugins list \
    --environment ENVIRONMENT_NAME \
    --location LOCATION

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente
  • LOCATION pela região em que o ambiente está localizado;

Excluir um plug-in

Para excluir um plug-in do ambiente do Cloud Composer, exclua o código do plug-in da pasta plugins no bucket do ambiente.

Para excluir um plug-in:

Console

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

    Acessar "Ambientes"

  2. Encontre seu ambiente e siga o link DAGs.

  3. Vá para um nível acima da pasta e navegue até a pasta plugins/.

  4. Exclua os arquivos do plug-in. Para mais informações sobre como excluir objetos, consulte Como excluir objetos.

gcloud

Use o seguinte comando gcloud:

gcloud composer environments storage plugins delete \
    --environment ENVIRONMENT_NAME \
    --location LOCATION \
    PLUGIN_TO_DELETE

Fazer o download de plug-ins

Para fazer o download de plug-ins, escolha uma opção a seguir:

Console

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

    Acessar "Ambientes"

  2. Encontre seu ambiente e siga o link DAGs.

  3. Vá para um nível acima da pasta e navegue até a pasta plugins/.

  4. Faça o download dos arquivos de plug-in. Para mais informações sobre como excluir objetos, consulte Como fazer o download de objetos.

gcloud

Use o seguinte comando gcloud:

gcloud composer environments storage plugins export \
  --environment ENVIRONMENT_NAME \
  --location LOCATION \
  --destination PATH_TO_LOCAL_DESTINATION \
  --source PATH_IN_FOLDER

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente
  • LOCATION pela região em que o ambiente está localizado;
  • PATH_TO_LOCAL_DESTINATION pelo destino do arquivo salvo.
  • (Opcional) --source é uma opção para fazer o download de apenas um plug-in; PATH_IN_FOLDER é o caminho da pasta.

Desativar plug-ins do servidor da Web

No Cloud Composer 3, se você tiver problemas com a interface do Airflow, poderá desativar os plug-ins do servidor da Web sem precisar removê-los do bucket do ambiente.

gcloud

Os seguintes argumentos da Google Cloud CLI desativam e ativam o servidor da Web plugins:

  • --no-support-web-server-plugins: desativar plug-ins do servidor da Web
  • --support-web-server-plugins: ativar plug-ins do servidor da Web.

Para desativar plug-ins do servidor da Web, execute o seguinte Comando da Google Cloud CLI:

gcloud beta composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --no-support-web-server-plugins

Para ativar os plug-ins do servidor da Web, execute o seguinte Comando da Google Cloud CLI:

gcloud beta composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --support-web-server-plugins

Substitua:

  • ENVIRONMENT_NAME: o nome do ambiente
  • LOCATION: a região em que o ambiente está localizado.

API

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

  2. Nesta solicitação:

    1. No parâmetro updateMask, especifique a máscara config.software_config.web_server_plugins_mode.

    2. No corpo da solicitação, no campo web_server_plugins_mode:

      • Especifique PLUGINS_DISABLED para desativar os plug-ins do servidor da Web.
      • Especifique PLUGINS_ENABLED para ativar os plug-ins do servidor da Web.

Exemplo (desativar plug-ins):

// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.software_config.web_server_plugins_mode

"config": {
  "softwareConfig": {
    "web_server_plugins_mode": "PLUGINS_DISABLED"
   }
}

Exemplo (ativar plug-ins):

// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.software_config.web_server_plugins_mode

"config": {
  "softwareConfig": {
    "web_server_plugins_mode": "PLUGINS_ENABLED"
   }
}

Resolver problemas com plug-ins

Plug-ins causam problemas na interface do Airflow

É possível desativar os plug-ins do servidor da Web sem excluí-los. Para mais informações, consulte Desativar plug-ins do servidor da Web.

Um plug-in recém-enviado não está visível na interface do Airflow

Se você usar o controle de acesso da interface do Airflow, o plug-in recém-carregado pode não ficar visível na interface do Airflow. Para resolver esse problema, peça ao administrador da interface do Airflow para configurar o acesso ao plug-in recém-enviado ou atribua a si mesmo o papel Admin na interface do Airflow.

A seguir