

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

# Drupal
<a name="data-source-drupal"></a>

**注意**  
在 2026 年 5 月 31 日之前，仍将为现有客户提供对 Drupal 连接器的完全支持。该连接器虽已不再面向新用户开放，但现有用户可继续无中断使用。我们正在持续优化我们的连接器产品组合，以提供更具可扩展性和可定制性的解决方案。对于未来集成，我们建议探索 Amazon Kendra 自定义连接器框架[1]，该框架旨在支持更广泛的企业使用案例，并且具备更大的灵活性。

Drupal 是一个可用于创建网站和 Web 应用程序的开源内容管理系统（CMS）。你可以在 Drupal 中使用Amazon Kendra索引以下内容：
+ 内容 - 文章、基本页面、基本数据块、用户定义的内容类型、用户定义的数据块类型、自定义内容类型、自定义数据块类型
+ 评论 - 适用于任何内容类型和数据块类型
+ 附件 - 适用于任何内容类型和数据块类型

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

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

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

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

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

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

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

**在 Drupal 中，请确保：**
+ 已创建一个 Drupal（标准）套件账户和一个具有管理员角色的用户。
+ 已复制 Drupal 站点名称并配置了主机 URL。例如 *https://<hostname>/<drupalsitename>*。
+ 已配置包含用户名（Drupal 网站登录用户名）和密码（Drupal 网站密码）的基本身份验证凭证。
+ **推荐：**已配置 OAuth 2.0 凭据令牌。使用此令牌以及您的 Drupal 密码授权、客户端 ID、客户端密钥、用户名（Drupal 网站登录用户名）和密码（Drupal 网站密码）连接到 Amazon Kendra。
+ 使用管理员角色在您的 Drupal 账户中添加了以下权限：
  + 管理数据块
  + 挂你数据块内容显示
  + 管理数据块内容字段
  + 管理数据块内容表达显示
  + 管理视图
  + 查看用户电子邮件地址
  + 查看自己的未发布内容
  + 查看页面修订
  + 查看文章修订
  + 查看所有修订
  + 查看管理主题
  + 访问内容
  + 访问内容概览
  + 访问注释
  + 搜索内容
  + 访问文件概览
  + 访问上下文链接
**注意**  
如果存在用户定义的内容类型或用户定义的数据块类型，或者任何视图和区块被添加到 Drupal 网站，则必须为其提供管理员访问权限。

**在你的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。
+ 将您的 Drupal 身份验证凭证存储在 AWS Secrets Manager 密钥中，如果使用 API，请记下密钥的 ARN。
**注意**  
我们建议您定期刷新或轮换您的凭证和密码。为了安全起见，请仅提供必要的访问权限级别。我们建议**不要**跨数据来源以及连接器版本 1.0 和 2.0（如果适用）重复使用凭证和密钥。

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

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

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

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

**要连接Amazon Kendra到 Drupal** 

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

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

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

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

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

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

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

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

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

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

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

   1. 在**源**中，对于**主机 URL** - 您的 Drupal 网站的主机 URL。例如 *https://<hostname>/<drupalsitename>*。

   1. **SSL 证书位置** - 输入您存储在 Amazon S3 存储桶中的 SSL 证书的路径。

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

   1. 对于**身份验证**-根据您的用例在**基本身份**验证和 **OAuth 2.0 身份验证**之间进行选择。

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

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

         1. 如果已选择**基本身份验证**，请输入您复制的**密钥名称****、用户名**（Drupal 站点用户名）和**密码**（Drupal 站点密码），然后选择**保存和添加密钥**。

         1. **如果您选择了 **OAuth 2.0 身份验证**，请输入在您的 Drupal 帐户中生成的**密钥名称**、**用户**名（Drupal 站点用户名）、密码（Drupal 站点密码）、**客户**端 ID** 和客户机密**，然后选择**保存并**添加密钥。**

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

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

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

   1. 对于**同步范围**，从以下选项中进行选择：
**注意**  
当您选择爬取**文章**、**基本页面**和**基本数据块**时，它们的默认字段将自动同步。您也可以选择同步它们的评论、附件、自定义字段和其他自定义实体。

      1. 对于**选择实体**：
        +  **文章** - 选择是否爬取**文章**、文章评论、**评论**和**附件**。
        + **基本页面** - 选择是否爬取**基本页面**、页面**评论**及其**附件**。
        + **基本数据块** - 选择是否爬取**基本数据块**、数据块**评论**及其**附件**。
        + 您也可以选择添加**自定义内容类型**和**自定义数据块**。

   1. 对于**其他配置 - 可选**：
      + 对于**正则表达式模式** - 添加正则表达式模式以包含或排除特定的实体标题和文件名。最多可以添加 100 个模式。

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

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

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

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

   1. 对于**内容**、**评论**和**附件**-从Amazon Kendra生成的默认数据源字段中选择要映射到索引的字段。

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

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

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

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

**要连接Amazon Kendra到 Drupal**

您必须使用 [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-drupal-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 架构时，将数据来源类型指定为 `DRUPAL`。当调用 [https://docs.aws.amazon.com/kendra/latest/dg/API_CreateDataSource.html](https://docs.aws.amazon.com/kendra/latest/dg/API_CreateDataSource.html) API 时，还要将数据来源指定为 `TEMPLATE`。
+ **同步模式**-指定数据源内容发生变化时Amazon Kendra应如何更新索引。首次将数据来源与 Amazon Kendra 同步时，默认情况下会爬取所有内容并编制索引。如果首次同步失败，即使您没有选择“完整同步”作为同步模式，也必须执行一次完整的数据同步。您可以选择：
  + `FORCED_FULL_CRAWL`，每次数据来源与索引同步时，重新为所有内容编制索引，并替换已有内容。
  + `FULL_CRAWL`，每次数据来源与索引同步时，仅为新增、修改和删除的内容编制索引。Amazon Kendra 可以利用数据来源自身的内容变更跟踪机制，仅为自上次同步以来发生变化的内容编制索引。
  + `CHANGE_LOG`，每次数据来源与索引同步时，仅为新增和修改的内容编制索引。Amazon Kendra 可以利用数据来源自身的内容变更跟踪机制，仅为自上次同步以来发生变化的内容编制索引。
+ **亚马逊秘密资源名称 (ARN)**-提供包含您在 Drupal 账户中创建的身份验证凭证的Secrets Manager密钥的亚马逊资源名称 (ARN)。

  如果您使用基本身份验证，密钥将存储在 JSON 结构中，其中包含以下键：

  ```
  {
      "username": "user name",
      "password": "password"
  }
  ```

  如果您使用 OAuth 2.0 身份验证，则密钥将存储在 JSON 结构中，其中包含以下密钥：

  ```
  {
      "username": "user name",
      "password": "password",
      "clientId": "client id",
      "clientSecret": "client secret"
  }
  ```
**注意**  
我们建议您定期刷新或轮换您的凭证和密码。为了安全起见，请仅提供必要的访问权限级别。我们建议**不要**跨数据来源以及连接器版本 1.0 和 2.0（如果适用）重复使用凭证和密钥。
+ **IAMro** le —指定`RoleArn`何时调用`CreateDataSource`为IAM角色提供访问您的Secrets Manager密钥的权限以及呼叫 Drupal 连接器 APIs 所需的公众的权限，以及。Amazon Kendra有关更多信息，请参阅 [Drupal 数据来源的 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 上传用户和群组访问信息以进行用户上下文筛选。
+  **字段映射** - 选择将 Drupal 数据来源字段映射到 Amazon Kendra 索引字段。有关更多信息，请参阅[映射数据来源字段](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html)。
**注意**  
要搜索您的文档，必须输入文档正文字段或文档正文等效字段。Amazon Kendra您必须将数据来源中的文档正文字段名映射到索引字段名称 `_document_body`。其他所有字段均为可选字段。

有关要配置的其他重要 JSON 键的列表，请参阅[Drupal 模板架构](ds-schemas.md#ds-drupal-schema)。

------

## 注意
<a name="drupal-notes"></a>
+ Drupal APIs 没有官方的限制限制。
+ Java SDKs 不适用于 Drupal。
+ 只能使用原生 JSON API 获取 Drupal 数据。
+ 无法爬取与任何 Drupal **视图**无关的内容类型。
+ 您需要管理员访问权限才能从 Drupal **数据块**中爬取数据。
+ 没有可用于使用 HTTP 动词创建用户定义的内容类型的 JSON API。
+ **文章**、**基本页面**、**基本数据块**、用户定义的内容类型和用户定义的数据块类型的文档正文和评论以 HTML 格式显示。如果 HTML 内容格式不正确，则与 HTML 相关的标签将出现在文档正文和注释中，并在 Amazon Kendra 搜索结果中可见。
+ 没有描述或正文的内容类型和**区块**类型不会被Amazon Kendra收录。只有此类**内容**或**区块**类型的**评论**和**附件**才会被提取到您的Amazon Kendra索引中。