本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立 EventBridge 規則以擷取群組生命週期事件並發佈通知
您可以為資源群組開啟群組生命週期事件,AWS Resource Groups以將事件發佈到 Amazon EventBridge。然後,您可以透過將這些事件傳送給其他事件以AWS 服務供進一步處理,來建立回應這些事件的 EventBridge規則。
- AWS CLI
-
在 EventBridge 其中建立擷取事件並將事件傳送至所需目標服務的規則的程序會採用兩個獨立的 CLI 指令:
- 步驟 1:建立 EventBridge 規則以擷取事件
-
下列AWS CLIput-rule
範例命令會建立擷取所有 Resource Groups 生命週期事件變更的 EventBridge 規則。
$
aws events put-rule \
--name "CatchAllResourceGroupEvents" \
--event-pattern '{"source":["aws.resource-groups"]}'
{
"RuleArn": "arn:aws:events:us-east-1:123456789012:rule/CatchAllResourceGroupEvents"
}
輸出包括新規則的 Amazon 資源名稱 (ARN)。
包含加引號字串的參數值會根據您使用的作業系統和殼層,具有不同的格式化規則。對於本指南中的示例,我們展示了在 Linux BASH 外殼上運行的命令。如需有關為其他作業系統 (例如 Windows 命令提示字元) 格式化字串的指示,請參閱《使用指南》中的〈在字串內使AWS Command Line Interface用引號〉。
由於參數字串變得越來越複雜,接受來自文字檔案的參數值,而不是直接在命令列上輸入參數值,也會更容易出錯。
下列事件模式會將事件限制為只有與指定群組相關的事件 (由其 ARN 識別)。此事件模式是一個複雜的 JSON 字符串,當壓縮為單行,正確轉義的 JSON 字符串時,它的可讀性要低得多。您可以將其存儲在文件中。
將事件模式 JSON 字串儲存在檔案中。在下列程式碼範例中,檔案為eventpattern.txt
。
{
"source": [ "aws.resource-groups" ],
"detail": {
"group": {
"arn": [ "my-resource-group-arn" ]
}
}
}
然後,發出以下命令以建立規則,從檔案擷取自訂事件模式。
$
aws events put-rule \
--name "CatchResourceGroupEventsForMyGroup" \
--event-pattern file://eventpattern.txt
{
"RuleArn": "arn:aws:events:us-east-1:123456789012:rule/CatchResourceGroupEventsForMyGroup"
}
若要擷取其他類型的 Resource Groups 事件,請使用類似區段中顯示的篩選器來取代--event-pattern
字串針對不同使用案例的範例 EventBridge 自訂事件模式。
- 步驟 2:將可處理事件的目標附加至 EventBridge 規則
-
現在您有一個規則可擷取您感興趣的事件,您可以附加一或多個目標,以對事件執行某種類型的處理。
下列AWS CLIput-targets
命令會附加 Amazon Simple Notification Service (Amazon SNS) 主題,命名my-sns-topic
為您在上一個範例中建立的規則。當規則中指定的群組發生變更時,主題的所有訂閱者都會收到通知。
$
aws events put-targets \
--rule CatchResourceGroupEventsForMyGroup \
--targets Id=1,Arn=arn:aws:sns:us-east-1:123456789012:my-sns-topic
{
"FailedEntryCount": 0,
"FailedEntries": []
}
此時,任何與規則中事件模式相符的群組變更都會自動傳送至設定的一或多個目標。如前例所述,如果目標是 Amazon SNS 主題,則該主題的所有訂閱者都會收到包含事件的訊息,如中所述Resource Groups 生命週期事件的結構與語法。
如需詳細資訊,請參閱下列資源:
建立規則以僅擷取特定群組生命週期事件類型
您可以使用自訂事件模式建立規則,該模式只會擷取您感興趣的事件。如需如何使用自訂事件模式篩選傳入事件的完整詳細資訊,請參閱 Amazon 使用 EventBridge 者指南中的 Amazon EventBridge 事件。
例如,假設您希望規則僅處理指示建立新 Resource Groups 的那些資源群組通知。您可以使用類似下列範例的自訂事件模式。
{
"source": [ "aws.resource-groups" ],
"detail-type": [ "ResourceGroups Group State Change" ],
"detail": {
"state-change": "create"
}
}
該篩選器只會擷取在指定欄位中具有這些確切值的事件。如需可用欄位的完整清單,請參閱Resource Groups 生命週期事件的結構與語法。