本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon OpenSearch Service 中的服務軟體更新
注意
如需每個主要 (非修補程式) 服務軟體更新中所做的變更和新增的說明,請參閱版本備註。
Amazon OpenSearch Service 會定期發行服務軟體更新以新增功能或強化您的網域。主控台中的 Notifications (通知) 面板是查看更新是否可用或檢查更新狀態的最簡單方法。每個通知都包含有關服務軟體更新的詳細資訊。所有服務軟體更新都使用藍/綠部署,將停機時間降至最低。
服務軟體更新與 OpenSearch Service 版本升級不同。如需有關升級至較新版本的 OpenSearch Service 的資訊,請參閱 升級 Amazon OpenSearch Service 網域。
OpenSearch Service 會要求您在所需的服務軟體更新可供使用的 30 天內套用。這些更新對於維護安全合規至關重要。
如果您未在 30 天內套用必要的更新,您將在 30 天內每 15 天收到提醒通知。在這段期間不合規的情況下,您的網域將會隔離,並產生下列效果:
-
已移除對您網域的所有網路存取
-
網域狀態變更為隔離
-
在您套用必要的更新之前,網域仍然無法使用
在隔離期間,您將繼續每 15 天收到提醒通知,為期 60 天。如果您在此期間未套用必要的更新,您的 OpenSearch Service 網域和所有相關資料都會永久刪除。如需詳細資訊,請參閱疑難排解驗證錯誤。
選用與必要的更新
OpenSearch Service 有兩種廣泛的服務軟體更新類別:
選用更新
選用的服務軟體更新通常包括增強功能和對新功能或功能的支援。您的網域不會強制執行選用更新,也沒有安裝它們的硬性截止日期。更新可用性會透過電子郵件和主控台通知進行通訊。您可以選擇立即套用更新,或將其重新排程為更適當的日期和時間。您也可以在網域的離峰時段進行排程。大多數軟體更新都是選用的。
無論您是否排程更新,如果您在網域上進行造成藍/綠部署的變更,OpenSearch Service 都會為您自動更新服務軟體。
您可以將網域設定為在離峰時間自動套用選用更新。開啟此選項時,OpenSearch Service 會在選用更新可用後等待至少 13 天,然後在七天後排程更新。排定更新時,您會收到主控台通知,您可以選擇在稍後日期重新排定更新。
若要開啟自動軟體更新,請選取建立或更新網域時啟用自動軟體更新。若要使用 設定相同的設定 AWS CLI,請在建立或更新網域true時將 --software-update-options設定為 。
必要的更新
必要的服務軟體更新通常包括重要的安全性修正或其他強制性更新,以確保網域的持續完整性和功能。所需更新的範例包括 Log4j 常見漏洞與暴露 (CVEs) 和執行個體中繼資料服務第 2 版 (IMDSv2) 的強制執行。一年中的強制性更新數量通常少於三個。
OpenSearch Service 會自動排程這些更新,並在排定的更新七天前透過電子郵件和主控台通知通知您。您可以選擇立即套用更新,或在允許的時間範圍內重新排程更適當的日期和時間。您也可以在網域的下一個離峰時段進行排程。如果您未對必要的更新採取任何動作,且未進行任何導致藍/綠部署的網域變更,OpenSearch Service 可以在網域的離峰時段內超過指定截止日期 (通常為自可用性起 14 天) 的任何時間啟動更新。
無論何時排定更新,如果您變更網域而導致藍/綠部署,OpenSearch Service 會自動為您更新網域。
修補程式更新
以 "-P" 和數字結尾的服務軟體版本,例如 R20211203-P4,是修補程式版本。修補程式可能包括效能改進、小錯誤修復、安全修復或狀態改善。修補程式版本不包含新功能或重大變更,而且通常不會對使用者造成直接或明顯的影響。服務軟體通知會告訴您修補程式版本是選用還是強制性。
考量事項
在決定是否要更新網域時,請考慮下列各項:
-
手動更新網域可讓您更快速地利用新功能。當您選擇 Update (更新) 時,OpenSearch Service 會將請求置於佇列中,並在有時間時開始更新。
-
初始化服務軟體更新時,OpenSearch Service 會在更新開始和完成時傳送通知。
-
軟體更新使用藍/綠部署盡量減少停機時間。更新可能會暫時損耗叢集的專用主節點,因此請務必維持足夠的容量來處理相關的額外負荷。
-
更新通常在幾分鐘內完成,但如果您的系統負載過重,也可能需要數小時甚至數天的時間。請考慮在設定的離峰時段期間更新您的網域,以避免長時間更新。
啟動服務軟體更新
您可以透過 OpenSearch Service 主控台、 AWS CLI或其中一個 SDKs 請求服務軟體更新。
請求服務軟體更新
-
開啟位於 https://https://console.aws.amazon.com/aos/home
的 Amazon OpenSearch Service 主控台。 -
選取網域名稱以開啟其組態。
-
選擇動作、更新並選取下列其中一個選項:
-
立即套用更新 - 如果有可用的容量,立即排定在目前小時內執行的動作。如果無法使用容量,我們會提供其他可用的時段供您選擇。
-
在離峰時段排程 – 只有在網域啟用離峰時段時才可用。排程在網域設定的離峰時段期間進行更新。無法保證會在下一個立即時段進行更新。視容量而定,它可能會在後續幾天內發生。如需詳細資訊,請參閱在離峰時段期間排程軟體更新。
-
排定特定日期和時間 – 排定在特定日期和時間進行更新。如果您指定的時間因容量原因而無法使用,您可以選取不同的時段。
如果您將更新排程在稍後的日期 (在網域的離峰時段內或之外),您可以隨時重新排程更新。如需說明,請參閱重新排程動作。
-
-
選擇確認。
傳送 start-service-software-update AWS CLI 請求以啟動服務軟體更新。此範例會立即將更新新增至佇列:
aws opensearch start-service-software-update \ --domain-namemy-domain\ --schedule-at "NOW"
回應:
{ "ServiceSoftwareOptions": { "CurrentVersion": "R20220928-P1", "NewVersion": "R20220928-P2", "UpdateAvailable": true, "Cancellable": true, "UpdateStatus": "PENDING_UPDATE", "Description": "", "AutomatedUpdateDate": "1969-12-31T16:00:00-08:00", "OptionalDeployment": true } }
提示
請求更新後,您有很短的時間可以取消更新。此PENDING_UPDATE狀態的持續時間可能很大,取決於您的 AWS 區域 和 OpenSearch Service 正在執行的並行更新數量。若要取消更新,請使用 主控台或 cancel-service-software-update AWS CLI 命令。
如果請求因 而失敗BaseException,表示您指定的時間因容量原因而無法使用,您必須指定不同的時間。OpenSearch Service 在回應中提供替代的可用插槽建議。
此範例 Python 指令碼使用來自 的 describe_domaindomain_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)
在離峰時段期間排程軟體更新
在 2023 年 2 月 16 日之後建立的每個 OpenSearch Service 網域,其每日 10 小時時段介於當地時間下午 10:00 到上午 8:00 之間,我們認為是離峰時段。OpenSearch Service 使用此時段來排程網域的服務軟體更新。離峰更新有助於在較高的流量期間,將叢集專用主節點上的壓力降至最低。未經您的同意,OpenSearch Service 無法在此 10 小時時段之外啟動更新。
-
對於選用更新,OpenSearch Service 會通知您更新的可用性,並提示您在即將到來的離峰時段排程更新。
-
對於必要的更新,OpenSearch Service 會在即將到來的離峰時段自動排程更新,並提前三天通知您。您可以重新排程更新 (適用於離峰時段內外),但僅限於完成更新所需的時間範圍內。
對於每個網域,您可以選擇以自訂時間覆寫預設的下午 10:00 開始時間。如需說明,請參閱設定自訂離峰時段。
在即將來臨的離峰時段中排程更新
-
開啟位於 https://https://console.aws.amazon.com/aos/home
的 Amazon OpenSearch Service 主控台。 -
選取網域名稱以開啟其組態。
-
選擇動作、更新。
-
選取在離峰時段排程。
-
選擇確認。
您可以在離峰時段索引標籤上檢視排程動作,並隨時重新排程。請參閱 檢視排程動作。
若要在即將來臨的離峰時段使用 排程更新 AWS CLI,請傳送 StartServiceSoftwareUpdate 請求OFF_PEAK_WINDOW,並為 --schedule-at 參數指定 :
aws opensearch start-service-software-update \ --domain-namemy-domain\ --schedule-at "OFF_PEAK_WINDOW"
監控服務軟體更新
OpenSearch Service 會在服務軟體更新可用、必要、已啟動、已完成或失敗時傳送通知。您可以在 OpenSearch Service 主控台的通知面板中檢視通知。如果更新為可選,則通知嚴重性為 Informational;如果必須更新,則為 High。
OpenSearch Service 也會將服務軟體事件傳送至 Amazon EventBridge。您可以使用 EventBridge 設定傳送電子郵件的規則,或在接收事件時執行特定動作。如需逐步解說範例,請參閱 教學課程:可用軟體更新的 Amazon SNS 提醒。
若要查看傳送至 Amazon EventBridge 的每個服務軟體事件的格式,請參閱 服務軟體更新事件。
網域不符合更新條件時,
如果您的網域處於以下任何一種狀態,則不符合服務軟體更新的資格:
| State | Description |
|---|---|
| 處理中的網域 |
組態變更中的網域 請於操作完成後檢查更新資格。 |
| 紅色叢集狀態 |
叢集中一或多個索引是紅色的。如需疑難排解步驟,請參閱紅色叢集狀態。 |
| 高錯誤率 |
OpenSearch 叢集在嘗試處理請求時,傳回大量的 5xx 錯誤。此問題通常是因為太多同時讀寫請求造成。請考慮降低叢集流量或擴展網域。 |
| 分割大腦 |
分割大腦表示 OpenSearch 叢集有不只一個主節點,且已分為兩個叢集,這兩個叢集將不會自行重新連結。您也可以使用建議數量的專用主節點來避免大腦分割。如需從大腦分割中恢復的協助,請聯絡 支援 |
| Amazon Cognito 整合問題 |
您的網域使用 OpenSearch Dashboards 身分驗證,而 OpenSearch Service 找不到一個或多個 Amazon Cognito 資源。如果缺少 Amazon Cognito 使用者集區,通常就會發生此問題。若要修正問題,請重新建立缺失的資源並設定由 OpenSearch Service 網域使用該項資源。 |
| 其他 服務問題 |
OpenSearch Service 本身的問題可能會使您的網域顯示為不符合更新資格。如果上述情況都不適用於您的網域且問題持續超過一天,請聯絡 支援 |
復原服務軟體更新
Amazon OpenSearch Service 支援轉返服務軟體更新。您可以使用 OpenSearch Service 主控台、 AWS CLI或其中一個 AWS SDKs 來啟動轉返。軟體更新會使用藍/綠部署轉返。
注意
只有 2026 年 4 月 24 日當天或之後套用的服務軟體更新才支援轉返。引擎版本升級無法復原。
轉返資格和考量事項
您的網域必須符合下列所有條件,才能使用轉返:
-
網域作用中 – 網域必須處於
Active狀態。當組態變更、軟體更新或其他藍/綠部署正在進行時,無法使用轉返。 -
在復原時段內 – 軟體更新必須在允許的復原期間內套用。請參閱 回復時段。
-
更新後沒有組態變更 – 如果您在套用軟體更新後對網域進行組態變更,則會封鎖轉返。組態變更可能會影響與先前軟體版本不相容的網域設定。例如,變更執行個體類型、啟用複本,或在更新後調整儲存體設定會封鎖復原。
-
服務不會自動套用更新 – 如果您在 30 天的可用性時段內未對強制性更新採取動作,且 OpenSearch Service 自動套用更新,則無法復原該更新。
-
更新不是引擎版本升級 – 引擎版本變更 (例如,從 OpenSearch 1.3 升級到 OpenSearch 2.11) 是不可復原的。僅支援服務軟體版本轉返。
-
存在先前的軟體版本 – 回復僅適用於此功能正式推出 (GA) 之後套用的軟體更新。由於 GA 沒有要復原的先前版本,因此尚未進行軟體更新的網域。
-
每次更新只允許一個轉返 – 轉返完成後,網域會被視為處於轉返狀態。在成功套用新的軟體更新之前,您無法再次轉返。
-
軟體更新已明確啟動 – 只有當軟體更新由您明確啟動或由 OpenSearch Service 自動排程為強制性或選擇性更新的一部分時,才能使用轉返。下列情況時,無法使用轉返:
-
軟體更新是在由組態變更觸發的藍/綠部署期間套用。這包括啟用
UseLatestServiceSoftwareForBlueGreen設定的情況,這會將最新的軟體更新與組態變更綁定在一起。您可以選擇停用此設定。 -
在網域的服務啟動維護操作期間套用更新,例如基礎設施復原、自動修復或 OpenSearch Service 執行的其他內部操作,以維護網域的運作狀態和可用性。
-
回復時段
復原視窗取決於套用的軟體更新類型。
| 更新類型 | 轉返視窗 | 備註 |
|---|---|---|
| 選用 | 從套用更新之日起 15 天 |
無論您手動套用更新、排程更新,還是在離峰時間自動套用更新,都適用。 |
| 強制性 | 從套用更新之日起 15 天 |
只有在您在 30 天的可用性時段內自行套用更新時,才能使用。如果服務在截止日期後自動套用更新,則無法回復。 |
回復時段過期後,自助式回復不再可用。支援
如何請求轉返
您可以使用 RollbackServiceSoftwareUpdate API 請求轉返。
請求
POST /2021-01-01/opensearch/serviceSoftwareUpdate/rollback
請求內文:
{ "DomainName": "your-domain-name" }
回應
API 會在所有非錯誤情況下傳回 HTTP 200 回應。回應內文中的 RollbackAvailable 欄位指出是否啟動轉返。
{ "RollbackServiceSoftwareOptions": { "CurrentVersion": "string", "NewVersion": "string", "RollbackAvailable": boolean, "Description": "string" } }
回應欄位:
| 欄位 | Type | Description |
|---|---|---|
CurrentVersion |
String |
目前在網域上執行的軟體版本。 |
NewVersion |
String |
將復原網域的軟體版本。如果無法使用轉返,則傳回 null。 |
RollbackAvailable |
Boolean |
|
Description |
String |
描述結果或原因復原的人類可讀取訊息無法使用。 |
錯誤回應
| 錯誤 | Description |
|---|---|
ResourceNotFoundException |
指定的網域不存在。 |
ValidationException |
網域未處於作用中狀態。等待任何進行中的變更完成,然後再重試。 |
InternalException |
服務發生內部錯誤。重試 請求。 |
DisabledOperationException |
此網域不支援復原操作。 |
回應訊息
下表說明 RollbackServiceSoftwareUpdate API 傳回的可能回應訊息。
| 案例 | Description |
|---|---|
| 成功 |
已成功啟動轉返。網域將從 |
| 功能未啟用 |
不提供轉返。如需協助支援 |
| 舊版軟體無法使用 |
沒有可用於轉返的先前軟體版本。如需協助支援 |
| 先前的軟體與目前的軟體相同 |
不提供轉返。沒有可用於轉返的先前軟體版本。如需協助支援 |
| 網域已復原 |
網域已處於復原狀態。 |
| 叢集位於固定軟體版本 |
軟體覆寫目前會套用至網域。 |
| 在時間範圍之外 |
不提供轉返。15 天復原時段已過期。如需協助支援 |
| 自動套用的強制性服務更新 |
不提供轉返。目前版本已透過強制性服務更新套用。如需協助支援 |
| 引擎版本升級 |
不提供轉返。引擎版本升級無法復原。如需協助支援 |
| 組態在更新後變更 |
不提供轉返。自上次軟體更新後,叢集組態已變更。如需協助支援 |
回應範例:
{ "RollbackServiceSoftwareOptions": { "CurrentVersion": "OpenSearch_2_11_R20240115", "NewVersion": "OpenSearch_2_11_R20231023", "RollbackAvailable": true, "Description": "Rollback initiated successfully. The domain will be rolled back from OpenSearch_2_11_R20240115 to OpenSearch_2_11_R20231023." } }
當無法使用轉返時, 會RollbackAvailable傳回 ,false而 Description 欄位包含上表中的原因。