本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
了解 中的目標和速率控制 State Manager 關聯
本主題描述 State Manager 功能,可協助您將關聯部署到數十個或數百個節點,同時控制在排程時間執行關聯的節點數量。State Manager 是 的功能 AWS Systems Manager。
使用目標
當您建立 State Manager 關聯,您可以在 Systems Manager 主控台的目標區段中選擇要設定哪些節點與關聯,如下所示。
如果您使用命令列工具 (例如 AWS Command Line Interface (AWS CLI)) 建立關聯,請指定 targets
參數。目標節點可讓您設定具有關聯的數十個、數百個或數千個節點,而無需指定或選擇個別節點 IDs。
每個受管節點可以作為最多 20 個關聯的目標。
State Manager 包括建立關聯時的下列目標選項。
指定標籤
使用此選項可指定指派給節點的標籤金鑰和 (選用) 標籤值。當您執行請求時,系統會在所有符合指定標籤索引鍵和數值的節點上找出並嘗試建立關聯。如果您指定了多個標籤值,則關聯會將擁有至少其中一個標籤值的任何節點設為目標。系統會在最初建立關聯時執行關聯。在此次初始執行之後,系統會根據您指定的排程執行關聯。
如果您建立新的節點,並將指定的標籤索引鍵和數值指派給該些節點,系統會自動套用關聯,立即執行關聯,然後根據排程執行關聯。這適用於關聯使用命令或政策文件時,如果關聯使用 Automation Runbook,則不適用。如果從節點中刪除指定的標籤,系統將不再在這些節點上執行關聯。
注意
如果您搭配 使用 Automation Runbook State Manager 和 標記限制會阻止您實現特定目標,請考慮搭配 Amazon 使用 Automation Runbook EventBridge。如需詳細資訊,請參閱根據事件 EventBridge執行自動化。如需將 Runbook 與 搭配使用的詳細資訊 State Manager,請參閱使用 State Manager 關聯排程自動化。
最佳實務是在建立使用命令或政策文件的關聯時使用標籤。我們也建議您在建立關聯以執行 Auto Scaling 群組時使用標籤。如需詳細資訊,請參閱執行具有關聯的 Auto Scaling 群組。
注意
記下以下資訊。
-
在主控台中建立關聯時,如果使用標籤指定目標節點,您只能指定一個標籤鍵。如果您想要使用主控台,並且想要使用一個以上的標籤鍵來指定目標節點,請將這些標籤鍵指派給 AWS Resource Groups 群組,然後將相應節點新增至該群組。然後,您可以在建立 時,選擇目標清單中的資源群組選項 State Manager 關聯。
-
您可以使用 AWS CLI指定最多五個標籤鍵。如果您使用 AWS CLI,
create-association
命令中指定的所有標籤索引鍵目前都必須指派給節點。如果不是,State Manager 無法將節點設定為關聯的目標。
手動選擇節點
使用此選項可手動選取您要在其中建立關聯的節點。執行個體窗格會顯示目前 AWS 帳戶 和 中的所有 Systems Manager 受管節點 AWS 區域。您可以根據需要手動選取任意數量的節點。系統會在最初建立關聯時執行關聯。在此次初始執行之後,系統會根據您指定的排程執行關聯。
注意
如果您預期看到的受管節點未列出,請參閱 疑難排解受管節點的可用性 以取得疑難排解秘訣。
選擇資源群組
使用此選項可在 AWS Resource Groups 標籤型或 AWS CloudFormation 堆疊型查詢傳回的所有節點上建立關聯。
下面是有關將資源群組設為關聯的目標的詳細資訊。
-
如果您將新節點新增至群組,系統會自動將節點對應至以資源群組為目標的關聯。系統會在發現變更時將關聯套用至節點。在此次初始執行之後,系統會根據您指定的排程執行關聯。
-
如果您建立以資源群組為目標的關聯,且已為該群組指定
AWS::SSM::ManagedInstance
資源類型,則依設計,該關聯會在混合多雲端環境中的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體和非EC2節點上執行。 -
如果您建立一個以資源群組為目標的關聯,則指派至該資源群組的標籤索引鍵不得超過五個,或指定至任一標籤索引鍵的值不得超過五個。如果這些條件中的任一條件適用於指派至給您資源群組的標籤和索引鍵,則關聯將無法執行,並傳回
InvalidTarget
錯誤。 -
如果您使用標籤建立以資源群組為目標的關聯,則無法選擇標籤值的 (空值) 選項。
-
如果刪除資源群組,該群組中的所有執行個體都不會再執行關聯。做為最佳實務,應刪除以群組為目標的關聯。
-
您最多可將單一資源群組設為關聯的目標。不支援多個或巢狀群組。
-
建立關聯後,State Manager 會定期更新與資源群組中資源相關資訊的關聯。如果您在資源群組加入新資源,則系統何時將關聯套用至新資源的排程將取決於數個因素。您可以在 中判斷關聯的狀態 State Manager Systems Manager 主控台的 頁面。
警告
具有建立關聯許可的 AWS Identity and Access Management (IAM) 使用者、群組或角色,以自動鎖定 Amazon EC2執行個體的資源群組,具有群組中所有執行個體的根層級控制。只有受信任的管理員才能建立關聯。
如需 Resource Groups 的詳細資訊,請參閱 AWS Resource Groups 使用者指南中的什麼是 AWS Resource Groups?。
選擇所有節點
使用此選項以目前 AWS 帳戶 和 中的所有節點為目標 AWS 區域。當您執行請求時,系統會尋找並嘗試在目前 和 AWS 帳戶 中的所有節點上建立關聯 AWS 區域。系統會在最初建立關聯時執行關聯。在此次初始執行之後,系統會根據您指定的排程執行關聯。如果您建立新節點,系統會自動套用關聯,立即執行關聯,然後根據排程執行關聯。
使用速率控制
您可以透過指定並行值和錯誤閾值來控制節點關聯的執行。並行值會指定多少節點可同時執行關聯。錯誤閥值會指定在 Systems 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% 失敗的閾值。