

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Slack
<a name="data-source-slack"></a>

Slack 是一款企业通信应用程序，允许用户通过各种公共和私人频道发送消息和附件。您可以使用Amazon Kendra索引您的 Slack 公共和私人频道、机器人和存档消息、文件和附件、直接消息和群组消息。还可以选择要筛选的特定内容。

**注意**  
Amazon Kendra现在支持升级后的 Slack 连接器。  
已为您自动完成控制台升级。您在控制台中新建的所有连接器都将使用升级后的架构。现在，如果您使用 API，则必须使用 [https://docs.aws.amazon.com/kendra/latest/APIReference/API_TemplateConfiguration.html](https://docs.aws.amazon.com/kendra/latest/APIReference/API_TemplateConfiguration.html) 对象而不是 `SlackConfiguration` 对象来配置您的连接器。  
使用旧版控制台和 API 架构配置的连接器仍可照常运行，但您将无法编辑或更新它们。如果要编辑或更新连接器配置，必须新建一个连接器。  
我们建议您将连接器工作流程迁移至升级后的版本。使用旧版架构配置的连接器的支持预计将在 2024 年 6 月前终止。

您可以使用[Amazon Kendra控制台](https://console.aws.amazon.com/kendra/)或 [TemplateConfiguration](https://docs.aws.amazon.com/kendra/latest/APIReference/API_TemplateConfiguration.html)API Amazon Kendra 连接到您的 Slack 数据源。

要对 Amazon Kendra Slack 数据源连接器进行故障排除，请参阅[数据来源故障排除](troubleshooting-data-sources.md)。

**Topics**
+ [支持的功能](#supported-features-slack)
+ [先决条件](#prerequisites-slack)
+ [连接说明](#data-source-procedure-slack)
+ [了解详情](#slack-learn-more)

## 支持的功能
<a name="supported-features-slack"></a>

Amazon KendraSlack 数据源连接器支持以下功能：
+ 字段映射
+ 用户访问控制
+ 包含/排除筛选条件
+ 完整和增量内容同步
+ 虚拟私有云（VPC）

## 先决条件
<a name="prerequisites-slack"></a>

在使用Amazon Kendra索引 Slack 数据源之前，请在您的 Slack 和AWS帐户中进行这些更改。

**在 Slack 中，请确保：**
+ 已配置 Slack 机器人用户 OAuth 令牌或 Slack 用户 OAuth 令牌。您可以选择任一令牌Amazon Kendra来连接您的 Slack 数据源。需要使用令牌作为您的身份验证凭证。有关更多信息，请参阅[有关访问令牌的 Slack 文档](https://api.slack.com/authentication/token-types)。
**注意**  
如果您使用机器人令牌作为 Slack 凭证的一部分，则无法将私信和群组消息编入索引，必须将机器人令牌添加到要编制索引的频道中。
**注意**  
我们建议您定期刷新或轮换您的凭证和密码。为了安全起见，请仅提供必要的访问权限级别。我们建议**不要**跨数据来源以及连接器版本 1.0 和 2.0（如果适用）重复使用凭证和密钥。
+ 在 Slack 工作区主页 URL 中记下您的 Slack 工作区团队 ID。例如，团队 ID {{https://app.slack.com/client/T0123456789/... }} 在{{T0123456789}}哪里。
+ 添加了以下 Oauth 范围/权限：    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/kendra/latest/dg/data-source-slack.html)
+ 在 Slack 以及计划用于编制同一索引的其他数据来源中，已检查每个文档都是唯一的。您要用于编制索引的每个数据来源在所有数据来源中都不能包含相同的文档。文档对索引来说 IDs 是全局的，并且每个索引必须是唯一的。

**在你的AWS 账户，请确保你有：**
+ [已创建Amazon Kendra索引](https://docs.aws.amazon.com/kendra/latest/dg/create-index.html)，如果使用 API，则记下索引 ID。
+ 为您的数据源@@ [创建了一个IAM角色](https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html#iam-roles-ds)，如果使用 API，请记下该角色的 ARN。IAM
**注意**  
如果您更改了身份验证类型和证书，则必须更新您的IAM角色才能访问正确的AWS Secrets Manager密钥 ID。
+ 将您的 Slack 身份验证凭证存储在 AWS Secrets Manager 密钥中，如果使用 API，请记下密钥的 ARN。
**注意**  
我们建议您定期刷新或轮换您的凭证和密码。为了安全起见，请仅提供必要的访问权限级别。我们建议**不要**跨数据来源以及连接器版本 1.0 和 2.0（如果适用）重复使用凭证和密钥。

如果您没有现有的IAM角色或密钥，则可以在将 Slack 数据源连接至时使用控制台创建新的IAM角色和Secrets Manager密钥。Amazon Kendra如果您使用的是 API，则必须提供现有IAM角色和Secrets Manager密钥的 ARN 以及索引 ID。

## 连接说明
<a name="data-source-procedure-slack"></a>

要Amazon Kendra连接到您的 Slack 数据源，您必须提供 Slack 数据源的必要详细信息，Amazon Kendra以便访问您的数据。如果您尚未为 Slack 配置Amazon Kendra，请参阅[先决条件](#prerequisites-slack)。

------
#### [ Console ]

**连接Amazon Kendra到 Slack** 

1. 登录AWS 管理控制台并打开[Amazon Kendra控制台](https://console.aws.amazon.com/kendra/)。

1. 在左侧导航窗格中，选择**索引**，然后从索引列表中选择要使用的索引。
**注意**  
您可以选择在**索引设置**下配置或编辑您的**用户访问控制**设置。

1. 在**开始使用**页面上，选择**添加数据来源**。

1. 在**添加数据来源**页面上，选择 **Slack 连接器**，然后选择**添加连接器**。如果使用版本 2（如果适用），请选择带有“V2.0”标签的 **Slack 连接器**。

1. 在**指定数据来源详细信息**页面上，输入以下信息：

   1. 在**名称和描述**中，在**数据来源名称**中输入您的数据来源的名称。可以包含连字符，但不能包含空格。

   1. （可选）**描述**：输入数据来源的描述信息。

   1. 在**默认语言**中，选择用于筛选文档以编制索引的语言。除非另行指定，否则语言默认为英语。在文档元数据中指定的语言会覆盖所选语言。

   1. 在**标签**中，用于**添加新标签**-包括可选标签以搜索和筛选您的资源或跟踪您的AWS成本。

   1. 选择**下一步**。

1. 在**定义访问权限和安全性**页面上，请输入以下信息：

   1. **Slack 工作区团队 ID** - 您的 Slack 工作区的团队 ID。可以在 Slack 工作区主页的 URL 中找到您的团队 ID。例如，团队 ID {{https://app.slack.com/client/T0123456789/...}} 在{{T0123456789}}哪里。

   1. **授权** - 如果您有访问控制列表（ACL）并想将其用于访问控制，请选择是开启还是关闭文档的 ACL 信息。ACL 用于指定用户和组可以访问哪些文档。ACL 信息用于根据用户或其所在组对文档的访问权限来筛选搜索结果。有关更多信息，请参阅[用户上下文筛选](https://docs.aws.amazon.com/kendra/latest/dg/user-context-filter.html#context-filter-user-incl-datasources)。

   1. AWS Secrets Managers@@ **ecret** —选择现有密钥或创建新Secrets Manager密钥来存储您的 Slack 身份验证凭据。如果您选择创建新密钥，则会打开 AWS Secrets Manager 密钥窗口。

      1. 在**创建 AWS Secrets Manager 密钥窗口**中输入以下信息：

         1. **密钥名称** - 密钥的名称。前缀 “AmazonKendra-Slack-” 会自动添加到您的密钥名称中。

         1. 对于 **Slack 令牌** - 输入您在 Slack 中配置的身份验证凭证值。

      1. 保存并添加您的密钥。

   1. **虚拟私有云（VPC）**- 您可以选择使用 VPC。如果是这样，则必须添加**子网**和 **VPC 安全组**。

   1. **身份爬网程序** – 指定是否激活 Amazon Kendra 的身份爬网程序。身份爬网程序使用文档的访问控制列表（ACL）信息，来根据用户或用户组对文档的访问权限筛选搜索结果。如果您的文档有 ACL 并选择使用 ACL，则也可以选择开启身份爬网程序来配置搜索结果Amazon Kendra的[用户上下文筛选](https://docs.aws.amazon.com/kendra/latest/dg/user-context-filter.html#context-filter-user-incl-datasources)。否则，如果关闭身份爬网程序，则可以公开搜索所有文档。如果您想对文档使用访问控制并且身份搜寻器已关闭，则可以使用 [PutPrincipalMapping](https://docs.aws.amazon.com/kendra/latest/APIReference/API_PutPrincipalMapping.html)API 上传用户和群组访问信息以进行用户上下文筛选。

   1. **IAM角色**-选择现有IAM角色或创建新IAM角色来访问您的存储库凭据和索引内容。
**注意**  
IAM用于索引的角色不能用于数据源。如果您不确定是否将现有角色用于编制索引或常见问题解答，为了避免出错，请选择**创建新角色**。

   1. 选择**下一步**。

1. 在**配置同步设置**页面上，请输入以下信息：

   1. **选择内容的类型** - 选择要爬取的 Slack 实体或内容类型。您可以选择 All channels（所有通道）、Public channels（公有通道）、Private channels（私有通道）、Group messages（群组消息）和 Private messages（私人消息）。

   1. **选择爬取开始日期** - 输入您想要开始爬取内容的日期。

   1. 对于**其他配置** - 选择是否包含机器人消息和已归档消息，并可使用正则表达式模式来包含或排除特定内容。
**注意**  
如果您选择同时包含频道 IDs 和频道名称，Amazon KendraSlack 连接器将优先考虑频道 IDs 而不是频道名称。  
如果您选择包含特定的私人和群组消息，Amazon Kendra Slack 连接器将忽略所有其他私人和群组消息，仅爬取您指定的私人和群组消息。

   1. **同步模式** – 选择在数据来源内容发生变化时更新索引的方式。首次与同步数据源时，Amazon Kendra默认情况下会对所有内容进行抓取和索引。如果首次同步失败，即使您没有选择“完整同步”作为同步模式，也必须执行一次完整的数据同步。
      + 完整同步：每次数据来源与索引同步时，重新为所有内容编制索引，并替换已有内容。
      + 新增、已修改、已删除的同步：每次数据源与索引同步时，仅索引新内容、修改内容和已删除内容。 Amazon Kendra可以使用数据源的机制来跟踪内容更改并索引自上次同步以来更改的内容。

   1. 在**同步运行计划**的**频率**中 – 选择同步数据来源内容并更新索引的频率。

   1. 选择**下一步**。

1. 在**设置字段映射**页面上，请输入以下信息：

   1. **默认数据源字段**-从Amazon Kendra生成的默认数据源字段中选择要映射到索引的字段。

   1.  **添加字段** - 添加自定义数据来源字段以创建要映射到的索引字段名称和字段数据类型。

   1. 选择**下一步**。

1. 在**查看和创建**页面上，请检查输入的信息是否正确，然后选择**添加数据来源**。您也可以选择在此页面上编辑信息。成功添加数据来源后，您的数据来源将显示在**数据来源**页面上。

------
#### [ API ]

**连接Amazon Kendra到 Slack**

您必须使用 [https://docs.aws.amazon.com/kendra/latest/dg/API_TemplateConfiguration.html](https://docs.aws.amazon.com/kendra/latest/dg/API_TemplateConfiguration.html) API 指定[数据来源架构](https://docs.aws.amazon.com/kendra/latest/dg/ds-schemas.html#ds-schema-slack)的 JSON。您必须提供以下信息：
+ **数据来源** – 当使用 [https://docs.aws.amazon.com/kendra/latest/dg/API_TemplateConfiguration.html](https://docs.aws.amazon.com/kendra/latest/dg/API_TemplateConfiguration.html) JSON 架构时，将数据来源类型指定为 `SLACK`。当调用 [https://docs.aws.amazon.com/kendra/latest/dg/API_CreateDataSource.html](https://docs.aws.amazon.com/kendra/latest/dg/API_CreateDataSource.html) API 时，还要将数据来源指定为 `TEMPLATE`。
+ **Slack 工作区团队 ID** - 您从 Slack 主页 URL 中复制的 Slack 团队 ID。
+ **开始日期** - 开始从 Slack 工作区团队爬取数据的日期。日期必须遵循此格式: yyyy-mm-dd.
+ **同步模式**-指定数据源内容发生变化时Amazon Kendra应如何更新索引。首次将数据来源与 Amazon Kendra 同步时，默认情况下会爬取所有内容并编制索引。如果首次同步失败，即使您没有选择“完整同步”作为同步模式，也必须执行一次完整的数据同步。您可以选择：
  + `FORCED_FULL_CRAWL`，每次数据来源与索引同步时，重新为所有内容编制索引，并替换已有内容。
  + `FULL_CRAWL`，每次数据来源与索引同步时，仅为新增、修改和删除的内容编制索引。Amazon Kendra 可以利用数据来源自身的内容变更跟踪机制，仅为自上次同步以来发生变化的内容编制索引。
  + `CHANGE_LOG`，每次数据来源与索引同步时，仅为新增和修改的内容编制索引。Amazon Kendra 可以利用数据来源自身的内容变更跟踪机制，仅为自上次同步以来发生变化的内容编制索引。
+ **身份爬网程序** – 指定是否激活 Amazon Kendra 的身份爬网程序。身份爬网程序使用文档的访问控制列表（ACL）信息，来根据用户或用户组对文档的访问权限筛选搜索结果。如果您的文档有 ACL 并选择使用 ACL，则也可以选择开启身份爬网程序来配置搜索结果Amazon Kendra的[用户上下文筛选](https://docs.aws.amazon.com/kendra/latest/dg/user-context-filter.html#context-filter-user-incl-datasources)。否则，如果关闭身份爬网程序，则可以公开搜索所有文档。如果您想对文档使用访问控制并且身份搜寻器已关闭，则可以使用 [PutPrincipalMapping](https://docs.aws.amazon.com/kendra/latest/APIReference/API_PutPrincipalMapping.html)API 上传用户和群组访问信息以进行用户上下文筛选。
+ **亚马逊秘密资源名称 (ARN)**-提供包含您的 Slack 账户身份验证凭证的Secrets Manager密钥的亚马逊资源名称 (ARN)。密钥必须使用具有以下键的 JSON 结构存储：

  ```
  {
      "slackToken": "{{token}}"
  }
  ```
+ **IAMro** le —指定`RoleArn`何时调用`CreateDataSource`以向IAM角色提供访问您的Secrets Manager密钥的权限以及调用 Slack 连接器 APIs 所需的公众的权限，以及。Amazon Kendra有关更多信息，请参阅 [Slack 数据来源的 IAM 角色](https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html#iam-roles-ds)。

您还可以添加以下可选功能：
+  **虚拟私有云（VPC）**- 指定 `VpcConfiguration`，以便调用 `CreateDataSource`。有关更多信息，请参阅 [配置 Amazon Kendra 为使用 Amazon VPC](vpc-configuration.md)。
+ **特定通道** - 按公有通道或私有通道筛选，并按通道 ID 指定特定通道。
+ **通道和消息类型** -Amazon Kendra 是否应为您的公有和私有通道、您的群组和私人消息以及您的机器人和存档消息编制索引。如果您使用机器人令牌作为 Slack 身份验证凭证的一部分，则必须将机器人令牌添加到要编制索引的频道。您无法使用机器人令牌将私信和群组消息编入索引。
+ **回溯** - 您可以选择配置 `lookBack` 参数，以使 Slack 连接器能够爬取在上次连接器同步前指定小时数内更新或删除的内容。
+  **包含和排除筛选条件** - 指定是包含还是排除某些 Slack 内容。如果您使用机器人令牌作为 Slack 身份验证凭证的一部分，则必须将机器人令牌添加到要编制索引的频道。您无法使用机器人令牌将私信和群组消息编入索引。
**注意**  
大多数数据来源使用正则表达式模式，即称为筛选条件的包含或排除模式。如果您指定包含筛选条件，则只会为与包含筛选条件匹配的内容编制索引。不会为任何与包含筛选条件不匹配的文档编制索引。如果您指定包含和排除筛选条件，则不会为与排除筛选条件匹配的文档编制索引，即使它们与包含筛选条件相匹配。
+  **字段映射** - 选择将 Slack 数据来源字段映射到 Amazon Kendra 索引字段。有关更多信息，请参阅[映射数据来源字段](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html)。
**注意**  
要搜索您的文档，必须输入文档正文字段或文档正文等效字段。Amazon Kendra您必须将数据来源中的文档正文字段名映射到索引字段名称 `_document_body`。其他所有字段均为可选字段。

有关要配置的其他重要 JSON 键的列表，请参阅 [Slack 模板架构](https://docs.aws.amazon.com/kendra/latest/dg/ds-schemas.html#ds-schema-slack)。

------

## 了解详情
<a name="slack-learn-more"></a>

要了解有关Amazon Kendra与 Slack 数据源集成的更多信息，请参阅：
+ [使用 Amazon Kendra Slack 连接器进行智能搜索，揭开 Slack 工作区的面纱](https://aws.amazon.com/blogs/machine-learning/unravel-the-knowledge-in-slack-workspaces-with-intelligent-search-using-the-amazon-kendra-slack-connector/)