【 AWS 重點新聞 】2022 年 3 月份整理
焦點新聞
Amazon EventBridge 在 Console 新增 Sandbox 功能 – 模擬及測試 Rule Filtering 和 Event Transformation
Amazon EventBridge Rule 是一項讓使用者可以設定事件觸發的機制。當特定事件或是定期型的事件發生,可以透過 Rule,觸發後續的負責處理的運算單位(例如:AWS Lambda)或是服務(例如:Amazon SNS…)。但是在設定 Rule 的過程中,有時候使用者會需要客製化 Event 傳送出去的訊息,以利後續的處理單位能夠得到足夠的資訊來執行;又或是希望可以篩選特定狀態的 Event,簡化程式碼處理的機制,這時候就需要 Custom Event 或是使用 Event Pattern 來篩選。
現在 AWS 在 Amazon EventBridge 的 Console 畫面新增了 Sandbox 的功能,讓使用者可以在設定 Rule 之前,利用這個模擬的空間,先測試一下 Event 經過處理之後所轉換的樣子,或是 Event Pattern 的正確性。
進入到 EventBridge 的 Console 畫面之後,可以在左邊欄位找到 Sandbox 的頁籤,而在 Sandbox 裡面,分為 Event Pattern 及 Target Input Transformer 兩個部分:
- Event Pattern
Event Pattern 主要分為兩個部分:Sample Event 及 Event Pattern。使用者選擇了目標的 Event(例如:EC2 Instance 狀態改變的事件)後,就可以利用下方的區塊來測試 Event Pattern 是否正確。
使用者可以選擇使用官方提供的下拉式選單來編輯,或是自己編輯 JSON 格式的編譯器,兩種方式都可以。最後按下 Test pattern,就可以測試其正確性。
- Target Input Transformer
Target Input Transformer 可以讓使用者客製化 Rule 傳送出去的 Event 內容:透過 Input path
來挑選需要使用到的資料欄位,再加上 Template
來改變整體訊息,最後的 Output
才是最終 Target 收到的訊息。
如果使用者想要在使用 Rule 之前,確認最終的 Output
,就可以直接在 Snadbox 裡面測試。以上述相同的 Sample Event 為例:
- Input path:
{
"account-id": "$.account",
"instance" : "$.detail.instance-id",
"state" : "$.detail.state"
}
- Template
The <instance> in <state> state are in <account-id> AWS Account.
- Output
The i-abcd1111 in pending state are in 123456789012 AWS Account.
新的 Console 畫面,讓使用者在操作時,更加清楚、友善,而不會在創建好 Rule 之後,才發現設定錯誤而重新來過。
其他新聞
AWS Lambda 支援在 resource-based policies 授權特定 AWS Organization
Resource-based policies 是 AWS IAM 其中一種 Policy,直接附加在各項 AWS 資源上,並定義 Principal
來限定特定的身份可以來存取,而 AWS Lambda 上也有此種 Policy。
並非所有的 AWS 資源都支援 Resource-based policy。
原先如果想要授權在同一個 AWS Organization 底下、不同 Account 裡面的 IAM User/IAM Group/IAM Role 可以存取該 Lambda Function 時,需要在 Resource-based policy 裡面,一個個的加上去,十分麻煩。
此次更新後,使用者可以直接指定 AWS Organization ID 作為 Principal
,授權在同一個 Organization 底下的所有 Account 都可以存取,方便許多。
參考來源至:AWS Lambda announces support for PrincipalOrgID in resource-based policies