教程:Amazon OpenSearch 无服务器入门 - Amazon OpenSearch Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

教程:Amazon OpenSearch 无服务器入门

本教程将指导您完成快速启动并运行 Amazon OpenSearch 无服务器搜索集合的基本步骤。搜索集合可为内部网络应用程序和面向 Internet 的应用程序(例如,电子商务网站搜索和内容搜索)提供支持。

要了解如何使用向量搜索集合,请参阅 使用向量搜索集合。有关使用集合的更多详细信息,请参阅管理 Amazon OpenSearch 无服务器集合和本指南中的其他主题。

在本教程中,您将完成以下步骤:

  1. 配置权限

  2. 创建集合

  3. 上传和搜索数据

  4. 删除集合

    注意

    我们建议仅将 ASCII 字符用于 IndexName。如果 IndexName 使用的不是 ASCII 字符,则对于非 ASCII 字符,CloudWatch 指标中的 IndexName 将转换为 URL 编码格式。

步骤 1:配置权限

要完成本教程,以及全面使用 OpenSearch 无服务器,您必须拥有正确的 IAM 权限。在本教程中,您将创建一个集合、上传和搜索数据,然后删除该集合。

您的用户或角色必须已经附加基于身份的策略,并且具有以下最低权限:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "aoss:CreateCollection", "aoss:ListCollections", "aoss:BatchGetCollection", "aoss:DeleteCollection", "aoss:CreateAccessPolicy", "aoss:ListAccessPolicies", "aoss:UpdateAccessPolicy", "aoss:CreateSecurityPolicy", "aoss:GetSecurityPolicy", "aoss:UpdateSecurityPolicy", "iam:ListUsers", "iam:ListRoles" ], "Effect": "Allow", "Resource": "*" } ] }

有关 OpenSearch 无服务器 IAM 权限的更多信息,请参阅适用于 Amazon OpenSearch 无服务器的 Identity and Access Management

步骤 2:创建集合

集合是一组 OpenSearch 索引,它们协同工作,以支持特定的工作负载或应用场景。

创建 OpenSearch 无服务器集合
  1. https://console.aws.amazon.com/aos/home 打开 Amazon OpenSearch Service 控制台。

  2. 选择左侧导航窗格中的 Collections(集合),然后选择 Create collection(创建集合)。

  3. 将该集合命名为 movies(电影)。

  4. 对于集合类型,选择 Search(搜索)。有关更多信息,请参阅选择集合类型

  5. 对于安全,选择标准创建

  6. 加密下,选择使用 Amazon 拥有的密钥。这是 OpenSearch 无服务器将用于加密您的数据的 Amazon KMS key。

  7. Network(网络)下,配置集合的网络设置。

    • 对于访问权限类型,选择 Public(公共)。

    • 对于资源类型,同时选中启用对 OpenSearch 端点的访问权限启用对 OpenSearch 控制面板的访问权限。由于您将使用 OpenSearch 控制面板上传和搜索数据,因此需要同时启用这两者。

  8. 选择下一步

  9. Configure data access(配置数据访问权限)中设置集合的访问设置。数据访问策略允许用户和角色访问集合中的数据。在本教程中,我们将为单个用户提供索引和搜索 movies(电影)集合中的数据所需的权限。

    创建一条规则,提供针对影片集合的访问权限。将该规则命名为 Movies collection access(电影集合访问权限)。

  10. 选择 Add principals(添加主体)、IAM users and roles(IAM 用户和角色),然后选择用于登录到 OpenSearch Dashboards 并索引数据的用户或角色。选择保存

  11. Index permissions(索引权限)下,选择所有权限。

  12. 选择下一步

  13. 在访问策略设置中,选择 Create a new data access policy(创建新的数据访问策略)并将策略命名为 movies(影片)。

  14. 选择下一步

  15. 查看集合设置并选择 提交。稍等几分钟,等集合状态变为 Active

步骤 3:上传并搜索数据

您可以使用 Postman 或 cURL 将数据上传到 OpenSearch 无服务器集合。为简洁起见,这些示例使用 OpenSearch 控制面板控制台中的 Dev Tools(开发工具)。

索引和搜索“movies”(电影)集合中的数据
  1. 选择左侧导航窗格中的 Collections(集合),然后选择 movies(电影)集合,以打开其详细信息页面。

  2. 选择集合的 OpenSearch 控制面板 URL。该 URL 采用 https://dashboards.{region}.aoss.amazonaws.com/_login/?collectionId={collection-id} 格式。

  3. 在 OpenSearch 控制面板中,打开左侧导航窗格,然后选择 Dev Tools(开发工具)。

  4. 要创建名为 movies-index 的单个索引,请发送以下请求:

    PUT movies-index
    OpenSearch Dashboards console showing PUT request for movies-index with JSON response.
  5. 要将单个文档索引到 movies-index 中,请发送以下请求:

    PUT movies-index/_doc/1 { "title": "Shawshank Redemption", "genre": "Drama", "year": 1994 }
  6. 要在 OpenSearch 控制面板中搜索数据,您需要配置至少一个索引模式。OpenSearch 将使用这些模式来标识您要分析的索引。打开左侧导航窗格,选择 Stack Management(堆栈管理),选择 Index Patterns(索引模式),然后选择 Create index pattern(创建索引模式)。在本教程中,请输入 movies

  7. 选择下一步,然后选择创建索引模式。创建模式后,您可以查看各种文档字段,例如 titlegenre

  8. 要开始搜索数据,请再次打开左侧导航窗格,然后选择 Discover(发现),或者使用 Dev Tools(开发工具)中的搜索 API

处理错误

执行索引和搜索操作时,您可能会收到以下错误响应:

  • HTTP 507:表示出现内部服务器错误。此错误通常表明请求的数量或复杂性导致 OpenSearch 计算单位(OCU)负载过重。尽管 OpenSearch 无服务器会自动扩展以管理负载,但部署其他资源时可能会出现延迟。

    要缓解此错误,请实施指数回退重试策略。此方法可暂时降低请求速率,从而有效管理负载。有关更多详细信息,请参阅《Amazon SDK 和工具参考指南》中的 Retry behavior

  • HTTP 402:表示已达到 OpenSearch 计算单位(OCU)的最大容量限制。优化工作负载,以减少 OCU 使用量或请求增加限额。

步骤 4:删除集合

由于 movies(电影)集合用于测试目的,因此请确保在您完成试验后将其删除。

删除 OpenSearch 无服务器集合
  1. 返回到 Amazon OpenSearch Service 控制台。

  2. 选择左侧导航窗格中的 Collections(集合),然后选择 movies(电影)集合。

  3. 选择 Delete(删除),然后确认删除。

后续步骤

现在您已知道如何创建集合和索引数据,您可能想尝试以下一些练习: