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

Amazon OpenSearch Service 中的服务软件更新

注意

有关每个主要服务软件发布版本中所做的更改和新增功能说明,请参阅发行说明

Amazon OpenSearch Service 将定期发布增加功能或以其他方式改进您的域的服务软件更新。控制台中的 Notifications(通知)面板是查看是否有可用的更新或检查更新状态的最简单方法。每个通知都包含有关服务软件更新的详细信息。如果更新是可选的,通知严重性为 Informational,如果需要,严重性为 High

服务软件更新不同于 OpenSearch 版本升级。有关升级到更高版本的 OpenSearch 的信息,请参阅 升级 Amazon OpenSearch Service 域

域更新注意事项

决定是否更新域时,请考虑以下事项:

  • 在启动服务软件更新时,OpenSearch Service 会在更新开始和完成时发送通知。

  • 如果没有对可用更新采取任何操作,OpenSearch Service 最终会为您更新域。如果更新是可选的,OpenSearch Service 会在您下次做出了会引发蓝/绿部署的更改时更新您的域。如果更新是必需的,则若域尚未更新,OpenSearch Service 会在特定时间范围(通常为两周)后启动蓝/绿部署。您会在更新开始和完成时收到通知。

  • 软件更新使用蓝绿部署,以尽可能减少停机时间。更新可能会临时使集群的专用主节点紧张,因此请确保保持足够的容量来处理相关开销。

通过手动更新域,您可以更快地利用新功能。在选择更新时,OpenSearch Service 将请求放置在队列中,并在有时间时开始更新。通常在几分钟内完成更新,但如果您的系统负载过重,也可能需要几个小时甚至几天。考虑在较短的流量时间内更新您的域,避免长时间的更新。

补丁版本

以“-P”和数字结尾的服务软件版本(例如 R20211203-P4)是补丁版本。补丁可能包括性能改进、次要错误修复以及安全修复或状态改进。补丁发行版不包含新功能或重大更改,并且通常不会对用户产生直接或明显的影响。

请求服务软件更新(控制台)

请求服务软件更新(控制台)
  1. 转至 http://aws.amazon.com,然后选择登录控制台

  2. Analytics 下,选择 Amazon OpenSearch Service

  3. 在导航窗格中的 Domains(域)下,选择域名以打开其设置。

  4. 选择 Actions(操作)Update(更新),然后确认更新。

请求服务软件更新 (Amazon CLI)

发送以下 Amazon CLI 命令以请求服务软件更新:

aws opensearch start-service-software-update --domain-name my-domain

有关更多信息,请参阅 Amazon CLI 命令参考中的 start-service-software-update 和配置 API 参考中的 StartServiceSoftwareUpdate

提示

在请求更新之后,您可能可以在很小的时间范围内将其取消。这个持续时间 PENDING_UPDATE 状态可能会有很大的不同,并取决于 Amazon Web Services 区域 和 OpenSearch Service 正在执行的并发更新的数量。要取消,请使用控制台或 cancel-service-software-update (CancelServiceSoftwareUpdate) 命令。

请求服务软件更新 (SDK)

此示例 Python 脚本使用 Amazon SDK for Python (Boto3) 中的 describe_domainstart_service_software_update 方法来检查域是否符合服务软件更新的条件,如果是,则启动更新。您必须为 domain_name 提供一个值。

import boto3 from botocore.config import Config import time # Build the client using the default credential configuration. # You can use the CLI and run 'aws configure' to set access key, secret # key, and default region. my_config = Config( # Optionally lets you specify a Region other than your default. region_name='us-east-1' ) domain_name = '' # The name of the domain to check and update client = boto3.client('opensearch', config=my_config) def getUpdateStatus(client): """Determines whether the domain is eligible for an update""" response = client.describe_domain( DomainName=domain_name ) sso = response['DomainStatus']['ServiceSoftwareOptions'] if sso['UpdateStatus'] == 'ELIGIBLE': print('Domain [' + domain_name + '] is eligible for a service software update from version ' + sso['CurrentVersion'] + ' to version ' + sso['NewVersion']) updateDomain(client) else: print('Domain is not eligible for an update at this time.') def updateDomain(client): """Starts a service software update for the eligible domain""" response = client.start_service_software_update( DomainName=domain_name ) print('Updating domain [' + domain_name + '] to version ' + response['ServiceSoftwareOptions']['NewVersion'] + '...') waitForUpdate(client) def waitForUpdate(client): """Waits for the domain to finish updating""" response = client.describe_domain( DomainName=domain_name ) status = response['DomainStatus']['ServiceSoftwareOptions']['UpdateStatus'] if status == 'PENDING_UPDATE' or status == 'IN_PROGRESS': time.sleep(30) waitForUpdate(client) elif status == 'COMPLETED': print('Domain [' + domain_name + '] successfully updated to the latest software version') else: print('Domain is not currently being updated.') def main(): getUpdateStatus(client)

监控服务软件更新事件

当服务软件更新可用、必须执行、已启动、已完成或失败时,OpenSearch Service 就会发送通知。您可以在 OpenSearch Service 控制台的通知面板中查看这些通知。它还会将这些通知发送到 Amazon EventBridge。您可以使用 EventBridge 配置在收到事件时发送电子邮件或执行特定操作的规则。有关示例演练的信息,请参阅教程:发送有关可用软件更新的 Amazon SNS 警报

要了解发送到 Amazon EventBridge 的每个服务软件事件的格式,请参阅服务软件更新事件

当域不符合更新资格时

如果您的域处于下表中所示的任何状态,则可能没有资格进行服务软件更新。

状态 描述
域正在处理中

域正在接受配置更改。在操作完成后检查更新资格。

红色集群状态

集群中的一个或多个索引为红色。有关问题排查步骤,请参阅红色集群状态

高错误率

在尝试处理请求时,OpenSearch 集群返回大量 5xx 错误。此问题通常是因为同时读取或写入了过多的请求。请考虑减少流向集群的流量或扩展您的域。

裂脑

脑裂 意味着您的 OpenSearch 集群有多个主节点并且已拆分成两个绝不会自行重新联接的集群。您可以通过使用推荐数量的专用主节点避免裂脑。为了帮助您从裂脑恢复,请联系 Amazon Web Services Support

Amazon Cognito 集成问题

您的域使用OpenSearch 仪表板身份验证,OpenSearch Service 找不到一个或多个 Amazon Cognito 资源。如果缺少 Amazon Cognito 用户池,则通常会出现此问题。要更正此问题,请重新创建缺少的资源并将 OpenSearch Service 域配置为使用它。

其他 OpenSearch Service 服务问题

OpenSearch Service 本身的问题可能会导致您的域显示没有更新资格。如果上述情况都不适用于您的域且该问题持续超过一天,请联系 Amazon Web Services Support