Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Esta página descreve como instalar plug-ins personalizados no seu ambiente do Cloud Composer.
O gestor de plug-ins do Apache Airflow permite-lhe escrever operadores, hooks, sensores ou interfaces do Apache Airflow personalizados. Para mais informações, consulte os plug-ins personalizados na documentação do Airflow.
Acerca dos plug-ins personalizados
Quando cria um ambiente, o Cloud Composer
cria um contentor do Cloud Storage e associa este contentor ao seu ambiente. Use a pasta plugins
no contentor do seu ambiente para instalar plug-ins personalizados.
Antes de começar
- A sua conta tem de ter uma função que permita ver e modificar o conteúdo do contentor do seu ambiente.
- Este método de instalação aplica-se apenas a plug-ins do Airflow. Por exemplo, não pode usar este método para instalar módulos Python comuns ou outras bibliotecas.
Os plugins têm de estar em conformidade com as diretrizes do modelo de plugins do Airflow.
O Cloud Composer 3 não suporta plug-ins personalizados para o agendador do Airflow e o acionador do Airflow. Os plug-ins não são sincronizados com estes componentes do seu ambiente. Isto inclui funcionalidades do Airflow que dependem de plug-ins, como tabelas de horários personalizadas e ouvintes ao nível do DAG. Os ouvintes ao nível da tarefa e as tabelas de horários incorporadas são suportados.
Instale um plugin
Para instalar um plug-in personalizado no seu ambiente do Cloud Composer,
copie o código do plug-in para a pasta plugins
no contentor do seu ambiente.
Para instalar um plugin:
Consola
Na Google Cloud consola, aceda à página Ambientes.
Encontre o seu ambiente e siga o link DAGs.
Subir um nível de pastas e, em seguida, navegar para a pasta
plugins/
.Carregue os ficheiros do plug-in. Para mais informações sobre o carregamento de objetos, consulte o artigo Carregar 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
Substituição:
ENVIRONMENT_NAME
com o nome do ambiente.LOCATION
com a região onde o ambiente está localizado.PATH_TO_LOCAL_FILE
com o caminho do ficheiro a carregar.- (Opcional)
PATH_IN_SUBFOLDER
com o caminho da subpasta. Use o argumento--destination
para carregar um plugin para uma subpasta na pastaplugins
. Caso contrário, omita o argumento--destination
.
Veja a lista de plug-ins
Consola
Na Google Cloud consola, aceda à página Ambientes.
Encontre o seu ambiente e siga o link DAGs.
Subir um nível de pastas e, em seguida, navegar para a pasta
plugins/
.Veja os ficheiros do plug-in.
gcloud
Use o seguinte comando gcloud
:
gcloud composer environments storage plugins list \
--environment ENVIRONMENT_NAME \
--location LOCATION
Substituição:
ENVIRONMENT_NAME
com o nome do ambiente.LOCATION
com a região onde o ambiente está localizado.
Elimine um plugin
Para eliminar um plug-in do seu ambiente do Cloud Composer,
elimine o código do plug-in da pasta plugins
no contentor do ambiente.
Para eliminar um plugin:
Consola
Na Google Cloud consola, aceda à página Ambientes.
Encontre o seu ambiente e siga o link DAGs.
Subir um nível de pastas e, em seguida, navegar para a pasta
plugins/
.Elimine os ficheiros do plug-in. Para mais informações sobre a eliminação de objetos, consulte o artigo Eliminar objetos.
gcloud
Use o seguinte comando gcloud
:
gcloud composer environments storage plugins delete \
--environment ENVIRONMENT_NAME \
--location LOCATION \
PLUGIN_TO_DELETE
Transfira plug-ins
Para transferir plug-ins, escolha uma opção:
Consola
Na Google Cloud consola, aceda à página Ambientes.
Encontre o seu ambiente e siga o link DAGs.
Subir um nível de pastas e, em seguida, navegar para a pasta
plugins/
.Transfira os ficheiros do plugin. Para mais informações sobre a eliminação de objetos, consulte o artigo Transferir 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
Substituição:
ENVIRONMENT_NAME
com o nome do ambiente.LOCATION
com a região onde o ambiente está localizado.PATH_TO_LOCAL_DESTINATION
com o destino do ficheiro transferido.- (Opcional)
--source
é uma opção para transferir apenas um plugin.PATH_IN_FOLDER
é o caminho da pasta.
Desative os plug-ins do servidor Web
No Cloud Composer 3, se tiver problemas com a IU do Airflow, pode desativar os plug-ins do servidor Web sem ter de os remover do contentor do ambiente.
gcloud
Os seguintes argumentos da CLI gcloud desativam e ativam os plug-ins do servidor Web:
--no-support-web-server-plugins
: desative os plug-ins do servidor Web--support-web-server-plugins
: ative os plug-ins do servidor Web
Para desativar os plug-ins do servidor Web, execute o seguinte comando da CLI gcloud:
gcloud beta composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--no-support-web-server-plugins
Para ativar os plug-ins do servidor Web, execute o seguinte comando da CLI gcloud:
gcloud beta composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--support-web-server-plugins
Substitua o seguinte:
ENVIRONMENT_NAME
: o nome do ambienteLOCATION
: a região onde o ambiente está localizado
API
Crie um pedido de API
environments.patch
.Nesta solicitação:
No parâmetro
updateMask
, especifique a máscaraconfig.software_config.web_server_plugins_mode
.No corpo do pedido, no campo
web_server_plugins_mode
:- Especifique
PLUGINS_DISABLED
para desativar os plug-ins do servidor Web. - Especifique
PLUGINS_ENABLED
para ativar os plug-ins do servidor Web.
- Especifique
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"
}
}
Resolva problemas de plug-ins
Os plugins causam problemas com a IU do Airflow
Pode desativar plug-ins do servidor Web sem os eliminar. Para mais informações, consulte o artigo Desative os plug-ins do servidor Web.
Um plugin carregado recentemente não está visível na IU do Airflow
Se usar o controlo de acesso da IU do Airflow, o plug-in carregado recentemente pode não estar visível na IU do Airflow. Para resolver este problema, peça ao administrador da IU do Airflow para configurar o acesso ao plug-in carregado recentemente ou atribua a si próprio a função Admin
na IU do Airflow.