Elastic Zoom 连接器参考

编辑

Zoom 连接器是使用 Elastic 连接器框架用 Python 编写的。

查看此连接器的源代码(分支 8.17,与 Elastic 8.17 兼容)。

Elastic 管理的连接器参考

编辑
查看 Elastic 管理的连接器 参考
可用性和先决条件
编辑

此托管连接器在 Elastic 8.14.0 中作为 Elastic Cloud 上的托管服务引入。

要在 Elastic Cloud 中本机使用此连接器,请满足所有托管连接器要求

此连接器处于技术预览阶段,可能会发生更改。其设计和代码不如官方 GA 功能成熟,并按原样提供,不提供任何保证。技术预览功能不受官方 GA 功能的支持 SLA 约束。

创建 Zoom 连接器
编辑

使用 UI

编辑

要创建新的 Zoom 连接器

  1. 在 Kibana UI 中,从主菜单导航到搜索 → 内容 → 连接器页面,或使用全局搜索字段
  2. 按照说明创建新的本机 Zoom 连接器。

有关其他操作,请参阅Kibana 中的连接器 UI

使用 API

编辑

您可以使用 Elasticsearch 创建连接器 API 来创建新的本机 Zoom 连接器。

例如

resp = client.connector.put(
    connector_id="my-{service-name-stub}-connector",
    index_name="my-elasticsearch-index",
    name="Content synced from {service-name}",
    service_type="{service-name-stub}",
    is_native=True,
)
print(resp)
const response = await client.connector.put({
  connector_id: "my-{service-name-stub}-connector",
  index_name: "my-elasticsearch-index",
  name: "Content synced from {service-name}",
  service_type: "{service-name-stub}",
  is_native: true,
});
console.log(response);
PUT _connector/my-zoom-connector
{
  "index_name": "my-elasticsearch-index",
  "name": "Content synced from Zoom",
  "service_type": "zoom",
  "is_native": true
}
您还需要为连接器创建一个 API 密钥以供使用。

用户需要集群权限 manage_api_keymanage_connectorwrite_connector_secrets 才能以编程方式生成 API 密钥。

要为连接器创建 API 密钥

  1. 运行以下命令,替换指示的值。请注意响应中的 idencoded 返回值

    resp = client.security.create_api_key(
        name="my-connector-api-key",
        role_descriptors={
            "my-connector-connector-role": {
                "cluster": [
                    "monitor",
                    "manage_connector"
                ],
                "indices": [
                    {
                        "names": [
                            "my-index_name",
                            ".search-acl-filter-my-index_name",
                            ".elastic-connectors*"
                        ],
                        "privileges": [
                            "all"
                        ],
                        "allow_restricted_indices": False
                    }
                ]
            }
        },
    )
    print(resp)
    const response = await client.security.createApiKey({
      name: "my-connector-api-key",
      role_descriptors: {
        "my-connector-connector-role": {
          cluster: ["monitor", "manage_connector"],
          indices: [
            {
              names: [
                "my-index_name",
                ".search-acl-filter-my-index_name",
                ".elastic-connectors*",
              ],
              privileges: ["all"],
              allow_restricted_indices: false,
            },
          ],
        },
      },
    });
    console.log(response);
    POST /_security/api_key
    {
      "name": "my-connector-api-key",
      "role_descriptors": {
        "my-connector-connector-role": {
          "cluster": [
            "monitor",
            "manage_connector"
          ],
          "indices": [
            {
              "names": [
                "my-index_name",
                ".search-acl-filter-my-index_name",
                ".elastic-connectors*"
              ],
              "privileges": [
                "all"
              ],
              "allow_restricted_indices": false
            }
          ]
        }
      }
    }
  2. 使用 encoded 值存储连接器机密,并注意此响应中的 id 返回值

    resp = client.connector.secret_post(
        body={
            "value": "encoded_api_key"
        },
    )
    print(resp)
    const response = await client.connector.secretPost({
      body: {
        value: "encoded_api_key",
      },
    });
    console.log(response);
    POST _connector/_secret
    {
      "value": "encoded_api_key"
    }
  3. 使用 API 密钥 id 和连接器机密 id 来更新连接器

    resp = client.connector.update_api_key_id(
        connector_id="my_connector_id>",
        api_key_id="API key_id",
        api_key_secret_id="secret_id",
    )
    print(resp)
    const response = await client.connector.updateApiKeyId({
      connector_id: "my_connector_id>",
      api_key_id: "API key_id",
      api_key_secret_id: "secret_id",
    });
    console.log(response);
    PUT /_connector/my_connector_id>/_api_key_id
    {
      "api_key_id": "API key_id",
      "api_key_secret_id": "secret_id"
    }

有关所有可用连接器 API 的详细信息,请参阅Elasticsearch API 文档

用法
编辑

要在 UI 中使用此连接器,请在搜索 → 连接器下创建新连接器时选择Zoom磁贴。

如果您已经熟悉连接器的工作原理,还可以使用连接器 API

有关其他操作,请参阅Kibana 中的连接器 UI

连接到 Zoom
编辑

要连接到 Zoom,您需要创建一个可以访问资源的服务器到服务器 OAuth 应用程序。请按照以下步骤操作

  1. 转到Zoom 应用市场并使用您的 Zoom 帐户登录。
  2. 导航到“开发”服务。
  3. 从下拉菜单中选择“构建应用程序”。
  4. 单击“服务器到服务器 OAuth”按钮注册新应用程序。
  5. 为您的应用程序提供一个名称。
  6. 单击“创建”按钮创建应用程序注册。
  7. 注册完成后,您将被重定向到应用程序的概述页面。请注意“应用程序凭据”值,您稍后将需要它。
  8. 导航到“范围”部分,然后单击“添加范围”按钮。
  9. 需要将以下精细范围添加到应用程序。

    user:read:list_users:admin
    meeting:read:list_meetings:admin
    meeting:read:list_past_participants:admin
    cloud_recording:read:list_user_recordings:admin
    team_chat:read:list_user_channels:admin
    team_chat:read:list_user_messages:admin

连接器需要最小范围 user:read:list_users:admin 才能将数据提取到 Elasticsearch 中。

+ 10. 单击“完成”按钮,将选定的范围添加到您的应用程序。11. 导航到“激活”部分,并输入必要的信息以激活应用程序。

完成后,使用以下配置参数配置连接器。

配置
编辑

需要以下配置字段

Zoom 应用程序帐户 ID

(必填)“帐户 ID”是与 Zoom 平台内的特定 Zoom 帐户关联的唯一标识符,可在应用程序的概述页面中找到。示例

  • KVx-aQssTOutOAGrDfgMaA
Zoom 应用程序客户端 ID

(必填)“客户端 ID”是指与集成到 Zoom 平台的应用程序关联的唯一标识符,可在应用程序的概述页面中找到。示例

  • 49Z69_rnRiaF4JYyfHusw
Zoom 应用程序客户端密钥

(必填)“客户端密钥”是指当开发人员在 Zoom 开发人员门户上注册应用程序以与 Zoom 平台集成时生成的机密信息,可在应用程序的概述页面中找到。示例

  • eieiUJRsiH543P5NbYadavczjkqgdRTw
录制时长限制(月)
(必填)从 Zoom 请求录制的最长时间。不索引早于此时间的录制。此配置参数允许您定义录制索引的时间限制(以月为单位)。
提取过去会议详细信息
检索有关过去会议的更多信息,包括其详细信息和参与者。默认值为 False。启用此选项以提取过去会议详细信息。此设置可能会增加同步时间。
内容提取
编辑

请参阅内容提取

文档和同步
编辑

连接器同步以下对象和实体

  • 用户
  • 实时会议
  • 即将举行的会议
  • 过去会议
  • 录制
  • 频道
  • 聊天消息
  • 聊天文件
  • 不会提取大于 10 MB 的文件中的内容。(自管理连接器可以使用自管理本地提取服务来处理更大的二进制文件。)
  • 不会同步权限。所有文档索引到 Elastic 部署后,所有有权访问该 Elastic 部署的用户都可见。
同步类型
编辑

默认情况下,所有连接器都支持完全同步

此连接器还支持增量同步

同步规则
编辑

基本同步规则对于所有连接器都是相同的,并且默认可用。

高级同步规则
编辑

当前版本中此连接器不支持高级同步规则。

已知问题
编辑
  • 会议:用户只能索引不到一个月的会议。
  • 聊天消息和文件:用户只能索引不到 6 个月的聊天和文件。

有关所有连接器的已知问题列表,请参阅已知问题

故障排除
编辑

请参阅故障排除

安全
编辑

请参阅安全

自管理连接器参考

编辑
查看自管理连接器参考
可用性和先决条件
编辑

此连接器可用作自管理自管理连接器。要使用此连接器,请满足所有自管理连接器先决条件

此连接器处于技术预览阶段,可能会发生更改。其设计和代码不如官方 GA 功能成熟,并按原样提供,不提供任何保证。技术预览功能不受官方 GA 功能的支持 SLA 约束。

创建 Zoom 连接器
编辑

使用 UI

编辑

要创建新的 Zoom 连接器

  1. 在 Kibana UI 中,从主菜单导航到搜索 → 内容 → 连接器页面,或使用全局搜索字段
  2. 按照说明创建新的Zoom自管理连接器。

使用 API

编辑

您可以使用 Elasticsearch 创建连接器 API 来创建新的自管理 Zoom 自管理连接器。

例如

resp = client.connector.put(
    connector_id="my-{service-name-stub}-connector",
    index_name="my-elasticsearch-index",
    name="Content synced from {service-name}",
    service_type="{service-name-stub}",
)
print(resp)
const response = await client.connector.put({
  connector_id: "my-{service-name-stub}-connector",
  index_name: "my-elasticsearch-index",
  name: "Content synced from {service-name}",
  service_type: "{service-name-stub}",
});
console.log(response);
PUT _connector/my-zoom-connector
{
  "index_name": "my-elasticsearch-index",
  "name": "Content synced from Zoom",
  "service_type": "zoom"
}
您还需要为连接器创建一个 API 密钥以供使用。

用户需要集群权限 manage_api_keymanage_connectorwrite_connector_secrets 才能以编程方式生成 API 密钥。

要为连接器创建 API 密钥

  1. 运行以下命令,替换指示的值。请注意响应中的 encoded 返回值

    resp = client.security.create_api_key(
        name="connector_name-connector-api-key",
        role_descriptors={
            "connector_name-connector-role": {
                "cluster": [
                    "monitor",
                    "manage_connector"
                ],
                "indices": [
                    {
                        "names": [
                            "index_name",
                            ".search-acl-filter-index_name",
                            ".elastic-connectors*"
                        ],
                        "privileges": [
                            "all"
                        ],
                        "allow_restricted_indices": False
                    }
                ]
            }
        },
    )
    print(resp)
    const response = await client.security.createApiKey({
      name: "connector_name-connector-api-key",
      role_descriptors: {
        "connector_name-connector-role": {
          cluster: ["monitor", "manage_connector"],
          indices: [
            {
              names: [
                "index_name",
                ".search-acl-filter-index_name",
                ".elastic-connectors*",
              ],
              privileges: ["all"],
              allow_restricted_indices: false,
            },
          ],
        },
      },
    });
    console.log(response);
    POST /_security/api_key
    {
      "name": "connector_name-connector-api-key",
      "role_descriptors": {
        "connector_name-connector-role": {
          "cluster": [
            "monitor",
            "manage_connector"
          ],
          "indices": [
            {
              "names": [
                "index_name",
                ".search-acl-filter-index_name",
                ".elastic-connectors*"
              ],
              "privileges": [
                "all"
              ],
              "allow_restricted_indices": false
            }
          ]
        }
      }
    }
  2. 使用 API 密钥 encoded 值更新您的 config.yml 文件。

有关所有可用连接器 API 的详细信息,请参阅Elasticsearch API 文档

用法
编辑

要在 UI 中使用此连接器,请在搜索 → 连接器下创建新连接器时选择Teams磁贴。

如果您已经熟悉连接器的工作原理,还可以使用连接器 API

有关其他操作,请参阅Kibana 中的连接器 UI

连接到 Zoom
编辑

要连接到 Zoom,您需要创建一个可以访问资源的服务器到服务器 OAuth 应用程序。请按照以下步骤操作

  1. 转到Zoom 应用市场并使用您的 Zoom 帐户登录。
  2. 导航到“开发”服务。
  3. 从下拉菜单中选择“构建应用程序”。
  4. 单击“服务器到服务器 OAuth”按钮注册新应用程序。
  5. 为您的应用程序提供一个名称。
  6. 单击“创建”按钮创建应用程序注册。
  7. 注册完成后,您将被重定向到应用程序的概述页面。请注意“应用程序凭据”值,您稍后将需要它。
  8. 导航到“范围”部分,然后单击“添加范围”按钮。
  9. 需要将以下精细范围添加到应用程序。

    user:read:list_users:admin
    meeting:read:list_meetings:admin
    meeting:read:list_past_participants:admin
    cloud_recording:read:list_user_recordings:admin
    team_chat:read:list_user_channels:admin
    team_chat:read:list_user_messages:admin

连接器需要最小范围 user:read:list_users:admin 才能将数据提取到 Elasticsearch 中。

+ 10. 单击“完成”按钮,将选定的范围添加到您的应用程序。11. 导航到“激活”部分,并输入必要的信息以激活应用程序。

完成后,使用以下配置参数配置连接器。

配置
编辑

需要以下配置字段

Zoom 应用程序帐户 ID

(必填)“帐户 ID”是与 Zoom 平台内的特定 Zoom 帐户关联的唯一标识符,可在应用程序的概述页面中找到。示例

  • KVx-aQssTOutOAGrDfgMaA
Zoom 应用程序客户端 ID

(必填)“客户端 ID”是指与集成到 Zoom 平台的应用程序关联的唯一标识符,可在应用程序的概述页面中找到。示例

  • 49Z69_rnRiaF4JYyfHusw
Zoom 应用程序客户端密钥

(必填)“客户端密钥”是指当开发人员在 Zoom 开发人员门户上注册应用程序以与 Zoom 平台集成时生成的机密信息,可在应用程序的概述页面中找到。示例

  • eieiUJRsiH543P5NbYadavczjkqgdRTw
录制时长限制(月)
(必填)从 Zoom 请求录制的最长时间。不索引早于此时间的录制。此配置参数允许您定义录制索引的时间限制(以月为单位)。
提取过去会议详细信息
检索有关过去会议的更多信息,包括其详细信息和参与者。默认值为 False。启用此选项以提取过去会议详细信息。此设置可能会增加同步时间。
使用 Docker 部署
编辑

您可以使用 Docker 将 Zoom 连接器部署为自管理连接器。请按照这些说明进行操作。

步骤 1:下载示例配置文件

下载示例配置文件。您可以手动下载,也可以运行以下命令

curl https://raw.githubusercontent.com/elastic/connectors/main/config.yml.example --output ~/connectors-config/config.yml

如果您的目录名称不同,或者您想使用其他配置文件名称,请记住更新 --output 参数值。

步骤 2:更新自管理连接器的配置文件

使用以下设置更新配置文件以匹配您的环境

  • elasticsearch.host
  • elasticsearch.api_key
  • connectors

如果您针对 Docker 化的 Elasticsearch 和 Kibana 版本运行连接器服务,则您的配置文件将如下所示

# When connecting to your cloud deployment you should edit the host value
elasticsearch.host: http://host.docker.internal:9200
elasticsearch.api_key: <ELASTICSEARCH_API_KEY>

connectors:
  -
    connector_id: <CONNECTOR_ID_FROM_KIBANA>
    service_type: zoom
    api_key: <CONNECTOR_API_KEY_FROM_KIBANA> # Optional. If not provided, the connector will use the elasticsearch.api_key instead

推荐使用 elasticsearch.api_key 作为身份验证方法。但是,您也可以使用 elasticsearch.usernameelasticsearch.password 来验证您的 Elasticsearch 实例。

注意:您可以通过取消注释配置文件中的特定设置并修改其值来更改其他默认配置。

步骤 3:运行 Docker 镜像

使用以下命令运行带有连接器服务的 Docker 镜像

docker run \
-v ~/connectors-config:/config \
--network "elastic" \
--tty \
--rm \
docker.elastic.co/enterprise-search/elastic-connectors:8.17.0.0 \
/app/bin/elastic-ingest \
-c /config/config.yml

有关更多详细信息,请参阅 elastic/connectors 仓库中的 DOCKER.md 文件。

官方注册表中查找所有可用的 Docker 镜像。

我们还提供了一个使用 Docker Compose 的快速启动自管理选项,您可以一次性启动所有必需的服务:Elasticsearch、Kibana 和连接器服务。有关更多信息,请参阅 elastic/connectors 仓库中此 README 文件。

内容提取
编辑

请参阅内容提取

文档和同步
编辑

连接器同步以下对象和实体

  • 用户
  • 实时会议
  • 即将举行的会议
  • 过去会议
  • 录制
  • 频道
  • 聊天消息
  • 聊天文件
  • 默认情况下,不会提取大于 10 MB 的文件的内容。您可以使用自管理本地提取服务来处理更大的二进制文件。
  • 不会同步权限。所有文档索引到 Elastic 部署后,所有有权访问该 Elastic 部署的用户都可见。
同步类型
编辑

默认情况下,所有连接器都支持完全同步

此连接器还支持增量同步

同步规则
编辑

基本同步规则对于所有连接器都是相同的,并且默认可用。

高级同步规则
编辑

当前版本中此连接器不支持高级同步规则。

连接器客户端操作
编辑
端到端测试
编辑

连接器框架使操作员能够针对真实数据源运行功能测试。有关更多详细信息,请参阅连接器测试

要为 Zoom 连接器执行 E2E 测试,请运行以下命令

$ make ftest NAME=zoom

为了更快地测试,请添加 DATA_SIZE=small 标志

make ftest NAME=zoom DATA_SIZE=small
已知问题
编辑
  • 会议:用户只能索引不到一个月的会议。
  • 聊天消息和文件:用户只能索引不到 6 个月的聊天和文件。

有关所有连接器的已知问题列表,请参阅已知问题

故障排除
编辑

请参阅故障排除

安全性
编辑

请参阅安全