本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
了解 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 帳戶。
-
狀態套用時間或頻率的排程。您可以指定 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 天後上線。
防止在目標變更時執行關聯
在某些情況下,您可能不希望在由受管節點組成的目標變更時執行關聯,但只會根據其指定的排程。
注意
執行 Automation Runbook 會產生成本。如果與 Automation Runbook 的關聯鎖定您帳戶中的所有執行個體,且您定期啟動大量執行個體,則啟動該執行個體時,該 Runbook 會在每個執行個體上執行。這可能會導致自動化費用提高。
若要防止關聯在關聯目標變更時執行,請選取只在下一個指定的 Cron 間隔套用關聯核取方塊。此核取方塊位於建立關聯和編輯關聯頁面的指定排程區域中。
此選項適用於包含 Automation Runbook 或 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
。如需使用主控台控制關聯執行時間的相關資訊,包括避免自動化執行意外高成本的詳細資訊,請參閱 了解何時將關聯套用至資源。