

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

# Amazon Kendra 网络爬虫连接器 v2.0
<a name="data-source-v2-web-crawler"></a>

您可以使用 Amazon Kendra Web Crawler 来抓取和索引网页。

您只能爬取公共网站和使用安全通信协议（安全超文本传输协议（HTTPS））的公司内部网站。如果您在爬取网站时收到错误，则可能是该网站被阻止爬网。要爬取内部网站，可以设置 Web 代理。Web 代理必须面向公众。您还可以使用身份验证来访问和爬取网站。

Amazon Kendra Web Crawler v2.0 使用 Selenium 网络爬虫软件包和 Chromium 驱动程序。 Amazon Kendra 使用持续集成 (CI) 自动更新 Selenium 和 Chromium 驱动程序的版本。

*当选择要编制索引的网站时，您必须遵守 [Amazon 可接受使用政策](https://aws.amazon.com/aup/)以及所有其他 Amazon 条款。请记住，您只能使用 Amazon Kendra Web Crawler 来索引自己的网页或您有权编制索引的网页。要了解如何阻止 Amazon Kendra Web Crawler 将您的网站编入索引，请参阅[为 Amazon Kendra Web Crawler 配置`robots.txt`文件](stop-web-crawler.md)。* 。滥用 Amazon Kendra Web Crawler 来积极抓取你不拥有的网站或网页是不被视为**不可**接受的用法。

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

**注意**  
Web Crawler 连接器 v2.0 *不*支持从 AWS KMS 加密存储桶中抓取网站列表。 Amazon S3 它仅支持使用 Amazon S3 托管密钥进行服务器端加密。

**重要**  
不支持 Web Crawler v2.0 连接器的创建。 CloudFormation如果需要 CloudFormation 支持，请使用 Web Crawler v1.0 连接器。

**Topics**
+ [支持的功能](#supported-features-v2-web-crawler)
+ [先决条件](#prerequisites-v2-web-crawler)
+ [连接说明](#data-source-v2-procedure-web-crawler)

## 支持的功能
<a name="supported-features-v2-web-crawler"></a>
+ 字段映射
+ 包含/排除筛选条件
+ 完整和增量内容同步
+ 网络代理
+ 网站的基本身份验证、NTLM/Kerberos 身份验证、SAML 身份验证和表单身份验证
+ 虚拟私有云（VPC）

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

在使用 Amazon Kendra 索引您的网站之前，请先检查您的网站和 AWS 帐户的详细信息。

**对于您的网站，请确保：**
+ 已复制您要编入索引 URLs 的网站的种子或站点地图。您可以将存储 URLs 在文本文件中，然后将其上传到 Amazon S3 存储桶。文本文件中的每个 URL 都必须对单行进行格式化。如果您想将站点地图存储在 Amazon S3 存储桶中，请确保已复制站点地图 XML 并将其保存在 XML 文件中。您也可以将多个站点地图 XML 文件压缩成一个 ZIP 文件。
**注意**  
（本地/服务器） Amazon Kendra 会检查中 AWS Secrets Manager 包含的端点信息是否与数据源配置详细信息中指定的端点信息相同。这有助于防止出现[混淆代理人问题](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)，这是一个安全问题，即用户无权执行操作，但可以将 Amazon Kendra 作为代理来访问配置的密钥和执行操作。如果以后更改端点信息，则必须创建一个新密钥来同步此信息。
+ **对于需要基本、NTLM 或 Kerberos 身份验证的网站**：
  + 已记下您的网站身份验证凭证，其中包括用户名和密码。
**注意**  
Amazon Kendra Web Crawler v2.0 支持包括密码哈希的 NTLM 身份验证协议和包括密码加密的 Kerberos 身份验证协议。
+ **对于需要 SAML 或登录表单身份验证的网站**：
  + 已记下您的网站身份验证凭证，其中包括用户名和密码。
  + 复制了用户名字段 XPaths （如果使用 SAML 则还包括用户名按钮）、密码字段和按钮的（XML 路径语言），并复制了登录页面 URL。你可以使用 Web 浏览器的开发者工具来找到 of 元素。 XPaths XPaths 通常遵循这种格式:`//tagname[@Attribute='Value']`.
**注意**  
Amazon Kendra Web Crawler v2.0 使用无头 Chrome 浏览器和表单中的信息，通过 OAuth 2.0 保护的 URL 进行身份验证和授权访问。
+ **可选**：如果您想使用 Web 代理连接到要爬取的内部网站，请复制 Web 代理服务器的主机名和端口号。Web 代理必须面向公众。 Amazon Kendra 支持连接到由基本身份验证支持的 Web 代理服务器，或者无需身份验证即可连接。
+ **可选**：如果您想使用 VPC 连接到要爬取的内部网站，请复制虚拟私有云（VPC）子网 ID。有关更多信息，请参阅[配置 Amazon VPC](https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html)。
+ 在网页以及计划用于编制同一索引的其他数据来源中，已检查每个文档都是唯一的。您要用于编制索引的每个数据来源在所有数据来源中都不能包含相同的文档。文档对索引来说 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，请记下该 IAM 角色的 Amazon 资源名称。
**注意**  
如果您更改了身份验证类型和证书，则必须更新您的 IAM 角色才能访问正确的 AWS Secrets Manager 密钥 ID。
+ 对于需要身份验证的网站，或者如果使用带身份验证的 Web 代理，请将您的身份验证凭据存储在 AWS Secrets Manager 密钥中，如果使用 API，请记下密钥的 ARN。
**注意**  
我们建议您定期刷新或轮换您的凭证和密码。为了安全起见，请仅提供必要的访问权限级别。我们建议**不要**跨数据来源以及连接器版本 1.0 和 2.0（如果适用）重复使用凭证和密钥。

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

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

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

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

**要连接 Amazon Kendra 到 web crawler** 

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

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

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

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

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

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

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

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

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

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

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

   1. **来源** **-选择**来源 URLs、源****站点地图、源文件和源站点地图 URLs****文件**。**如果您选择使用包含最多 100 个种子列表的文本文件 URLs，则需要指定 Amazon S3 存储文件的存储桶的路径。如果您选择使用站点地图 XML 文件，则需要指定存储文件的 Amazon S3 存储桶的路径。您也可以将多个站点地图 XML 文件压缩成一个 ZIP 文件。否则，您可以手动输入最多 10 个种子或起点 URLs，以及最多三个站点地图 URLs。
**注意**  
如果您想抓取站点地图，请检查基本网址或根网址是否与站点地图页面上 URLs 列出的网址相同。例如，如果您的站点地图 URL 是 *https://example.com/sitemap-page.html*，则此站点地图页面上 URLs 列出的也应使用基本 URL “https://example.com/”。

      如果您的网站需要身份验证才能访问，则可以选择基本身份验证、NTLM/Kerberos、SAML 或表单身份验证。否则，请选择不进行身份验证的选项。
**注意**  
如果您想稍后编辑数据源以通过站点地图身份 URLs 验证来更改种子，则必须创建一个新的数据源。 Amazon Kendra 使用 Secrets Manager 密钥中的种子 URLs 端点信息配置数据源进行身份验证，因此在更改为站点地图时无法重新配置数据源。

      1. AWS Secrets Manager s@@ **ecret** —如果您的网站需要相同的身份验证才能访问网站，请选择现有密钥或创建新 Secrets Manager 密钥来存储您的网站凭据。如果您选择创建新密钥，则会打开一个 AWS Secrets Manager 秘密窗口。

        如果您选择**基本**或 **NTML/Kerberos** 身份验证，请输入密钥的名称以及用户名和密码。NTLM 身份验证协议包括密码哈希，Kerberos 身份验证协议包括密码加密。

        如果您选择 **SAML** 或**表单**身份验证，请输入密钥的名称以及用户名和密码。 XPath 用于用户名字段（如果使用 SAML，则 XPath 用于用户名按钮）。 XPaths 用于密码字段和按钮以及登录页面 URL。你可以使用 Web 浏览器的开发者工具找到元素的 XPaths （XML 路径语言）。 XPaths 通常遵循这种格式:`//tagname[@Attribute='Value']`.

   1. （可选）**Web 代理** - 输入要用于连接内部网站的代理服务器的主机名和端口号。例如，*https://a.example.com/page1.html* 的主机名是“a.example.com”，端口号是 443，这是 HTTPS 的标准端口。如果需要网络代理凭据才能连接到网站主机，则可以创建 AWS Secrets Manager 用于存储凭据的。

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

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

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

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

   1. **同步范围**-设置抓取网页的限制，包括其域名、文件大小和链接；并 URLs 使用正则表达式模式进行筛选。

      1. （可选）**爬取域名范围** - 选择是仅爬取网站域名、包含子域名的域名，还是同时爬取网页链接到的其他域名。默认情况下， Amazon Kendra 仅抓取您要抓取的网站的域名。

      1. （可选）**其他配置** - 设置以下设置：
         + **爬取深度** -“深度”或从种子层开始的爬取层数。例如，种子 URL 页面的深度为 1，在该页面上同时爬取的所有超链接的深度都是 2。
         + **最大文件大小** - 要爬取的网页或附件的最大大小（以 MB 为单位）。
         + **每页的最大链接**数-单个网页 URLs上可供抓取的最大链接数。
         + **抓取速度的最大限制**-每位网站主机每分钟的最大 URLs抓取次数。
         + **文件** - 选择爬取网页链接到的文件。
         + **Crawl and index URLs**-添加正则表达式模式以包含或排除抓取某些内容 URLs，以及将这些 URL 网页上的任何超链接编入索引。

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

   1. **同步运行计划** - 对于**频率**，选择 Amazon Kendra 与数据来源同步的频率。

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

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

   1. 从 Amazon Kendra 生成的网页和文件默认字段中选择要映射到索引的网页。

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

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

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

**要连接 Amazon Kendra 到 web crawler**

您必须使用 [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-web-crawler-schema)的 JSON。您必须提供以下信息：
+ **数据来源** – 当使用 [https://docs.aws.amazon.com/kendra/latest/dg/API_TemplateConfiguration.html](https://docs.aws.amazon.com/kendra/latest/dg/API_TemplateConfiguration.html) JSON 架构时，将数据来源类型指定为 `WEBCRAWLERV2`。当调用 [https://docs.aws.amazon.com/kendra/latest/dg/API_CreateDataSource.html](https://docs.aws.amazon.com/kendra/latest/dg/API_CreateDataSource.html) API 时，还要将数据来源指定为 `TEMPLATE`。
+ **URLs**—指定要抓取 URLs 的网站的种子或起点或网站地图 URLs 。您可以指定存储种子列表的 Amazon S3 存储桶的路径 URLs。种子文本文件中的每个 URL 都 URLs 必须使用单独的行进行格式化。您还可以指定存储站点地图 XML 文件的 Amazon S3 存储桶的路径。您可以将多个站点地图文件压缩成一个 ZIP 文件，然后将 ZIP 文件存储在 Amazon S3 存储桶中。
**注意**  
如果您想抓取站点地图，请检查基本网址或根网址是否与站点地图页面上 URLs 列出的网址相同。例如，如果您的站点地图 URL 是 *https://example.com/sitemap-page.html*，则此站点地图页面上 URLs 列出的也应使用基本 URL “https://example.com/”。
+ **同步模式**-指定数据源内容发生变化时 Amazon Kendra 应如何更新索引。首次将数据来源与 Amazon Kendra 同步时，默认情况下会爬取所有内容并编制索引。如果首次同步失败，即使您没有选择“完整同步”作为同步模式，也必须执行一次完整的数据同步。您可以选择：
  + `FORCED_FULL_CRAWL`，每次数据来源与索引同步时，重新为所有内容编制索引，并替换已有内容。
  + `FULL_CRAWL`，每次数据来源与索引同步时，仅为新增、修改和删除的内容编制索引。 Amazon Kendra 可以利用数据来源自身的内容变更跟踪机制，仅为自上次同步以来发生变化的内容编制索引。
+ **身份验证** - 如果您的网站需要相同的身份验证，请指定 `BasicAuth`、`NTLM_Kerberos`、`SAML` 或 `Form` 身份验证。如果您的网站不需要身份验证，请指定`NoAuthentication`。
+ **密钥 Amazon 资源名称（ARN）**- 如果您的网站需要基本、NTLM 或 Kerberos 身份验证，则需要提供存储您的用户名和密码的身份验证凭证的密钥。您要提供 AWS Secrets Manager 密钥的 Amazon 资源名称（ARN）。密钥必须使用具有以下键的 JSON 结构存储：

  ```
  {
      "seedUrlsHash": "Hash representation of all seed URLs",
      "userName": "user name",
      "password": "password"
  }
  ```

  如果您的网站需要 SAML 身份验证，密钥将存储在 JSON 结构中，其中包含以下键：

  ```
  {
      "seedUrlsHash": "Hash representation of all seed URLs",                                
      "userName": "user name",
      "password": "password",
      "userNameFieldXpath": "XPath for user name field",
      "userNameButtonXpath": "XPath for user name button",
      "passwordFieldXpath": "XPath for password field",
      "passwordButtonXpath": "XPath for password button",
      "loginPageUrl": "Full URL for website login page"
  }
  ```

  如果您的网站需要表单身份验证，密钥将存储在 JSON 结构中，其中包含以下键：

  ```
  {
      "seedUrlsHash": "Hash representation of all seed URLs",
      "userName": "user name",
      "password": "password",
      "userNameFieldXpath": "XPath for user name field",
      "passwordFieldXpath": "XPath for password field",
      "passwordButtonXpath": "XPath for password button",
      "loginPageUrl": "Full URL for website login page"
  }
  ```

  你可以使用 Web 浏览器的开发者工具找到元素的 XPaths （XML 路径语言）。 XPaths 通常遵循这种格式:`//tagname[@Attribute='Value']`.

  您也可以使用 AWS Secrets Manager 密钥提供 Web 代理凭证。
+ **IAM ro** le —指定`RoleArn`何时调用`CreateDataSource`为 IAM 角色提供访问您的 Secrets Manager 密钥的权限以及呼叫 Web 爬网程序连接器 APIs 所需的公众的权限，以及。 Amazon Kendra有关更多信息，请参阅 [Web 爬网程序数据来源的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 仅抓取您要抓取的网站的域名。
+ 从种子层爬取的“深度”或层数。例如，种子 URL 页面的深度为 1，在该页面上同时爬取的所有超链接的深度都是 2。
+ 单个网页 URLs 上要抓取的最大数量。
+ 要爬取的网页或附件的最大大小（以 MB 为单位）。
+ 每位网站主机每分钟的最大 URLs 抓取次数。
+ 用于连接和爬取内部网站的 Web 代理主机和端口号。例如，*https://a.example.com/page1.html* 的主机名是“a.example.com”，端口号是 443，这是 HTTPS 的标准端口。如果连接至网站主机需要 Web 代理凭证，您可以创建存储凭证的 AWS Secrets Manager 。
+ **包含和排除过滤器**-指定是包括还是排除抓取这些 URL 网页上的某些超链接 URLs 和索引任何超链接。
**注意**  
大多数数据来源使用正则表达式模式，即称为筛选条件的包含或排除模式。如果您指定包含筛选条件，则只会为与包含筛选条件匹配的内容编制索引。不会为任何与包含筛选条件不匹配的文档编制索引。如果您指定包含和排除筛选条件，则不会为与排除筛选条件匹配的文档编制索引，即使它们与包含筛选条件相匹配。
+ **字段映射**-选择将网页和网页文件的字段映射到您的 Amazon Kendra 索引字段。有关更多信息，请参阅[映射数据来源字段](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html)。

有关要配置的其他重要 JSON 键的列表，请参阅 [Amazon Kendra Web 爬网程序模板架构](https://docs.aws.amazon.com/kendra/latest/dg/ds-schemas.html#ds-schema-web-crawler)。

------