關於 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 參數。將執行個體設為目標允許您利用關聯來設定數十個、數百個或數千個執行個體,而不用指定或選擇個別執行個體 ID。

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

指定執行個體標籤

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

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

建立使用命令或政策文件的關聯時,使用執行個體標籤是最佳實務;如果關聯使用 Automation Runbook,則不適用。如果從執行個體中刪除指定的標籤,系統將不再在這些執行個體上執行關聯。

建立關聯以執行 Auto Scaling 群組時,最佳實務是使用執行個體標籤。如需詳細資訊,請參閱 執行具有關聯的 Auto Scaling 群組

注意

使用 Amazon Elastic Compute Cloud (Amazon EC2) 標籤時,您可以在主控台中使用最多一個標籤金鑰。如果您要使用多個標籤金鑰將執行個體設為目標,請使用資源群組選項。您也可以使用 AWS CLI 指定多個標籤金鑰。在這種情況下,需要所有標籤金鑰,以便將執行個體設為目標。

如需有關為您的執行個體指派標籤的資訊,請參閱 Amazon EC2 使用者指南中的標記您的 Amazon EC2 資源

手動選擇執行個體

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

注意

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

選擇資源群組

使用此選項可在 AWS Resource Groups 標籤式或 AWS CloudFormation 堆疊式查詢傳回的所有執行個體上建立關聯。

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

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

  • 如果您建立一個以資源群組為目標的關聯,且為該群組指定 AWS::SSM::ManagedInstance 資源類型,則關聯會在混合機器上 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體 (受管執行個體 ID 前綴為 "mi-" 或 "i-" 的機器) 上執行。這是設計本身所致。

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

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

  • 建立關聯之後,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% 的失敗閾值。