本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建、列出和删除 Amazon OpenSearch 无服务器集合
Amazon OpenSearch 无服务器中的集合是代表分析工作负载的一个或多个索引的逻辑分组。OpenSearch Service 可以自动管理和调整集合,只需很少的手动输入。
所需权限
OpenSearch 无服务器使用以下 AWS Identity and Access Management(IAM)权限来创建和管理集合。您可以指定 IAM 条件,以将用户限制到特定集合。
-
aoss:CreateCollection
:创建集合。 -
aoss:ListCollections
:列出当前账户中的集合。 -
aoss:BatchGetCollection
:获取有关一个或多个集合的详细信息。 -
aoss:UpdateCollection
:修改集合。 -
aoss:DeleteCollection
:删除集合。
以下基于身份的示例访问策略将为用户提供管理名为 Logs
的单个集合所需的最低权限:
[ { "Sid":"Allows managing logs collections", "Effect":"Allow", "Action":[ "aoss:CreateCollection", "aoss:ListCollections", "aoss:BatchGetCollection", "aoss:UpdateCollection", "aoss:DeleteCollection", "aoss:CreateAccessPolicy", "aoss:CreateSecurityPolicy" ], "Resource":"*", "Condition":{ "StringEquals":{ "aoss:collection":"
Logs
" } } } ]
之所以包括 aoss:CreateAccessPolicy
和 aoss:CreateSecurityPolicy
,是因为需要加密、网络和数据访问策略才能使集合正常运行。有关更多信息,请参阅 适用于 Amazon OpenSearch Serverless 的身份和访问管理。
注意
如果您要在账户中创建第一个集合,则还需要 iam:CreateServiceLinkedRole
权限。有关更多信息,请参阅 使用服务相关角色创建 OpenSearch 无服务器集合。
创建集合
您可以使用控制台或 AWS CLI 创建无服务器集合。这些步骤介绍如何创建搜索集合或时间序列集合。要创建向量搜索集合,请参阅 使用向量搜索集合。
创建集合(控制台)
使用控制台创建集合
-
导航到位于 https://console.aws.amazon.com/aos/home/
的 Amazon OpenSearch Service 控制台。 -
展开左侧导航窗格中的 Serverless(无服务器),然后选择 Collections(集合)。
-
选择 Create collection(创建集合)。
-
为集合提供名称和描述。名称必须符合以下标准:
-
对于您的账户和 AWS 区域而言是唯一的
-
以小写字母开头
-
包含 3 到 32 个字符
-
只包含小写字母 a-z、数字 0–9 和连字符(-)
-
-
选择集合类型:
-
Search(搜索):全文搜索,支持内部网络中的应用程序和面向互联网的应用程序。所有搜索数据都将存储在热存储中,以确保快速查询响应时间。
-
Time series(时间序列):专注于分析机器生成的大量半结构化数据的日志分析部分。至少 24 小时的数据存储在热索引中,其余数据仍保留在温存储中。
-
向量搜索 – 对简化向量数据管理的矢量嵌入进行语义搜索。支持机器学习(ML)增强搜索体验和生成式人工智能应用程序,例如聊天机器人、个人助理和欺诈检测。
有关更多信息,请参阅 选择集合类型。
-
-
在部署类型下,选择集合的冗余设置。默认情况下,每个集合在创建时都配置了冗余,因此索引和搜索 OpenSearch 计算单元(OCU)在不同的可用区中都有自己的备用副本。对于开发和测试目的,您可以选择禁用冗余,从而将集合中的 OCU 数量减少到两个。有关更多信息,请参阅 工作方式。
-
在 Encryption(加密)下,选择用于加密数据的 AWS KMS 密钥。如果您输入的集合名称与加密策略中定义的模式相匹配,则 OpenSearch 无服务器将通知您。您可以选择保留此匹配项,也可以使用唯一的加密设置将其覆盖。有关更多信息,请参阅 Amazon OpenSearch 无服务器中的加密。
-
在 Network access settings(网络访问设置)下,配置集合的网络访问权限。
-
对于访问类型,选择公有或私有。然后,指定哪些 VPC 端点和 AWS 服务可以访问该集合。
-
用于访问的 VPC 端点 – 指定一个或多个可用于访问的 VPC 端点。要创建 VPC 端点,请参阅使用接口终端节点访问 Amazon OpenSearch Serverless ()AWS PrivateLink。
-
AWS 服务私有访问 – 选择一个或多个要允许访问的支持的服务。
-
-
对于 Resource type(资源类型),选择集合是可以通过其 OpenSearch 端点访问(通过 curl、Postman 等进行 API 调用)、可以通过 OpenSearch 控制面板端点访问(通过控制台使用可视化和进行 API 调用),还是可以同时通过两者访问。
注意
AWS 服务私有访问仅适用于 OpenSearch 端点,不适用于 OpenSearch 控制面板端点。
如果您输入的集合名称与网络策略中定义的模式相匹配,则 OpenSearch 无服务器将通知您。您可以选择保留此匹配项,也可以使用自定义网络设置将其覆盖。有关更多信息,请参阅 针对 Amazon OpenSearch 无服务器的网络访问权限。
-
-
(可选)将一个或多个标签添加到集合。有关更多信息,请参阅 标记 Amazon OpenSearch 无服务器集合。
-
选择下一步。
-
为集合配置数据访问规则,该规则定义谁可以访问集合中的数据。对于创建的每条规则,请执行以下步骤:
-
选择 Add principals(添加主体),然后选择一个或多个 IAM 角色或 SAML 用户和组,授予其数据访问权限。
-
在 Grant permissions(授予权限)下,选择要授予关联主体的别名、模板和索引权限。有关权限及其允许的访问权限的完整列表,请参阅 支持的 OpenSearch API操作和权限。
如果您输入的集合名称与数据访问策略中定义的模式相匹配,则 OpenSearch 无服务器将通知您。您可以选择保留此匹配项,也可以使用唯一的数据访问设置将其覆盖。有关更多信息,请参阅 Amazon OpenSearch 无服务器的数据访问控制。
-
-
选择下一步。
-
在 Data access policy settings(数据访问策略设置)下,选择如何处理刚才创建的规则。您可以使用它们来创建新的数据访问策略,也可以将其添加到现有策略中。
-
查看集合配置并选择 Submit(提交)。
在 OpenSearch 无服务器创建集合时,集合状态更改为 Creating
。
创建集合(CLI)
在使用 AWS CLI 创建集合之前,您必须拥有一个加密策略,其资源模式必须与集合的预期名称相匹配。例如,如果您计划将您的集合命名为 logs-application,则可以创建如下所示的加密策略:
aws opensearchserverless create-security-policy \ --name
logs-policy
\ --type encryption --policy "{\"Rules\":[{\"ResourceType\":\"collection\",\"Resource\":[\"collection\/logs-application
\"]}],\"AWSOwnedKey\":true}"
如果您计划将该策略用于其他集合,则可以扩大该规则的范围,如 collection/logs*
或 collection/*
。
您还需要以网络策略的形式为集合配置网络设置。使用前面的 logs-application 示例,您可以创建以下网络策略:
aws opensearchserverless create-security-policy \ --name
logs-policy
\ --type network --policy "[{\"Description\":\"Public access for logs collection\",\"Rules\":[{\"ResourceType\":\"dashboard\",\"Resource\":[\"collection\/logs-application
\"]},{\"ResourceType\":\"collection\",\"Resource\":[\"collection\/logs-application
\"]}],\"AllowFromPublic\":true}]"
注意
您可以在创建集合后创建网络策略,但我们建议您事先创建网络策略。
要创建集合,请发送 CreateCollection 请求:
aws opensearchserverless create-collection --name "
logs-application
" --typeSEARCH
--description "A collection for storing log data
"
对于 type
,请指定 SEARCH
或 TIMESERIES
。有关更多信息,请参阅 选择集合类型。
示例响应
{ "createCollectionDetail": { "id": "07tjusf2h91cunochc", "name": "books", "description":"A collection for storing log data", "status": "CREATING", "type": "SEARCH", "kmsKeyArn": "auto", "arn": "arn:aws:aoss:us-east-1:123456789012:collection/07tjusf2h91cunochc", "createdDate": 1665952577473 } }
如果您在该请求中未指定集合类型,则其默认为 TIMESERIES
。如果您的集合使用 AWS 拥有的密钥进行加密,则 kmsKeyArn
将是 auto
而非 ARN。
重要
在创建集合后,除非该集合与某一数据访问策略相匹配,否则您将无法访问它。有关创建数据访问策略的说明,请参阅Amazon OpenSearch 无服务器的数据访问控制。
访问 OpenSearch 控制面板
使用 AWS Management Console 创建集合后,您可以导航到该集合的 OpenSearch 控制面板 URL。您可以通过选择左侧导航窗格中的集合,然后选择该集合以打开其详细信息页面,来查找控制面板 URL。该 URL 采用 https://dashboards.
格式。导航到 URL 后,将自动登录控制面板。us-east-1
.aoss.amazonaws.com/_login/?collectionId=07tjusf2h91cunochc
如果已有 OpenSearch 控制面板 URL 可用但未添加到 AWS Management Console,则从浏览器调用控制面板 URL 将重定向到控制台。输入 AWS 凭证后,将自动登录控制面板。有关访问 SAML 集合的信息,请参阅使用 SAML 访问 OpenSearch 控制面板。
OpenSearch 控制面板控制台的超时时间为一小时且不可配置。
注意
2023 年 5 月 10 日,OpenSearch 推出 OpenSearch 控制面板通用全局端点。现在,您可以使用格式为 https://dashboards.
的 URL 在浏览器中导航到 OpenSearch 控制面板。为确保向后兼容性,我们将继续支持格式为 us-east-1
.aoss.amazonaws.com/_login/?collectionId=07tjusf2h91cunochc
https://
的现有集合特定 OpenSearch 控制面板端点。07tjusf2h91cunochc
.us-east-1
.aoss.amazonaws.com/_dashboards
查看集合
您可以在 Amazon OpenSearch Service 控制台的 Collections(集合)选项卡上,查看 AWS 账户中的现有集合。
要列出集合及其 ID,请发送 ListCollections 请求。
aws opensearchserverless list-collections
示例响应
{ "collectionSummaries":[ { "arn":"arn:aws:aoss:us-east-1:123456789012:collection/07tjusf2h91cunochc", "id":"07tjusf2h91cunochc", "name":"my-collection", "status":"CREATING" } ] }
要限制搜索结果,请使用集合筛选器。此请求将筛选针对处于 ACTIVE
状态的集合的响应:
aws opensearchserverless list-collections --collection-filters '{ "status": "
ACTIVE
" }'
要获取有关一个或多个集合的更多详细信息,包括 OpenSearch 端点和 OpenSearch 控制面板端点,请发送 BatchGetCollection 请求:
aws opensearchserverless batch-get-collection --ids ["
07tjusf2h91cunochc
", "1iu5usc4rame
"]
注意
您可以在该请求中包括 --names
或 --ids
,但不能同时包括两者。
示例响应
{ "collectionDetails":[ { "id": "07tjusf2h91cunochc", "name": "my-collection", "status": "ACTIVE", "type": "SEARCH", "description": "", "arn": "arn:aws:aoss:us-east-1:123456789012:collection/07tjusf2h91cunochc", "kmsKeyArn": "arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", "createdDate": 1667446262828, "lastModifiedDate": 1667446300769, "collectionEndpoint": "https://07tjusf2h91cunochc.us-east-1.aoss.amazonaws.com", "dashboardEndpoint": "https://07tjusf2h91cunochc.us-east-1.aoss.amazonaws.com/_dashboards" }, { "id": "178ukvtg3i82dvopdid", "name": "another-collection", "status": "ACTIVE", "type": "TIMESERIES", "description": "", "arn": "arn:aws:aoss:us-east-1:123456789012:collection/178ukvtg3i82dvopdid", "kmsKeyArn": "arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", "createdDate": 1667446262828, "lastModifiedDate": 1667446300769, "collectionEndpoint": "https://178ukvtg3i82dvopdid.us-east-1.aoss.amazonaws.com", "dashboardEndpoint": "https://178ukvtg3i82dvopdid.us-east-1.aoss.amazonaws.com/_dashboards" } ], "collectionErrorDetails":[] }
删除集合
删除集合将删除该集合中的所有数据和索引。删除集合后,您将无法恢复它们。
使用控制台删除集合
-
在 Amazon OpenSearch Service 控制台的 Collections(集合)面板中,选择要删除的集合。
-
选择 Delete(删除),然后确认删除。
要使用 AWS CLI 删除集合,请发送 DeleteCollection 请求:
aws opensearchserverless delete-collection --id
07tjusf2h91cunochc
示例响应
{ "deleteCollectionDetail":{ "id":"07tjusf2h91cunochc", "name":"my-collection", "status":"DELETING" } }