本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:使 EventBridge 用結構描述將事件傳送至 Amazon Kinesis
您可以將 AWS API呼叫事件傳送 EventBridge 到 Amazon Kinesis 串流、建立 Kinesis Data Stre ams 應用程式,以及處理大量資料。在本教學中,您會建立 Kinesis 串流,然後在 EventBridge 主控台中建立規則,以便在 Amazon EC2 執行個體停止時將事件傳送至該串流。
必要條件
在本教學課程中,您將使用下列內容:
使用 AWS CLI 與 Kinesis 串流搭配使用。
若要安裝 AWS CLI,請參閱安裝、更新和解除安裝 AWS CLI 版本 2。
注意
本教程使用 AWS 事件和內置的aws.events
架構註冊表。您也可以手動將自訂事件新增至自訂結構描述登錄,或使用結構描述探索,以根據自訂事件的結構描述建立 EventBridge 規則。
如需結構描述的詳細資訊,請參閱 Amazon EventBridge 模式。如需關於使用其他事件模式選項建立規則的詳細資訊,請參閱 創建對 Amazon 事件做出反應的規則 EventBridge。
步驟 1:建立 Amazon Kinesis 串流
若要建立串流,請在命令提示字元中使用create-stream
AWS CLI 指令。
aws kinesis create-stream --stream-name
test
--shard-count 1
當串流狀態為 ACTIVE
時,串流已備妥。若要檢查串流狀態,請使用 describe-stream
命令。
aws kinesis describe-stream --stream-name
test
步驟 2:建立規則
建立規則,以便在停止 Amazon EC2 執行個體時將事件傳送至串流。
建立規則
在打開 Amazon EventBridge 控制台https://console.aws.amazon.com/events/
。 -
在導覽窗格中,選擇規則。
-
選擇建立規則。
-
輸入規則的名稱和描述。例如,命名規則
TestRule
-
針對事件匯流排,選取預設值。
-
針對規則類型,選擇具有事件模式的規則。
-
選擇下一步。
-
對於事件來源,請選擇AWS 事件或 EventBridge 合作夥伴事件。
-
在建立方法中,選擇使用結構描述。
-
針對事件模式,請執行下列動作:
-
針對結構描述類型,選擇從結構描述登記檔選取結構描述。
-
針對結構描述登錄檔,請從下拉式清單中選擇 aws.events
-
在「結構描述」EC2InstanceStateChangeNotification 中,從下拉式清單中選擇 aws.ec2@。
EventBridge 在「模型」下顯示事件結構描述。
EventBridge 在事件所需的任何屬性旁顯示紅色星號,而不是事件模式。
-
在模型中,設定下列事件篩選屬性:
選取狀態屬性旁邊的 + 編輯。
將關係留空。針對數值,輸入
running
。選擇設定。選取來源屬性旁邊的 + 編輯。
將關係留空。針對數值,輸入
aws.ec2
。選擇設定。選取詳細資料類型屬性旁邊的 + 編輯。
將關係留空。針對數值,輸入
EC2 Instance State-change Notification
。選擇設定。
-
若要檢視您已建構的事件模式,請在中選擇 [產生事件模式] JSON
EventBridge 顯示事件模式JSON:
{ "detail": { "state": ["running"] }, "detail-type": ["EC2 Instance State-change Notification"], "source": ["aws.ec2"] }
-
-
選擇下一步。
-
在目標類型欄位中,選擇 AWS 服務。
-
針對選取目標,從下拉式清單中選擇 Kinesis 串流。
-
在串流中,選取您在步驟 1:建立 Amazon Kinesis 串流區段中建立的 Kinesis 串流。在此範例中,選取
test
。 -
針對執行角色,請選擇為此特定資源建立新角色。
-
選擇下一步。
-
選擇下一步。
-
檢閱規則的詳細資訊,然後選擇建立規則。
步驟 3:測試規則
若要測試您的規則,請停止 Amazon EC2 執行個體。等待幾分鐘讓執行個體停止,然後檢查您的 CloudWatch 指標,確認您的函數是否執行。
停用執行個體以測試您的規則
在打開 Amazon EC2 控制台https://console.aws.amazon.com/ec2/
。 -
啟動執行個體。如需詳細資訊,請參閱 Amazon EC2 使用者指南中的啟動執行個體。
在打開 Amazon EventBridge 控制台https://console.aws.amazon.com/events/
。 -
在導覽窗格中,選擇規則。
選擇您建立的規則名稱,並選擇規則的指標。
-
(選用) 完成後,請終止執行個體。如需詳細資訊,請參閱 Amazon EC2 使用者指南中的終止執行個體。
步驟 4:確認事件是否已傳送
您可以使 AWS CLI 用從串流取得記錄,以驗證事件是否已傳送。
取得記錄
-
若要開始從 Kinesis 串流讀取,請在命令提示中使用
get-shard-iterator
命令。aws kinesis get-shard-iterator --shard-id shardId-000000000000 --shard-iterator-type TRIM_HORIZON --stream-name
test
下列為範例輸出。
{ "ShardIterator": "AAAAAAAAAAHSywljv0zEgPX4NyKdZ5wryMzP9yALs8NeKbUjp1IxtZs1Sp+KEd9I6AJ9ZG4lNR1EMi+9Md/nHvtLyxpfhEzYvkTZ4D9DQVz/mBYWRO6OTZRKnW9gd+efGN2aHFdkH1rJl4BL9Wyrk+ghYG22D2T1Da2EyNSH1+LAbK33gQweTJADBdyMwlo5r6PqcP2dzhg=" }
-
若要取得記錄,請使用以下
get-records
命令。根據上一步驟的輸出使用碎片反覆運算器。aws kinesis get-records --shard-iterator
AAAAAAAAAAHSywljv0zEgPX4NyKdZ5wryMzP9yALs8NeKbUjp1IxtZs1Sp+KEd9I6AJ9ZG4lNR1EMi+9Md/nHvtLyxpfhEzYvkTZ4D9DQVz/mBYWRO6OTZRKnW9gd+efGN2aHFdkH1rJl4BL9Wyrk+ghYG22D2T1Da2EyNSH1+LAbK33gQweTJADBdyMwlo5r6PqcP2dzhg=
如果命令成功,它會請求來自您的串流的指定碎片的記錄。您可能會收到零或多筆記錄。傳回的任何記錄可能不會呈現您串流中的所有記錄。如果您沒有收到預期的資料,請呼叫
get-records
。 -
Kinesis 中的記錄用 Base64 編碼。使用 Base64 解碼器解碼數據,以便您可以驗證它是以形式發送到流的JSON事件。
步驟 5:清除您的資源
除非您想要保留為此教學課程建立的資源,否則您現在便可刪除。刪除不再使用的 AWS 資源,即可避免 AWS 帳戶不必要的費用。
若要刪除 EventBridge 規則
-
開啟主 EventBridge 控台的 [規則] 頁面
。 -
選取您建立的規則。
-
選擇刪除。
-
選擇刪除。
刪除 Kinesis 串流
-
開啟 Kinesis 主控台的資料串流頁面
。 -
選取您建立的串流。
-
選擇動作、刪除。
-
在欄位中輸入刪除並選擇刪除。