

Amazon Kendra 不再向新客户开放。要了解与类似的功能 Amazon Kendra，请浏览亚马逊基岩知识库。[了解更多](https://docs.aws.amazon.com/kendra/latest/dg/kendra-availability-change.html)。

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

# Salesforce 连接 V2.0
<a name="data-source-v2-salesforce"></a>

Salesforce 是一款客户关系管理（CRM）工具，用于管理支持、销售和营销团队。您可以使用 Amazon Kendra 索引您的 Salesforce 标准对象甚至自定义对象。

 Amazon Kendra Salesforce 数据源连接器支持以下 Salesforce 版本：开发者版和企业版。

**注意**  
Salesforce 连接器 V1.0 / SalesforceConfiguration API 于 2023 年结束。我们建议迁移到或使用 Salesforce 连接器 V2.0 / TemplateConfiguration API。

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

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

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

Amazon Kendra Salesforce 数据源连接器支持以下功能：
+ 字段映射
+ 用户访问控制
+ Inclusion/exclusion 过滤器
+ 完整和增量内容同步
+ 虚拟私有云（VPC）

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

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

**注意**  
Salesforce将在2027年冬季 Username-Password 版本中停用Flow。我们建议对新配置使用客户端凭证流程，以避免将来数据连接中断。有关更多信息，请参阅 [ Salesforce 文档](https://help.salesforce.com/s/articleView?id=release-notes.rn_security_username_password_flow_retirement.htm&release=260&type=5)中的取消联网应用程序的 OAuth 2.0 Username-Password Flow。

**在 Salesforce 中，请确保：**

**对于客户凭证流程（推荐）：**
+ 在 Salesforce 中创建启用了 OAuth 的外部客户端应用程序：

  1. 在 “设置” 中，选择 “应用程序”、“应用程序管理器”，然后选择 “新建外部客户端应用程序”。

  1. 启用 OAuth 范围：通过 API (API) ** 管理用户数据**并随时**执行请求（refresh\_token、offline\_access）。**

  1. 在 “身份验证流程和外部客户端应用程序增强” 部分中，启用客户端凭证流程。

  1. 为执行上下文配置 “**运行身份” ** 用户。例如：**运行身份**（用户名）。

  1. 记下**消费者密钥 ** (client\_id) 和**消费者密钥 ** (client\_secret)。
+ 复制您的 Salesforce 实例的 “我的域名” 网址（例如，{{https://<orgDomain>.my.salesforce.com}}）。要查找您的我的域名 URL，请从 “设置” 中的 “快速查找” 框中输入 “**我的域名”**，然后选择 “**我的域名” **。适用于客户端凭证流程`https://login.salesforce.com`，`https://test.salesforce.com`不支持。

**对于 Username-Password Flow（旧版 — 2027 年冬季已弃用）：**
+ 已创建一个 Salesforce 管理账户，并记下了用于连接 Salesforce 的用户名和密码。
+ 已复制与用于连接 Salesforce 的账户关联的 Salesforce 安全令牌。
+ 已创建一个激活 OAuth 的 Salesforce 连接的应用程序账户，并已复制分配给您的 Salesforce 连接的应用程序的使用者键（客户端 ID）和使用者密钥（客户端密钥）。客户端 ID 和客户端密钥用作存储在密 AWS Secrets Manager 钥中的身份验证凭证。有关更多信息，请参阅有关联网应用程序[的 ](https://help.salesforce.com/s/articleView?id=sf.connected_app_overview.htm&type=5) Salesforce 文档。
**注意**  
我们建议您定期刷新或轮换您的凭证和密码。为了安全起见，请仅提供必要的访问权限级别。我们建议**不要**跨数据来源以及连接器版本 1.0 和 2.0（如果适用）重复使用凭证和密钥。
+ 要编制索引的 Salesforce 实例的 URL。通常为 {{https://<company>.salesforce.com/}}。服务器必须运行与 Salesforce 连接的应用程序。
+ 通过克隆 ReadOnly 个人资料，然后添加 “查看所有数据” 和 “管理文章” 权限，为具有 Salesforce 只读访问权限的用户向您的 Salesforce 服务器添加了凭据。这些凭据可识别进行连接的用户以及连接的 Salesforce Amazon Kendra 连接应用程序。

**对于这两个流程：**
+ 在 Salesforce 以及计划用于编制同一索引的其他数据来源中，已检查每个文档都是唯一的。您要用于编制索引的每个数据来源在所有数据来源中都不能包含相同的文档。文档 ID 对索引来说是全局性的，并且每个索引都必须是唯一的。

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

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

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

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

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

**要连接 Amazon Kendra 到 Salesforce**：

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

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

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

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

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

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

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

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

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

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

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

   1. **Salesforce URL** - 输入要编制索引的 Salesforce 站点的实例 URL。

   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 Manager 密钥窗口。

      1. **身份验证 ** —选择您的身份验证类型：
         + **客户机凭证流程（推荐）**-仅使用 client\_id 和 client\_secret 进行服务器到服务器的集成。
         + **Username-Password Flow（旧版）**-使用用户名、密码、安全令牌、消费者密钥和消费者密钥。Salesforce 已于 2027 年冬季弃用。

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

      1. **对于客户凭证流程：**
         + **消费者密钥 ** — 来自您的 Salesforce 外部客户端应用程序的客户端 ID
         + **消费者密钥 ** — 来自您的 Salesforce 外部客户端应用程序的客户机密
         + **身份验证 URL ** —您的 “我的域” 网址（例如，{{ https://<orgDomain>.my.salesforce.com/services/oauth2/token}}）。
**注意**  
`https://login.salesforce.com``https://test.salesforce.com`并且不支持此流程。

      1. **对于 Username-Password Flow：**
         + **用户名 ** —您的 Salesforce 管理员用户名
         + **密码 ** —您的 Salesforce 管理员密码
         + **安全令牌 ** — 您的 Salesforce 账户的安全令牌
         + **消费者密钥 ** — 来自您的 Salesforce 互联应用程序的客户端 ID
         + **消费者秘密 ** — 来自您的 Salesforce 互联应用程序的客户机密
         + **身份验证 URL ** — 对于 Salesforce 开发者版，使用`https://login.salesforce.com/services/oauth2/token`或您的 “我的域” 登录 URL（例如，{{ https://MyCompany.my.salesforce.com}}）。对于 Salesforce 沙盒版，使用`https://test.salesforce.com/services/oauth2/token`或您的我的域名登录网址（例如，{{ MyDomainName--SandboxName.sandbox.my.salesforce.com}}）。

      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. 对于**爬取附件** - 选择爬取所有附加 Salesforce 对象。

   1. 对于**标准对象**、**带附件的标准对象**以及**不带附件的标准对象**和**知识文章** - 请选择要爬取的 Salesforce 实体或内容类型。

   1. 您必须提供配置信息，以便为至少一个标准对象、知识文章或聊天源编制索引。如果您选择爬取**知识文章**，则必须指定要编入索引的知识文章的类型。您可以选择已发布、已存档、草稿和附件。

      **正则表达式筛选条件** - 指定包含特定目录项的正则表达式模式。

1. 对于**附加配置**：
   + **ACL 信息** - 默认情况下包括所有访问控制列表。取消选择访问控制列表将公开该类别中的所有文件。
   + **正则表达式模式** - 添加包含或排除某些文件的正则表达式模式。最多可以添加 100 个模式。

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

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

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

   1. 对于**标准知识文章**、**标准对象附件****和其他建议字段映射 **-从 Amazon Kendra 生成的要映射到索引的默认数据源字段中进行选择。
**注意**  
映射到 `_document_body` 的索引是必需的。您无法更改 `Salesforce ID` 字段与 Amazon Kendra `_document_id ` 字段之间的映射。您可以将任何 Salesforce 字段映射到文档标题或文档正文亚马逊 Kendra reserved/default 索引字段。  
如果您将任意 Salesforce 字段映射到 Amazon Kendra 的文档标题和正文字段，Amazon Kendra 将在搜索结果中使用来自这些标题和正文字段的数据。

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

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

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

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

**连接 Amazon Kendra 到 Salesforce **

您必须使用 [TemplateConfiguration](https://docs.aws.amazon.com/kendra/latest/APIReference/API_TemplateConfiguration.html) API 指定[数据来源架构](https://docs.aws.amazon.com/kendra/latest/dg/ds-schemas.html)的 JSON。您必须提供以下信息：
+ **数据来源** – 当使用 [TemplateConfiguration](https://docs.aws.amazon.com/kendra/latest/dg/API_TemplateConfiguration.html) JSON 架构时，将数据来源类型指定为 `SALESFORCEV2`。当调用 [CreateDataSource](https://docs.aws.amazon.com/kendra/latest/dg/API_CreateDataSource.html) API 时，还要将数据来源指定为 `TEMPLATE`。
+ **主机 URL** - 指定 Salesforce 实例的主机 URL。
+ **同步模式** – 指定当数据来源内容发生变化时 Amazon Kendra 更新索引的方式。当您首次与同步数据源时，默认情况下会 Amazon Kendra 对所有内容进行抓取和索引。如果首次同步失败，即使您没有选择“完整同步”作为同步模式，也必须执行一次完整的数据同步。您可以选择：
  + `FORCED_FULL_CRAWL`，每次数据来源与索引同步时，重新为所有内容编制索引，并替换已有内容。
  + `FULL_CRAWL`每次数据源与索引同步时，仅为新的、修改过的和删除的内容编制索引。 Amazon Kendra 可以使用数据源的机制来跟踪内容更改并为自上次同步以来更改的内容编制索引。
  + `CHANGE_LOG`每次数据源与索引同步时，仅为新内容和修改过的内容编制索引。 Amazon Kendra 可以使用数据源的机制来跟踪内容更改并为自上次同步以来更改的内容编制索引。
+ **亚马逊机密资源名称 (ARN) ** — 提供包含您的 Salesforce 账户身份验证凭证的 Secrets Manager 密钥的亚马逊资源名称 (ARN)。密钥必须使用具有以下键的 JSON 结构存储：

  ```
  {
      "authenticationUrl": "{{OAUTH endpoint that Amazon Kendra connects to get an OAUTH token}}",
      "consumerKey": "{{Application public key generated when you created your Salesforce application}}",
      "consumerSecret": "{{Application private key generated when you created your Salesforce application}}",
      "password": "{{Password associated with the user logging in to the Salesforce instance}}",
      "securityToken": "{{Token associated with the user account logging in to the Salesforce instance}}",
      "username": "{{User name of the user logging in to the Salesforce instance}}"
  }
  ```
+ **IAM 角色 ** —指定`RoleArn`何时调用`CreateDataSource`以向 IAM 角色提供访问您的 Secrets Manager 密钥的权限，以及调用 Salesforce 连接器所需的公共 API 的权限，以及。 Amazon Kendra有关更多信息，请参阅 [Salesforce 数据来源的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)。
+ **包含和排除筛选条件** - 您可以指定是包含还是排除某些文档、账户、活动、案例、联系人、潜在客户、机会、解决方案、任务、群组、聊天者和自定义实体文件。
**注意**  
大多数数据来源使用正则表达式模式，即称为筛选条件的包含或排除模式。如果您指定包含筛选条件，则只会为与包含筛选条件匹配的内容编制索引。不会为任何与包含筛选条件不匹配的文档编制索引。如果您指定包含和排除筛选条件，则不会为与排除筛选条件匹配的文档编制索引，即使它们与包含筛选条件相匹配。
+ **身份爬网程序** – 指定是否激活 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 上传用户和群组访问信息以进行用户上下文筛选。
+  **字段映射** - 选择将 Salesforce 数据来源字段映射到 Amazon Kendra 索引字段。有关更多信息，请参阅[映射数据来源字段](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html)。
**注意**  
要搜索您的文档，必须填写文档正文字段或与文档正文 Amazon Kendra 对应的字段。您必须将数据来源中的文档正文字段名映射到索引字段名称 `_document_body`。其他所有字段均为可选字段。
**注意**  
映射到 `_document_body` 的索引是必需的。您无法更改 `Salesforce ID` 字段与 Amazon Kendra `_document_id ` 字段之间的映射。您可以将任何 Salesforce 字段映射到文档标题或文档正文亚马逊 Kendra reserved/default 索引字段。  
如果您将任意 Salesforce 字段映射到 Amazon Kendra 的文档标题和正文字段，Amazon Kendra 将在搜索结果中使用来自这些标题和正文字段的数据。

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

------

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

要了解有关 Amazon Kendra 与 Salesforce 数据源集成的更多信息，请参阅：
+ [宣布更新的 Salesforce 连接器 (V2) Amazon Kendra](https://aws.amazon.com/blogs/machine-learning/announcing-the-updated-salesforce-connector-v2-for-amazon-kendra/)

## 注意
<a name="salesforce-notes"></a>
+ 启用访问控制列表（ACL）后，由于 Salesforce API 限制，“仅同步新内容或修改后内容”选项不可用。我们建议改用“完整同步”或“新增、修改或删除的内容同步”模式，或者在需要使用此同步模式时禁用 ACL。