使用 Amazon OpenSearch 无服务器的数据生命周期策略 - 亚马逊 OpenSearch 服务
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用 Amazon OpenSearch 无服务器的数据生命周期策略

Amazon OpenSearch Serverless 中的数据生命周期策略定义了 S OpenSearch erverless 在时间序列集合中保留数据的时间。例如,您可以将策略设置为在 OpenSearch Serverless 删除日志数据之前,将其保留 30 天。

您可以为中每个时间序列集合中的每个索引配置单独策略 Amazon Web Services 账户。 OpenSearch Serverless 将文档至少保留您在策略中指定的期限。然后,它会自动尽最大程度将其删除,通常在 48 小时内或保留期的 10% 时间范围内(以较长者为准)。

只有时间序列集合支持数据生命周期策略。搜索和矢量搜索集合不是。

数据生命周期策略

在数据生命周期策略中,您可以指定一系列规则。数据生命周期策略允许您管理与符合这些规则的索引或集合相关的数据的保留期。这些规则定义了索引或索引组中数据的保留期。每条规则都由资源类型 (index)、保留期和保留期适用的资源(索引)列表组成。

您可以使用以下格式之一定义保留期:

  • "MinIndexRetention": "24h"— OpenSearch 无服务器以小时或天为单位保留指定时间段的索引数据。您可以将此时间段设置为从 24h3650d

  • "NoMinIndexRetention": true— OpenSearch 无服务器无限期保留索引数据。

在以下示例策略中,第一条规则指定集合 marketing 内所有索引的保留期为 15 天。第二条规则规定,finance 集合中以 log 开头的所有索引名称均未设置保留期,并且将无限期保留。

{ "lifeCyclePolicyDetail": { "type": "retention", "name": "my-policy", "policyVersion": "MTY4ODI0NTM2OTk1N18x", "policy": { "Rules": [ { "ResourceType":"index", "Resource":[ "index/marketing/*" ], "MinIndexRetention": "15d" }, { "ResourceType":"index", "Resource":[ "index/finance/log*" ], "NoMinIndexRetention": true } ] }, "createdDate": 1688245369957, "lastModifiedDate": 1688245369957 } }

在以下示例策略规则中, OpenSearch 无服务器无限期保留账户内所有集合的所有索引中的数据。

{ "Rules": [ { "ResourceType": "index", "Resource": [ "index/*/*" ] } ], "NoMinIndexRetention": true }

所需的权限

OpenSearch 无服务器的生命周期策略使用以下 Amazon Identity and Access Management (IAM) 权限。您可以指定 IAM 条件,以限制用户使用与具体集合和索引相关的生命周期策略。

  • aoss:CreateLifecyclePolicy —创建生命周期策略。

  • aoss:ListLifecyclePolicies — 列出当前账户中的所有数据生命周期策略。

  • aoss:BatchGetLifecyclePolicy — 查看与账户或策略名称相关的数据生命周期策略。

  • aoss:BatchGetEffectiveLifecyclePolicy — 查看给定资源(index 是唯一受支持的资源)的数据生命周期策略。

  • aoss:UpdateLifecyclePolicy — 修改给定的数据生命周期策略,并更改其保留设置或资源。

  • aoss:DeleteLifecyclePolicy — 删除数据生命周期策略。

以下基于身份的访问策略允许用户查看所有数据生命周期策略,并使用资源模式 collection/application-logs 更新策略:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "aoss:UpdateLifecyclePolicy" ], "Resource": "*", "Condition": { "StringEquals": { "aoss:collection": "application-logs" } } }, { "Effect": "Allow", "Action": [ "aoss:ListLifecyclePolicies", "aoss:BatchGetLifecyclePolicy" ], "Resource": "*" } ] }

策略优先顺序

在某些情况下,数据生命周期策略规则可能会在策略内部或策略之间重叠。发生这种情况时,具有更具体的资源名称或模式的索引规则,将覆盖具有更通用的资源名称或模式的任何索引(对于两个规则通用)规则。

例如,在以下策略中,两个规则都适用于索引 index/sales/logstash。在这种情况下,第二条规则优先,因为 index/sales/log*index/sales/logstash 匹配的时间最长。因此, OpenSearch 无服务器未设置索引保留期。

{ "Rules":[ { "ResourceType":"index", "Resource":[ "index/sales/*", ], "MinIndexRetention": "15d" }, { "ResourceType":"index", "Resource":[ "index/sales/log*", ], "NoMinIndexRetention": true } ] }

策略语法

提供一条或多条规则。这些规则定义了 OpenSearch 无服务器索引的数据生命周期设置。

每个规则包含以下元素。您可以在每条规则中提供 MinIndexRetentionNoMinIndexRetention,但不能两者兼而有之。

元素 描述
资源类型 该规则适用于的资源类型。数据生命周期策略唯一受支持的选项是 index
资源 资源名称和/或模式的列表。模式由前缀和通配符 (*) 组成,允许将关联权限应用于多个资源。例如 index/<collection-name|pattern>/<index-name|pattern>
MinIndexRetention 索引中文档的最短保留期限,以天 (d) 或小时 (h) 为单位。时间下限是 24h,上限是 3650d
NoMinIndexRetention 如果是true, OpenSearch 无服务器会无限期保留文档。

在以下示例中,第一条规则适用于该autoparts-inventory模式 (index/autoparts-inventory/*) 下的所有索引,并要求在执行任何操作(例如删除或存档)之前,数据必须至少保留 20 天。

第二条规则针对与auto*/gear模式 (index/auto*/gear) 匹配的索引,将最小保留期设置为 24 小时。

第三条规则专门适用于tires索引,没有最低保留期限,这意味着可以立即删除或存档该索引中的数据,也可以根据其他标准进行删除。这些规则有助于管理保留时间各不相同或没有保留限制的索引数据的保留。

{ "Rules": [ { "ResourceType": "index", "Resource": [ "index/autoparts-inventory/*" ], "MinIndexRetention": "20d" }, { "ResourceType": "index", "Resource": [ "index/auto*/gear" ], "MinIndexRetention": "24h" }, { "ResourceType": "index", "Resource": [ "index/autoparts-inventory/tires" ], "NoMinIndexRetention": true } ] }

创建数据生命周期策略

要创建数据生命周期策略,您需要根据指定标准定义管理数据的保留和删除的规则。

创建数据生命周期策略
  1. https://console.aws.amazon.com/aos/家中登录亚马逊 OpenSearch 服务控制台。

  2. 在左侧的导航窗格中,选择数据生命周期策略

  3. 选择创建数据生命周期策略

  4. 输入策略的描述性名称。

  5. 对于数据生命周期,选择添加并选择策略的集合和索引。

    首先选择索引所属的集合。然后,要么从列表中选择索引,要么输入索引模式。要选择所有收藏作为来源,请输入星号 (*)。

  6. 对于数据保留,您可以选择无限期保留数据,也可以取消选择 “无限制”(从不删除)并指定一个时间段,在此时间段之后, OpenSearch Serverless 会自动从 Amazon S3 中删除数据。

  7. 选择 “保存”,然后选择 “创建”。

要使用创建数据生命周期策略 Amazon CLI,请使用带有以下选项的create-lifecycle-policy命令:

  • --name— 策略的名称。

  • --type— 策略的类型。目前,唯一可用的值是retention

  • --policy— 数据生命周期策略。该参数同时接受内联策略和 .json 文件。必须将内联策略编码为 JSON 转义字符串。要在文件中提供策略,请使用格式--policy file://my-policy.json

aws opensearchserverless create-lifecycle-policy \ --name my-policy \ --type retention \ --policy "{\"Rules\":[{\"ResourceType\":\"index\",\"Resource\":[\"index/autoparts-inventory/*\"],\"MinIndexRetention\": \"81d\"},{\"ResourceType\":\"index\",\"Resource\":[\"index/sales/orders*\"],\"NoMinIndexRetention\":true}]}"

更新数据生命周期策略

要更新数据生命周期策略,您可以修改现有规则以反映数据保留或删除要求的变化。这使您可以随着数据管理需求的变化调整策略。

在更新策略与 OpenSearch Serverless 开始强制执行新保留期限之间,可能会有几分钟的延迟。

更新数据生命周期策略
  1. https://console.aws.amazon.com/aos/家中登录亚马逊 OpenSearch 服务控制台。

  2. 在左侧的导航窗格中,选择数据生命周期策略

  3. 选择要更新的数据生命周期策略,然后选择编辑

  4. 使用可视化编辑器或 JSON 编辑器修改策略。

  5. 选择保存

要使用更新数据生命周期策略 Amazon CLI,请使用update-lifecycle-policy命令。

您必须在请求中包括该--policy-version参数。您可以使用 list-lifecycle-policiesbatch-get-lifecycle-policy 命令检索策略版本。我们建议加入最新的策略版本,以防止意外覆盖他人所做的更改。

以下请求将使用新策略 JSON 文档更新数据生命周期策略。

aws opensearchserverless update-lifecycle-policy \ --name my-policy \ --type retention \ --policy-version MTY2MzY5MTY1MDA3Ml8x \ --policy file://my-new-policy.json

删除数据生命周期策略

删除数据生命周期策略后, OpenSearch Serverless 将不再在任何匹配的索引上强制执行该策略。

删除数据生命周期策略
  1. https://console.aws.amazon.com/aos/家中登录亚马逊 OpenSearch 服务控制台。

  2. 在左侧的导航窗格中,选择数据生命周期策略

  3. 选择要删除的策略,然后选择 Delete(删除)并确认删除。

要使用删除数据生命周期策略 Amazon CLI,请使用delete-lifecycle-policy命令。

aws opensearchserverless delete-lifecycle-policy \ --name my-policy \ --type retention