本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
了解 State Manager 的運作方式
State Manager (AWS Systems Manager 中的工具) 是一種安全且可擴展的服務,能夠以自動化程序使您的混合多雲端基礎設施中的受管節點維持在您所定義的狀態。
這是 State Manager 運作方式:
- 1. 確定您想要套用至 AWS 資源的狀態。
-
您是否希望保證使用特定應用程式 (例如防毒或反惡意軟體) 來設定受管節點? 您是否希望能夠將更新 SSM Agent 或其他 AWS 套件 (例如
AWSPVDriver) 的程序自動化? 您是否需要保證關閉或開啟特定的連接埠? 若要開始使用 State Manager,請確定您想要套用至 AWS 資源的狀態。您想要套用的狀態會決定您使用哪個 SSM 文件來建立 State Manager 關聯。State Manager 關聯是您指派給 AWS 資源的組態。該組態會定義您想在資源上維持的狀態。例如,關聯可以指定必須在受管節點上安裝和執行防毒軟體,或者必須關閉特定連接埠。
關聯會指定套用組態並以關聯為目標的排程。例如,防毒軟體的關聯可能在 AWS 帳戶 的所有受管節點上一天執行一次。如果節點上未安裝軟體,則關聯會指示 State Manager 來安裝。如果已安裝軟體,但並未執行服務,則關聯可能會指示 State Manager 來啟動服務。
- 2. 確定預先設定的 SSM 文件是否可以協助您在 AWS 資源建立所需狀態。
-
Systems Manager 包含數十個預先設定的 SSM 文件,可讓您用來建立關聯。預先設定的文件已準備好可執行常見任務,例如安裝應用程式、設定 Amazon CloudWatch、執行 AWS Systems Manager 自動化、執行 PowerShell 和 Shell 指令碼,以及將受管節點加入 Active Directory 的目錄服務網域。
在 Systems Manager 主控台
中可檢視所有 SSM 文件。選擇文件名稱來進一步了解各項文件。以下是兩個範例: AWS-ConfigureAWSPackage和 AWS-InstallApplication。 - 3. 建立關聯。
-
您可以使用 Systems Manager 主控台、AWS Command Line Interface(AWS CLI)、AWS Tools for Windows PowerShell (Tools for Windows PowerShell) 或 Systems Manager API 來建立關聯。在建立關聯時,指定下列資訊:
-
關聯名稱。
-
SSM 文件的參數 (例如,應用程式安裝路徑或在節點上執行的指令碼)。
-
關聯的目標。您可以透過指定標籤,選擇個別節點 ID,或是在 AWS Resource Groups 中選擇群組等方式,將受管執行個體設為目標。您也可以在目前的 AWS 區域 和 AWS 帳戶 中將所有受管節點設為目標。如果您的目標包含超過 1,000 個節點,系統會使用每小時限流機制。這表示您可能會在狀態彙總計數中看到不準確的資料,因為彙總程序每小時執行一次,而且只有在節點的執行狀態變更時才會執行。
-
狀態套用時間或頻率的排程。您可以指定 Cron 或 Rate 運算式。如需使用 Cron 和 Rate 運算式建立排程的詳細資訊,請參閱關聯的 Cron 與 Rate 運算式。
注意
State Manager 目前不支援在 Cron 運算式中為關聯指定月份。
當您執行命令來建立關聯時,Systems Manager 會將您指定的資訊 (排程、目標、SSM 文件和參數) 繫結至目標資源。關聯狀態一開始會顯示為「Pending」(待定),同時系統正在嘗試連接所有目標並立即套用關聯中指定的狀態。
注意
如果您新建的關聯已排定要執行,但同時仍在執行先前的關聯,則先前的關聯會逾時,並執行新的關聯。
Systems Manager 會報告在資源上建立關聯的請求狀態。您可以透過主控台或 (對於受管節點) 使用 DescribeInstanceAssociationsStatus API 操作來檢視狀態詳細資訊。如果選擇在建立關聯時將命令的輸出寫入 Amazon Simple Storage Service (Amazon S3),您也可以在指定的 Amazon S3 儲存貯體中檢視輸出。
如需更多詳細資訊,請參閱 在 Systems Manager 中使用關聯。
注意
在關聯執行期間由 SSM 文件啟動的 API 操作不會記錄在 AWS CloudTrail 中。
-
- 4. 監控與更新。
-
在您建立關聯後,State Manager 會根據您在關聯中定義的排程重新套用組態。在主控台的 State Manager 頁面
中,或在建立關聯時直接呼叫 Systems Manager 產生的關聯 ID,可檢視關聯狀態。如需更多詳細資訊,請參閱 檢視關聯歷史記錄。您可以視需要更新關聯文件並重新套用。您也可以建立多個版本的關聯。如需更多詳細資訊,請參閱 編輯和建立關聯的新版本。
了解何時將關聯套用至資源
建立關聯時,您需要指定 SSM 文件,此文件會定義組態、目標資源清單,以及套用組態的排程。根據預設,State Manager 會在您建立關聯時執行關聯,然後依照排程執行。State Manager 也會嘗試在以下情況下執行關聯:
-
關聯編輯 – State Manager 在使用者編輯後執行關聯,並儲存對以下任何關聯欄位的變更:
DOCUMENT_VERSION、PARAMETERS、SCHEDULE_EXPRESSION、OUTPUT_S3_LOCATION。 -
文件編輯 – State Manager 在使用者編輯後執行關聯,並儲存對定義關聯組態狀態的 SSM 文件的變更。具體而言,在對文件進行以下編輯後,關聯便會執行:
-
使用者指定新的
$DEFAULT文件版本,而關聯是使用$DEFAULT版本所建立。 -
使用者更新文件,而關聯是使用
$LATEST版本所建立。 -
使用者會刪除建立關聯時所指定的文件。
-
-
手動啟動 – 使用者從 Systems Manager 主控台或以程式設計方式啟動時,State Manager 會執行關聯。
-
目標變更:State Manager會在目標節點上發生下列任何活動之後執行關聯:
-
受管節點首次上線。
-
缺少排程的關聯執行後,受管節點便會上線。
-
受管節點會在停止超過 30 天後上線。
注意
State Manager 不會監控跨 AWS 帳戶關聯中使用的文件或套件。如果您在一個帳戶中更新文件或套件,更新不會導致關聯在第二個帳戶中執行。您必須在第二個帳戶中手動執行關聯。
防止關聯在目標變更時執行
在某些情況下,您可能不希望受管節點組成的目標變更時,關聯自動執行,而是希望關聯只根據其指定的排程執行。
注意
執行 Automation 執行手冊會產生費用。如果與 Automation 執行手冊的關聯以您帳戶中的所有執行個體為目標,而且您定期啟動大量執行個體,則在每個執行個體啟動時,會在執行個體上執行執行手冊。這可能會導致 Automation 費用增加。
若要防止關聯在關聯的目標變更時執行,請選取只在下一個指定的 Cron 間隔套用關聯核取方塊。此核取方塊位於建立關聯和編輯關聯頁面的指定排程區域中。
此選項適用於包含 Automation 執行手冊或 SSM 文件的關聯。
-
關於透過 Automation 執行手冊的目標更新
為了在偵測到新目標節點時套用透過 Automation 執行手冊建立的關聯,必須滿足以下條件:
-
關聯必須由 Quick Setup 組態所建立。Quick Setup 是 AWS Systems Manager 中的工具。目前不支援其他程序建立的關聯。
-
Automation 執行手冊必須明確以資源類型
AWS::EC2::Instance或AWS::SSM::ManagedInstance為目標。 -
此關聯必須同時指定參數和目標。
在主控台中,當您選擇速率控制執行時,便會顯示參數和目標欄位。
使用 CreateAssociation、CreateAssociationBatch 或 UpdateAssociation API 動作時,您可以使用
AutomationTargetParameterName和Targets輸入來指定這些值。在每個 API 動作中,您也可以將ApplyOnlyAtCronInterval參數設定為true,防止關聯在每次目標變更時執行。如需有關使用主控台控制關聯執行時間的資訊,包括避免意外產生高額自動化執行費用的詳細資訊,請參閱了解何時將關聯套用至資源。