EventBridge 範例使用 AWS CLI - AWS Command Line Interface

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

EventBridge 範例使用 AWS CLI

下列程式碼範例說明如何使用 AWS Command Line Interface 與來執行動作及實作常見案例 EventBridge。

Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然動作會告訴您如何呼叫個別服務函數,但您可以在其相關情境和跨服務範例中查看內容中的動作。

Scenarios (案例) 是向您展示如何呼叫相同服務中的多個函數來完成特定任務的程式碼範例。

每個範例都包含一個連結 GitHub,您可以在其中找到如何在內容中設定和執行程式碼的指示。

主題

動作

下列程式碼範例會示範如何使用delete-rule

AWS CLI

刪除 CloudWatch 事件規則

此範例會刪除名為 EC2 的規則InstanceStateChanges:

aws events delete-rule --name "EC2InstanceStateChanges"
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考DeleteRule中的。

下列程式碼範例會示範如何使用describe-rule

AWS CLI

顯示 CloudWatch 事件規則的相關資訊

此範例顯示名為下列規則的相關資訊 DailyLambdaFunction:

aws events describe-rule --name "DailyLambdaFunction"
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考DescribeRule中的。

下列程式碼範例會示範如何使用disable-rule

AWS CLI

停用 CloudWatch 事件規則

此範例會停用名為的規則 DailyLambdaFunction。此規則不會遭到刪除:

aws events disable-rule --name "DailyLambdaFunction"
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考DisableRule中的。

下列程式碼範例會示範如何使用enable-rule

AWS CLI

啟用 CloudWatch 事件規則

此範例會啟用先前已停用名為 DailyLambdaFunction的規則:

aws events enable-rule --name "DailyLambdaFunction"
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考EnableRule中的。

下列程式碼範例會示範如何使用list-rule-names-by-target

AWS CLI

顯示具有指定目標的所有規則

此範例顯示以名為 "MyFunctionName" 作為目標的 Lambda 函數的所有規則:

aws events list-rule-names-by-target --target-arn "arn:aws:lambda:us-east-1:123456789012:function:MyFunctionName"

下列程式碼範例會示範如何使用list-rules

AWS CLI

顯示所有 CloudWatch 事件規則的清單

此範例顯示區域中的所有 CloudWatch 事件規則:

aws events list-rules

顯示以特定字串開頭的 CloudWatch 事件規則清單。

此範例顯示區域中名稱以「Daily」開頭的所有 CloudWatch 事件規則:

aws events list-rules --name-prefix "Daily"
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考ListRules中的。

下列程式碼範例會示範如何使用list-targets-by-rule

AWS CLI

顯示 CloudWatch 事件規則的所有目標

此範例顯示名為下列規則的所有目標 DailyLambdaFunction:

aws events list-targets-by-rule --rule "DailyLambdaFunction"

下列程式碼範例會示範如何使用put-events

AWS CLI

將自訂事件傳送至 CloudWatch 事件

此範例會將自訂事件傳送至 CloudWatch 事件。putevents.json 檔案中包含該事件:

aws events put-events --entries file://putevents.json

以下為 putevents.json 檔案的內容:

[ { "Source": "com.mycompany.myapp", "Detail": "{ \"key1\": \"value1\", \"key2\": \"value2\" }", "Resources": [ "resource1", "resource2" ], "DetailType": "myDetailType" }, { "Source": "com.mycompany.myapp", "Detail": "{ \"key1\": \"value3\", \"key2\": \"value4\" }", "Resources": [ "resource1", "resource2" ], "DetailType": "myDetailType" } ]
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考PutEvents中的。

下列程式碼範例會示範如何使用put-rule

AWS CLI

建立 CloudWatch 事件規則

此範例會建立規則,該規則會在每天 UTC 時間上午 9:00 時觸發。如果您使用 put-targets,新增 Lambda 函數作為此規則的目標,則可以在指定的時間每天執行 Lambda 函數:

aws events put-rule --name "DailyLambdaFunction" --schedule-expression "cron(0 9 * * ? *)"

此範例會建立規則,當區域中的任何 EC2 執行個體變更狀態時便會觸發此規則:

aws events put-rule --name "EC2InstanceStateChanges" --event-pattern "{\"source\":[\"aws.ec2\"],\"detail-type\":[\"EC2 Instance State-change Notification\"]}" --role-arn "arn:aws:iam::123456789012:role/MyRoleForThisRule"

此範例會建立規則,當區域中的任何 EC2 執行個體停止或終止時便會觸發此規則:

aws events put-rule --name "EC2InstanceStateChangeStopOrTerminate" --event-pattern "{\"source\":[\"aws.ec2\"],\"detail-type\":[\"EC2 Instance State-change Notification\"],\"detail\":{\"state\":[\"stopped\",\"terminated\"]}}" --role-arn "arn:aws:iam::123456789012:role/MyRoleForThisRule"
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考PutRule中的。

下列程式碼範例會示範如何使用put-targets

AWS CLI

若要新增 CloudWatch 事件規則的目標

此範例會新增 Lambda 函數作為規則的目標:

aws events put-targets --rule DailyLambdaFunction --targets "Id"="1","Arn"="arn:aws:lambda:us-east-1:123456789012:function:MyFunctionName"

此範例會將 Amazon Kinesis 串流設定為目標,以便將此規則捕捉到的事件轉送至串流:

aws events put-targets --rule EC2InstanceStateChanges --targets "Id"="1","Arn"="arn:aws:kinesis:us-east-1:123456789012:stream/MyStream","RoleArn"="arn:aws:iam::123456789012:role/MyRoleForThisRule"

此範例會將兩個 Amazon Kinesis 串流設定為單一規則的目標:

aws events put-targets --rule DailyLambdaFunction --targets "Id"="Target1","Arn"="arn:aws:kinesis:us-east-1:379642911888:stream/MyStream1","RoleArn"="arn:aws:iam::379642911888:role/ MyRoleToAccessLambda" "Id"="Target2"," Arn"="arn:aws:kinesis:us-east-1:379642911888:stream/MyStream2","RoleArn"="arn:aws:iam::379642911888:role/MyRoleToAccessLambda"
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考PutTargets中的。

下列程式碼範例會示範如何使用remove-targets

AWS CLI

移除事件的目標

此範例會將名為 MyStream 1 的 Amazon Kinesis 串流移除成為規則 DailyLambdaFunction的目標。建立 DailyLambdaFunction 時,此串流會設定為識別碼為 Target1 的目標:

aws events remove-targets --rule "DailyLambdaFunction" --ids "Target1"
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考RemoveTargets中的。

下列程式碼範例會示範如何使用test-event-pattern

AWS CLI

若要檢查事件模式是否符合指定的事件

這個例子測試模式「源:我的公司 .myapp」是否匹配指定的事件。在這個例子中,輸出將是「true」:

aws events test-event-pattern --event-pattern "{\"source\":[\"com.mycompany.myapp\"]}" --event "{\"id\":\"1\",\"source\":\"com.mycompany.myapp\",\"detail-type\":\"myDetailType\",\"account\":\"123456789012\",\"region\":\"us-east-1\",\"time\":\"2017-04-11T20:11:04Z\"}"
  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考TestEventPattern中的。