Cloud Composer 1 |Cloud Composer 2 |Cloud Composer 3
本页介绍了如何在 Cloud Composer 环境中安装自定义插件。
通过 Apache Airflow 的插件管理器,您可以编写自定义的内部 Apache Airflow 运算符、钩子、传感器或接口。如需了解详情,请参阅自定义插件 Airflow 文档中所述。
自定义插件简介
当您创建环境时
创建 Cloud Storage 存储桶并将此存储分区
与您的环境相关联您可以使用环境存储桶中的 plugins
文件夹来安装自定义插件。
准备工作
- 您的账号必须具备允许查看和修改环境的存储桶内容的角色。
- 这种安装方法仅适用于 Airflow 插件。例如,您不能使用此方法来安装常用的 Python 模块或其他库。
- 插件必须符合 Airflow 插件模板 指南。
安装插件
如需在 Cloud Composer 环境中安装自定义插件,请执行以下操作:
将插件代码复制到环境存储桶中的 plugins
文件夹。
如需安装插件,请按照以下所述操作:
控制台
gcloud
使用以下 gcloud
命令:
gcloud composer environments storage plugins import \
--environment ENVIRONMENT_NAME \
--location LOCATION \
--source PATH_TO_LOCAL_FILE \
--destination PATH_IN_SUBFOLDER
替换:
ENVIRONMENT_NAME
替换为环境的名称。LOCATION
替换为环境所在的区域。- 将
PATH_TO_LOCAL_FILE
替换为要上传的文件的路径。 - (可选)将
PATH_IN_SUBFOLDER
替换为子文件夹路径。使用--destination
参数,用于将插件上传到plugins
文件夹中的内容。否则,请省略--destination
参数。
查看插件列表
控制台
在 Google Cloud 控制台中,前往环境页面。
找到您的环境,然后点击 DAG 链接。
转到上一级文件夹,然后导航到
plugins/
文件夹。查看插件文件。
gcloud
使用以下 gcloud
命令:
gcloud composer environments storage plugins list \
--environment ENVIRONMENT_NAME \
--location LOCATION
替换:
ENVIRONMENT_NAME
替换为环境的名称。LOCATION
替换为环境所在的区域。
删除插件
如需从 Cloud Composer 环境中删除插件,请从该环境存储桶内的 plugins
文件夹中删除插件代码。
如需删除插件,请按照以下所述操作:
控制台
gcloud
使用以下 gcloud
命令:
gcloud composer environments storage plugins delete \
--environment ENVIRONMENT_NAME \
--location LOCATION \
PLUGIN_TO_DELETE
下载插件
要下载插件,请选择以下方式之一:
控制台
gcloud
使用以下 gcloud
命令:
gcloud composer environments storage plugins export \
--environment ENVIRONMENT_NAME \
--location LOCATION \
--destination PATH_TO_LOCAL_DESTINATION \
--source PATH_IN_FOLDER
替换:
ENVIRONMENT_NAME
替换为环境的名称。LOCATION
替换为环境所在的区域。- 将
PATH_TO_LOCAL_DESTINATION
替换为所下载文件的目标位置。 - (可选)
--source
是一个选项,用于仅下载一个插件。PATH_IN_FOLDER
是文件夹路径。
停用 Web 服务器插件
在 Cloud Composer 3 中,如果您遇到 Airflow 界面问题,可以停用 Web 服务器插件,而无需将其从环境的存储桶中移除。
gcloud
以下 Google Cloud CLI 参数可停用和启用 Web 服务器 plugins:
--no-support-web-server-plugins
:停用 Web 服务器插件--support-web-server-plugins
:启用 Web 服务器插件
如需停用 Web 服务器插件,请运行以下命令 Google Cloud CLI 命令:
gcloud beta composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--no-support-web-server-plugins
如需启用 Web 服务器插件,请运行以下命令 Google Cloud CLI 命令:
gcloud beta composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--support-web-server-plugins
替换以下内容:
ENVIRONMENT_NAME
:环境的名称LOCATION
:环境所在的区域
API
创建
environments.patch
API 请求。在此请求中:
在参数
updateMask
中,指定config.software_config.web_server_plugins_mode
掩码。在请求正文的
web_server_plugins_mode
字段中:- 指定
PLUGINS_DISABLED
可停用 Web 服务器插件。 - 指定
PLUGINS_ENABLED
以启用 Web 服务器插件。
- 指定
示例(停用插件):
// 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"
}
}
示例(启用插件):
// 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"
}
}
排查插件问题
插件导致 Airflow 界面出现问题
您可以停用 Web 服务器插件,而不必将其删除。如需了解详情,请参阅停用 Web 服务器插件。
Airflow 界面中未显示新上传的插件
如果您使用 Airflow 界面访问权限控制,则新上传的插件可能不会显示在 Airflow 界面中。要解决此问题,请询问
Airflow UI Administrator,用于配置对新上传的插件的访问权限,或
在 Airflow 界面中为您自己分配 Admin
角色。