本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon Kendra 网络爬虫连接器 v2.0
您可以使用 Amazon Kendra Web Crawler 来抓取和索引网页。
您只能爬取公共网站和使用安全通信协议(安全超文本传输协议(HTTPS))的公司内部网站。如果您在爬取网站时收到错误,则可能是该网站被阻止爬网。要爬取内部网站,可以设置 Web 代理。Web 代理必须面向公众。您还可以使用身份验证来访问和爬取网站。
Amazon Kendra Web Crawler v2.0 使用 Selenium 网络爬虫软件包和 Chromium 驱动程序。 Amazon Kendra 使用持续集成 (CI) 自动更新 Selenium 和 Chromium 驱动程序的版本。
当选择要编制索引的网站时,您必须遵守 Amazon 可接受使用政策以及所有其他 Amazon 条款。请记住,您只能使用 Amazon Kendra Web Crawler 来索引自己的网页或您有权编制索引的网页。要了解如何阻止 Amazon Kendra Web Crawler 将您的网站编入索引,请参阅为 Amazon Kendra Web 爬网程序配置 robots.txt 文件。 。滥用 Amazon Kendra Web Crawler 来积极抓取你不拥有的网站或网页是不被视为不可接受的用法。
要对 Amazon Kendra 网络爬虫数据源连接器进行故障排除,请参阅数据来源故障排除。
Web Crawler 连接器 v2.0 不支持从 AWS KMS 加密存储桶中抓取网站列表。 Amazon S3 它仅支持使用 Amazon S3 托管密钥进行服务器端加密。
不支持 Web Crawler v2.0 连接器的创建。 AWS CloudFormation如果需要 AWS CloudFormation 支持,请使用 Web Crawler v1.0 连接器。
支持的特征
先决条件
在使用 Amazon Kendra 索引您的网站之前,请先检查您的网站和 AWS 帐户的详细信息。
对于您的网站,请确保:
-
已复制要编制索引的网站的种子或站点地图 URL。您可以将 URL 存储在文本文件中,然后将其上传到 Amazon S3
存储桶。文本文件中的每个 URL 都必须对单行进行格式化。如果您想将站点地图存储在 Amazon S3 存储桶中,请确保已复制站点地图 XML 并将其保存在 XML 文件中。您也可以将多个站点地图 XML 文件压缩成一个 ZIP 文件。
(本地/服务器) Amazon Kendra 会检查中 AWS Secrets Manager 包含的端点信息是否与数据源配置详细信息中指定的端点信息相同。这有助于防止出现混淆代理人问题,这是一个安全问题,即用户无权执行操作,但可以将 Amazon Kendra 作为代理来访问配置的密钥和执行操作。如果以后更改端点信息,则必须创建一个新密钥来同步此信息。
-
对于需要基本、NTLM 或 Kerberos 身份验证的网站:
-
对于需要 SAML 或登录表单身份验证的网站:
-
可选:如果您想使用 Web 代理连接到要爬取的内部网站,请复制 Web 代理服务器的主机名和端口号。Web 代理必须面向公众。 Amazon Kendra 支持连接到由基本身份验证支持的 Web 代理服务器,或者无需身份验证即可连接。
-
可选:如果您想使用 VPC 连接到要爬取的内部网站,请复制虚拟私有云(VPC)子网 ID。有关更多信息,请参阅配置 Amazon VPC。
-
在网页以及计划用于编制同一索引的其他数据来源中,已检查每个文档都是唯一的。您要用于编制索引的每个数据来源在所有数据来源中都不能包含相同的文档。文档 ID 对索引来说是全局性的,并且每个索引都必须是唯一的。
在您的 AWS 账户中,请确保您有:
-
已创建 Amazon Kendra 索引,如果使用 API,则记下索引 ID。
-
为您的数据源@@ 创建了一个 IAM 角色,如果使用 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。
连接说明
要 Amazon Kendra 连接到您的web crawler数据源,您必须提供web crawler数据源的必要详细信息, Amazon Kendra 以便访问您的数据。如果您尚未进行配置,web crawler请参 Amazon Kendra 阅先决条件。
- Console
-
要连接 Amazon Kendra 到 web crawler
-
登录 AWS Management Console 并打开Amazon Kendra 控制台。
-
在左侧导航窗格中,选择索引,然后从索引列表中选择要使用的索引。
您可以选择在索引设置下配置或编辑您的用户访问控制设置。
-
在入门页面上,选择添加数据来源。
-
在 “添加数据源” 页面上,选择 Web Crawler 连接器,然后选择 “添加连接器”。如果使用版本 2(如果适用),请选择带有 “V2.0” 标签的 Web 爬网程序连接器。
-
在指定数据来源详细信息页面上输入以下信息:
-
在名称和描述中,在数据来源名称中输入您的数据来源的名称。可以包含连字符,但不能包含空格。
-
(可选)说明 - 为数据来源输入说明。
-
使用默认语言-选择一种语言来筛选文档中的索引。除非另行指定,否则语言默认为英语。在文档元数据中指定的语言会覆盖所选语言。
-
在标签中,用于添加新标签-包括可选标签以搜索和筛选您的资源或跟踪您的 AWS 成本。
-
选择下一步。
-
在定义访问权限和安全性页面上,请输入以下信息:
-
来源 - 选择来源 URL、来源站点地图、来源 URL 文件、源站点地图文件。如果您选择使用包含最多 100 个种子 URL 列表的文本文件,则需要指定 Amazon S3 存储文件的存储桶的路径。如果您选择使用站点地图 XML 文件,则需要指定存储文件的 Amazon S3 存储桶的路径。您也可以将多个站点地图 XML 文件压缩成一个 ZIP 文件。否则,您最多可以手动输入 10 个种子或起点 URL,以及最多三个站点地图 URL。
如果要爬取站点地图,请检查基本 URL 或根 URL 是否与站点地图页面上列出的 URL 相同。例如,如果您的站点地图 URL 是 https://example.com/sitemap-page.html,则此站点地图页面上列出的 URL 也应使用基本 URL“https://example.com/”。
如果您的网站需要身份验证才能访问,则可以选择基本身份验证、NTLM/Kerberos、SAML 或表单身份验证。否则,请选择不进行身份验证的选项。
如果您想稍后编辑数据来源以更改带有站点地图身份验证的种子 URL,则必须创建一个新的数据来源。 Amazon Kendra 使用 Secrets Manager 密钥中的种子 URL 端点信息为身份验证配置数据来源,因此在更改为站点地图时无法重新配置数据来源。
-
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']
.
-
(可选)Web 代理 - 输入要用于连接内部网站的代理服务器的主机名和端口号。例如,https://a.example.com/page1.html 的主机名是“a.example.com”,端口号是 443,这是 HTTPS 的标准端口。如果需要网络代理凭据才能连接到网站主机,则 AWS Secrets Manager 可以创建存储凭据的。
-
虚拟私有云(VPC)- 您可以选择使用 VPC。如果是这样,则必须添加子网和 VPC 安全组。
-
IAM 角色-选择现有 IAM 角色或创建新 IAM 角色来访问您的存储库凭据和索引内容。
IAM 用于索引的角色不能用于数据源。如果您不确定是否将现有角色用于编制索引或常见问题解答,为了避免出错,请选择创建新角色。
-
选择下一步。
-
在配置同步设置页面上,请输入以下信息:
-
同步范围 - 设置爬取网页的限制,包括其域名、文件大小和链接;并使用正则表达式模式筛选 URL。
-
(可选)爬取域名范围 - 选择是仅爬取网站域名、包含子域名的域名,还是同时爬取网页链接到的其他域名。默认情况下, Amazon Kendra 仅抓取您要抓取的网站的域名。
-
(可选)其他配置 - 设置以下设置:
-
爬取深度 -“深度”或从种子层开始的爬取层数。例如,种子 URL 页面的深度为 1,在该页面上同时爬取的所有超链接的深度都是 2。
-
最大文件大小 - 要爬取的网页或附件的最大大小(以 MB 为单位)。
-
每页的最大链接数量 - 要爬取的单个网页的最大 URL 数量。
-
爬取速度的最大限制 - 每分钟爬取的每个网站主机名的最大 URL 数量。
-
文件 - 选择爬取网页链接到的文件。
-
爬取和索引 URL - 添加正则表达式模式以包含或排除爬取某些 URL,以及将这些 URL 网页上的任何超链接编入索引。
-
同步模式 - 选择在数据来源内容发生变化时更新索引的方式。首次与同步数据源时, Amazon Kendra 默认情况下会对所有内容进行抓取和索引。如果初始同步失败,即使您没有选择完全同步作为同步模式选项,也必须对数据进行完全同步。
-
同步运行计划 - 对于频率,选择 Amazon Kendra 与数据来源同步的频率。
-
选择下一步。
-
在设置字段映射页面上,请输入以下信息:
-
从 Amazon Kendra 生成的网页和文件默认字段中选择要映射到索引的网页。
-
选择下一步。
-
在查看和创建页面上,请检查输入的信息是否正确,然后选择添加数据来源。您也可以选择在此页面上编辑信息。成功添加数据来源后,您的数据来源将显示在数据来源页面上。
- API
-
要连接 Amazon Kendra 到 web crawler
您必须使用 TemplateConfiguration API 指定数据来源架构的 JSON。您必须提供以下信息:
-
数据源-将数据源类型指定为使用 TemplateConfigurationJSON 架构WEBCRAWLERV2
时的类型。还要像调用 CreateDataSourceAPI TEMPLATE
时一样指定数据源。
-
URL - 指定您想要使用爬取的网站或站点地图 URL 的种子或起点 URL。您可以指定存储种子 URL 列表的 Amazon S3 存储桶的路径。种子 URL 的文本文件中的每个 URL 都必须对单行进行格式化。您还可以指定存储站点地图 XML 文件的 Amazon S3 存储桶的路径。您可以将多个站点地图文件压缩成一个 ZIP 文件,然后将 ZIP 文件存储在 Amazon S3
存储桶中。
如果要爬取站点地图,请检查基本 URL 或根 URL 是否与站点地图页面上列出的 URL 相同。例如,如果您的站点地图 URL 是 https://example.com/sitemap-page.html,则此站点地图页面上列出的 URL 也应使用基本 URL“https://example.com/”。
-
同步模式-指定数据源内容发生变化时 Amazon Kendra 应如何更新索引。首次与同步数据源时, 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 爬网程序连接器所需的公共 API 的权限,以及。 Amazon Kendra有关更多信息,请参阅 Web 爬网程序数据来源的IAM 角色。
您还可以添加以下可选功能:
-
虚拟私有云(VPC)- 指定 VpcConfiguration
,以便调用 CreateDataSource
。有关更多信息,请参阅 配置 Amazon Kendra 使用 Amazon VPC。
-
域范围 - 选择是仅爬取带有子域名的网站域名,还是同时爬取网页链接到的其他域名。默认情况下, Amazon Kendra 仅抓取您要抓取的网站的域名。
-
从种子层爬取的“深度”或层数。例如,种子 URL 页面的深度为 1,在该页面上同时爬取的所有超链接的深度都是 2。
-
爬取单个网页时要包含的 URL 的最大数量。
-
要爬取的网页或附件的最大大小(以 MB 为单位)。
-
每分钟爬取的每个网站主机的最大 URL 数量。
-
用于连接和爬取内部网站的 Web 代理主机和端口号。例如,https://a.example.com/page1.html 的主机名是“a.example.com”,端口号是 443,这是 HTTPS 的标准端口。如果连接至网站主机需要 Web 代理凭证,您可以创建存储凭证的 AWS Secrets Manager 。
-
包含和排除筛选条件 - 指定是包括还是排除爬取某些 URL 并将这些 URL 网页上的任何超链接编入索引。
大多数数据来源使用正则表达式模式,即称为筛选条件的包含或排除模式。如果您指定包含筛选条件,则只会为与包含筛选条件匹配的内容编制索引。不会为任何与包含筛选条件不匹配的文档编制索引。如果您指定包含和排除筛选条件,则不会为与排除筛选条件匹配的文档编制索引,即使它们与包含筛选条件相匹配。
-
字段映射-选择将网页和网页文件的字段映射到您的 Amazon Kendra 索引字段。有关更多信息,请参阅映射数据来源字段。
有关要配置的其他重要 JSON 键的列表,请参阅 Amazon Kendra Web 爬网程序模板架构。