安装自定义插件

Cloud Composer 1 |Cloud Composer 2 |Cloud Composer 3

本页介绍了如何在 Cloud Composer 环境中安装自定义插件。

通过 Apache Airflow 的插件管理器,您可以编写自定义的内部 Apache Airflow 运算符、钩子、传感器或接口。如需了解详情,请参阅自定义插件 Airflow 文档中所述。

自定义插件简介

当您创建环境时 创建 Cloud Storage 存储桶并将此存储分区 与您的环境相关联您可以使用环境存储桶中的 plugins 文件夹来安装自定义插件。

准备工作

安装插件

如需在 Cloud Composer 环境中安装自定义插件,请执行以下操作: 将插件代码复制到环境存储桶中的 plugins 文件夹。

如需安装插件,请按照以下所述操作:

控制台

  1. 在 Google Cloud 控制台中,前往环境页面。

    转到“环境”

  2. 找到您的环境,然后点击 DAG 链接。

  3. 转到上一级文件夹,然后导航到 plugins/ 文件夹。

  4. 上传您的插件文件。如需详细了解如何上传对象 请参阅上传对象

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 参数。

查看插件列表

控制台

  1. 在 Google Cloud 控制台中,前往环境页面。

    转到“环境”

  2. 找到您的环境,然后点击 DAG 链接。

  3. 转到上一级文件夹,然后导航到 plugins/ 文件夹。

  4. 查看插件文件。

gcloud

使用以下 gcloud 命令:

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

替换:

  • ENVIRONMENT_NAME 替换为环境的名称。
  • LOCATION 替换为环境所在的区域。

删除插件

如需从 Cloud Composer 环境中删除插件,请从该环境存储桶内的 plugins 文件夹中删除插件代码。

如需删除插件,请按照以下所述操作:

控制台

  1. 在 Google Cloud 控制台中,前往环境页面。

    转到“环境”

  2. 找到您的环境,然后点击 DAG 链接。

  3. 转到上一级文件夹,然后导航到 plugins/ 文件夹。

  4. 删除插件文件。如需详细了解如何删除对象,请参阅删除对象

gcloud

使用以下 gcloud 命令:

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

下载插件

要下载插件,请选择以下方式之一:

控制台

  1. 在 Google Cloud 控制台中,前往环境页面。

    转到“环境”

  2. 找到您的环境,然后点击 DAG 链接。

  3. 转到上一级文件夹,然后导航到 plugins/ 文件夹。

  4. 下载插件文件。如需详细了解如何删除对象,请参阅下载对象

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

  1. 创建 environments.patch API 请求。

  2. 在此请求中:

    1. 在参数 updateMask 中,指定 config.software_config.web_server_plugins_mode 掩码。

    2. 在请求正文的 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 角色。

后续步骤