本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
您可以將 Runbook 指定為 Amazon EventBridge 事件的目標,藉此開始自動化。您可以根據排程或在特定的 AWS 系統事件發生時開始自動化。例如,假設您建立名稱為 BootStrapInstances 的 Runbook,而該文件在執行個體啟動時於執行個體上安裝軟體。若要指定 BootStrapInstances Runbook (和對應的工作流程) 做為 EventBridge 事件的目標,您要先建立新的 EventBridge 規則。(以下為範例規則:Service name (服務名稱):EC2,Event Type (事件類型):EC2 執行個體狀態-變更通知,Specific state(s) (特定狀態):執行 Any instance (任何執行個體)。) 然後,您可以使用下列程序,使用 EventBridge 主控台和 AWS Command Line Interface () 將 BootStrapInstances Runbook 指定為事件的目標AWS CLI。新的執行個體啟動時,系統會執行自動化和安裝軟體。
如需建立 Runbook 的資訊,請參閱 建立您自己的執行手冊。
建立使用 Runbook (主控台) 的 EventBridge 事件
使用以下程序設定來將 Runbook 做為 EventBridge 事件的目標。
將 Runbook 設定為 EventBridge 事件的目標
前往 https://console.aws.amazon.com/events/
開啟 Amazon EventBridge 主控台。 -
在導覽窗格中,選擇規則。
-
選擇建立規則。
-
輸入規則的名稱和描述。
在同一個區域和同一個事件匯流排上,規則不能與另一個規則同名。
-
針對事件匯流排,選擇要與此規則建立關聯的事件匯流排。如果您希望此規則回應來自您自己的相符事件 AWS 帳戶,請選取預設值。當您 AWS 服務 帳戶中的 發出事件時,一律會傳送至您帳戶的預設事件匯流排。
-
選擇該規則的觸發方式。
根據…建立規則 執行此作業... 事件
-
針對規則類型,選擇具有事件模式的規則。
-
選擇下一步。
-
在事件來源欄位中,選擇 AWS 事件或 EventBridge 合作夥伴事件。
-
在 Event pattern (事件模式) 區段中,執行下列其中一個動作:
-
若要使用範本建立您的事件模式,請選擇 Event pattern form (事件模式表單),然後選擇 Event source (事件來源)、AWS service ( 服務),以及 Event type (事件類型)。如果您選擇所有事件做為事件類型,則 發出的所有事件 AWS 服務 都會符合規則。
若要自定範本,請選擇自訂模式 (JSON 編輯器)並進行變更。
-
若要使用自訂事件模式,請選擇 Custom pattern (JSON editor) (自訂模式 (JSON 編輯器)) 並建立事件模式。
-
排程 -
針對 Rule type (規則類型),選擇 Schedule (排程)。
-
選擇 Next (下一步)。
-
針對 Schedule pattern (排程模式),執行下列其中一項動作:
-
若要使用 Cron 運算式定義排程,請選擇 A fine-grained schedule that runs at a specific time, such as 8:00 a.m. (在特定時間 (如上午 8:00) 執行的精細時間表)。PST on the first Monday of every month (每個月的第一個星期一的 PST) 並輸入 Cron 運算式。
-
若要使用 Rate 運算式定義排程,請選擇 A schedule that runs at a regular rate, such as every 10 minutes (按一般速率執行的排程,例如每 10 分鐘一次),然後輸入 Rate 運算式。
-
-
-
選擇 Next (下一步)。
-
在目標類型欄位中,選擇 AWS 服務。
-
針對 Select a target (選取目標),請選擇 Systems Manager Automation。
-
對於 Document (文件),選擇叫用目標時要使用的 Runbook。
-
在 Configure automation parameter(s) (設定自動化參數) 區段中,保留預設參數值 (若有) 或輸入您自己的值。
注意
若要建立目標,您必須為每個必要參數指定值。如果不這麼做,系統會建立規則,但規則不會執行。
-
對於許多目標類型而言,EventBridge 需要許可才能將事件傳送到目標。在這些情況下,EventBridge 可建立執行您的規則所需的 IAM 角色。執行以下任意一項:
-
若要自動建立 IAM 角色,請選擇為此特定資源建立新角色。
-
若要使用您早前建立的 IAM 角色,請選擇 Use existing role (使用現有角色) 並從下拉式清單中選取現有角色。請注意,您可能需要更新 IAM 角色的信任政策,使其包含 EventBridge。以下是範例:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "
events.amazonaws.com
", "ssm.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] } -
-
選擇 Next (下一步)。
-
(選用) 為規則輸入一或多個標籤。如需詳細資訊,請參閱《Amazon EventBridge 使用者指南》中的標記您的 Amazon EventBridge 資源。
-
選擇 Next (下一步)。
-
檢閱規則的詳細資訊,然後選擇建立規則。
建立使用 Runbook (命令列) 的 EventBridge 事件
下列程序說明如何使用 AWS CLI (在 Linux 或 Windows 上) 或 AWS Tools for PowerShell 建立 EventBridge 事件規則,並將 Runbook 設定為目標。
將 Runbook 設定為 EventBridge 事件的目標
AWS Tools for PowerShell如果您尚未安裝和設定 AWS CLI 或 。
如需相關資訊,請參閱安裝或更新 AWS CLI的最新版本和安裝 AWS Tools for PowerShell。
-
建立命令來指定新的 EventBridge 事件規則。將每個
範例資源預留位置
取代為您自己的資訊。「依據排程觸發」
aws events put-rule \ --name "
rule name
" \ --schedule-expression "cron or rate expression
"以下範例會建立 EventBridge 事件規則,在每天早上 9:00 (UTC) 開始。
aws events put-rule \ --name "DailyAutomationRule" \ --schedule-expression "cron(0 9 * * ? *)"
「依據事件觸發」
aws events put-rule \ --name "
rule name
" \ --event-pattern "{\"source\":[\"aws.service
\"],\"detail-type\":[\"service event detail type
\"]}"以下範例建立 EventBridge 事件規則,當區域中的任何 EC2 執行個體變更狀態時會觸開啟規則。
aws events put-rule \ --name "EC2InstanceStateChanges" \ --event-pattern "{\"source\":[\"aws.ec2\"],\"detail-type\":[\"EC2 Instance State-change Notification\"]}"
命令會傳回與以下相似的新 EventBridge 規則詳細資訊。
{ "RuleArn": "arn:aws:events:us-east-1:123456789012:rule/automationrule" }
-
建立命令,指定 Runbook 做為您在步驟 2 中所建立 EventBridge 事件規則的目標。將每個
範例資源預留位置
取代為您自己的資訊。aws events put-targets \ --rule
rule name
\ --targets '{"Arn": " arn:aws:ssm:region
:account ID
:automation-definition/runbook name
","Input":"{\"Message\":[\"{\\\"Key\\\":\\\"key name
\\\",\\\"Values\\\":[\\\"value
\\\"]}\"]}","Id": "target ID
","RoleArn": "arn:aws:iam::123456789012
:role/service-role/EventBridge service role
"}'以下範例會建立 EventBridge 事件目標,使用 Runbook
AWS-StartEC2Instance
文件啟動指定的執行個體 ID。aws events put-targets \ --rule DailyAutomationRule \ --targets '{"Arn": "arn:aws:ssm:
region
:*:automation-definition/AWS-StartEC2Instance","Input":"{\"InstanceId\":[\"i-02573cafcfEXAMPLE\"],\"AutomationAssumeRole\":[\"arn:aws:iam::123456789012:role/AutomationServiceRole\"]}","Id": "Target1","RoleArn": "arn:aws:iam::123456789012:role/service-role/AWS_Events_Invoke_Start_Automation_Execution_1213609520"}'系統會傳回相關資訊,如下所示。
{ "FailedEntries": [], "FailedEntryCount": 0 }