關於 State Manager 關聯中的目標和速率控制 - AWS Systems Manager

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

關於 State Manager 關聯中的目標和速率控制

本主題說明State Manager的功能 AWS Systems Manager,這些功能可協助您將關聯部署到數十或數百個節點,同時控制在排定的時間執行關聯的節點數目。

目標

建立 State Manager 關聯時,您可以在 Systems Manager 主控台的 Targets (目標) 區段中選擇要使用關聯設定哪些節點,如此處所示。

建立 State Manager 關聯時將節點設為目標的不同選項

如果您使用命令列工具 (例如 AWS Command Line Interface (AWS CLI)) 建立關聯,請指定 targets 參數。鎖定目標節點可讓您設定具有關聯性的十、數百或數千個節點,而無需指定或選擇個別節點IDs。

每個受管節點可以作為最多 20 個關聯的目標。

State Manager 在建立關聯時包含下列目標選項。

指定標籤

使用此選項可指定指派給節點的標籤金鑰和 (選用) 標籤值。當您執行請求時,系統會在所有符合指定標籤索引鍵和數值的節點上找出並嘗試建立關聯。如果您指定了多個標籤值,則關聯會將擁有至少其中一個標籤值的任何節點設為目標。系統會在最初建立關聯時執行關聯。在此次初始執行之後,系統會根據您指定的排程執行關聯。

如果您建立新的節點,並將指定的標籤索引鍵和數值指派給該些節點,系統會自動套用關聯,立即執行關聯,然後根據排程執行關聯。這適用於關聯使用命令或政策文件時,如果關聯使用 Automation Runbook,則不適用。如果從節點中刪除指定的標籤,系統將不再在這些節點上執行關聯。

注意

如果您將自動化手冊State Manager與標記限制使您無法實現特定目標,請考慮將自動化手冊與 Amazon 搭配使用。 EventBridge如需詳細資訊,請參閱根據事件 EventBridge執行自動化。如需使用 Runbook 搭配 State Manager 的資訊,請參閱使用 State Manager 關聯排程自動化

最佳實務是在建立使用命令或政策文件的關聯時使用標籤。我們也建議您在建立關聯以執行 Auto Scaling 群組時使用標籤。如需詳細資訊,請參閱執行具有關聯的 Auto Scaling 群組

注意

記下以下資訊。

  • 在主控台中建立關聯時,如果使用標籤指定目標節點,您只能指定一個標籤鍵。如果您想要使用主控台,並且想要使用一個以上的標籤鍵來指定目標節點,請將這些標籤鍵指派給 AWS Resource Groups 群組,然後將相應節點新增至該群組。然後,您可以在建立 State Manager 關聯時,在目標清單中選擇資源群組選項。

  • 您可以使用 AWS CLI指定最多五個標籤鍵。如果您使用 AWS CLI,則指create-association令中指定的所有標籤鍵目前都必須指定給節點。否則,State Manager 無法將相應節點作為關聯的目標。如需將標籤指派給節點的詳細資訊,請參閱 標記 Systems Manager 資源

手動選擇節點

使用此選項可手動選取您要在其中建立關聯的節點。「執行個體」窗格會顯示目前 AWS 帳戶 和中的所有系統管理節點 AWS 區域。您可以根據需要手動選取任意數量的節點。系統會在最初建立關聯時執行關聯。在此次初始執行之後,系統會根據您指定的排程執行關聯。

注意

如果您預期看到的受管節點未列出,請參閱 疑難排解受管節點的可用性 以取得疑難排解秘訣。

選擇資源群組

使用此選項可在 AWS Resource Groups 以標籤或 AWS CloudFormation 堆疊為基礎的查詢傳回的所有節點上建立關聯。

下面是有關將資源群組設為關聯的目標的詳細資訊。

  • 如果您將新節點新增至群組,系統會自動將節點對應至以資源群組為目標的關聯。系統會在發現變更時將關聯套用至節點。在此次初始執行之後,系統會根據您指定的排程執行關聯。

  • 如果您建立以資源群組為目標的關聯,並為該群組指定了AWS::SSM::ManagedInstance資源類型,則依設計,該關聯會會同時在混合式和多雲端環境中的 Amazon 彈性運算雲端 (AmazonEC2) 執行個體和非EC2節點上執行。

  • 如果您建立一個以資源群組為目標的關聯,則指派至該資源群組的標籤索引鍵不得超過五個,或指定至任一標籤索引鍵的值不得超過五個。如果這些條件中的任一條件適用於指派至給您資源群組的標籤和索引鍵,則關聯將無法執行,並傳回 InvalidTarget 錯誤。

  • 如果您使用標記建立以資源群組為目標的關聯,則無法為標籤值選擇 (空值) 選項。

  • 如果刪除資源群組,該群組中的所有執行個體都不會再執行關聯。做為最佳實務,應刪除以群組為目標的關聯。

  • 您最多可將單一資源群組設為關聯的目標。不支援多個或巢狀群組。

  • 建立關聯之後,State Manager 會定期以資源群組中資源的相關資訊來更新關聯。如果您在資源群組加入新資源,則系統何時將關聯套用至新資源的排程將取決於數個因素。您可以在 Systems Manager 主控台的 State Manager 頁面中判斷關聯的狀態。

警告

具有建立以 Amazon EC2 執行個體資源群組為目標之關聯之權限的 AWS Identity and Access Management (IAM) 使用者、群組或角色,自動擁有群組中所有執行個體的根層級控制權。只有受信任的管理員才能建立關聯。

如需 Resource Groups 的詳細資訊,請參閱 AWS Resource Groups 使用者指南中的什麼是 AWS Resource Groups?

選擇所有節點

使用此選項可以鎖定目前 AWS 帳戶 和中的所有節點 AWS 區域。當您執行要求時,系統會尋找並嘗試在目前 AWS 帳戶 和中的所有節點上建立關聯。 AWS 區域系統會在最初建立關聯時執行關聯。在此次初始執行之後,系統會根據您指定的排程執行關聯。如果您建立新節點,系統會自動套用關聯,立即執行關聯,然後根據排程執行關聯。

速率控制

您可以透過指定並行值和錯誤閾值來控制節點關聯的執行。並行值會指定多少節點可同時執行關聯。錯誤閥值會指定在 Systems Manager 傳送命令至每個已設定該關聯的節點停止執行關聯前,允許多少次關聯執行失敗。此命令會讓關聯在下一次排定的執行前都停止執行。並行和錯誤閾值功能統稱為「速率控制」

建立 State Manager 關聯時不同的速率控制選項
並行數量

並行可讓您指定一次只讓特定數量的節點處理關聯,有助於減少對節點造成的影響。您可以指定絕對數量的節點 (例如 20) 或目標節點集的百分比 (例如 10%)。

State Manager並行具有以下約束與限制:

  • 如果您選擇使用目標來建立關聯,但不指定並行值,則State Manager會自動強制執行 50 個節點的並行上限。

  • 正在執行使用並行的關聯時,如有符合目標條件的新節點上線,則若未超過並行值,新的節點會執行關聯。若超過並行值,則節點會在目前的關聯執行間隔期間遭略過。這些節點會在下一次排定的間隔期間執行關聯,同時遵循並行要求。

  • 如果您更新使用並行的關聯,且在更新時有一個或多個節點正在處理該關聯,則允許完成正在執行關聯的所有節點。尚未開始的關聯則會停止。執行中的關聯完成後,所有目標節點會立即再次執行關聯,因為它已更新。當關聯再次執行時,會強制執行並行值。

錯誤閾值

錯誤閥值會指定在 Systems Manager 傳送命令至每個已設定該關聯的節點前,允許多少次關聯執行失敗。此命令會讓關聯在下一次排定的執行前都停止執行。您可以指定絕對數量的錯誤 (例如 10 個) 或目標集的百分比 (例如 10%)。

例如,假設您指定三個錯誤的絕對數量,State Manager會在傳回第四個錯誤時傳送停止命令。如果您指定 0,則State Manager會在第一個錯誤結果傳回後傳送停止命令。

如果您針對 50 個關聯指定錯誤閾值為 10%,則State Manager會在傳回第六個錯誤時傳送停止命令。達到錯誤閾值時已經在執行的關聯允許完成,但其中某些關聯也可能會失敗。為了確保錯誤不會超過針對錯誤閾值指定的數量,請將 Concurrency (並行) 值設為 1,讓關聯一次處理一個。

State Manager錯誤閾值具有以下約束與限制:

  • 錯誤閾值針對目前的間隔強制執行。

  • 每個錯誤的相關資訊 (包括步驟層級詳細資訊) 會記錄在關聯歷程記錄中。

  • 如果您選擇使用目標來建立關聯,但不指定錯誤閾值,則State Manager會自動強制執行 100% 的失敗閾值。