安装自定义插件

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 服务器 插件:

  • --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 角色。

后续步骤