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

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

使用 的 EventBridge 範例 AWS CLI

下列程式碼範例示範如何透過 AWS Command Line Interface 搭配 EventBridge 使用 來執行動作和實作常見案例。

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

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

主題

動作

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

AWS CLI

刪除 CloudWatch Events 規則

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

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

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

AWS CLI

顯示 CloudWatch Events 規則的相關資訊

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

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

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

AWS CLI

停用 CloudWatch Events 規則

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

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

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

AWS CLI

啟用 CloudWatch Events 規則

此範例會啟用先前已停用之名為 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 Events 規則的清單

此範例會顯示區域中的所有 CloudWatch Events 規則:

aws events list-rules

顯示列出以特定字串開頭之 CloudWatch Events 規則的清單。

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

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

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

AWS CLI

顯示 CloudWatch Events 規則的所有目標

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

aws events list-targets-by-rule --rule "DailyLambdaFunction"
  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 ListTargetsByRule

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

AWS CLI

將自訂事件傳送 CloudWatch Events

此範例會將自訂事件傳送至 CloudWatch Events。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 Events 規則

此範例會建立規則,該規則會在每天 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 Events 規則的目標

此範例會新增 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

移除事件的目標

此範例會將名為 MyStream1 的 Amazon Kinesis 串流移除,使其不再是規則 DailyLambdaFunction 的目標。建立 DailyLambdaFunction 時,會將此串流設為 ID 為 Target1 的目標:

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

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

AWS CLI

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

此範例會測試模式 "source:com.mycompany.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