0

有沒有辦法將獲取事件信息,特別是導致事件的服務的ARN,獲取到lambda函數?將CloudTrail事件獲取到Lambda函數

在我以前的question,我問了一些幫助,使用的CloudWatch和Cloudtrail來獲得信息。我認爲這主要是對規則的一種誤解,但現在我擔心是否有無法制定一個通用的解決方案。

我知道我可以爲特定的服務做的成功,但我希望有一個通用的規則觸發功能。 Cloudwatch日誌或事件似乎是正確的答案,但我對Cloudwatch Cloudtrail規則的麻煩不再有信心。

只是爲了充分奠定了我的目標,我希望有在創建任何服務的lambda函數觸發並訪問新的服務ARN,這樣我可以做的過程中驗證。

回答

1

是的,這是可能的,但是,每個事件都有不同的事件屬性,你需要檢查哪裏得到這些信息。

例如,如果您的lambda是由CloudFormation觸發的,則可以使用event['StackId']獲得棧ID(ARN)。

{ 
    "StackId": stackidarn, 
    "ResponseURL": "http://pre-signed-S3-url-for-response", 
    "ResourceProperties": { 
    "StackName": "stack-name", 
    "List": [ 
     "1", 
     "2", 
     "3" 
    ] 
    }, 
    "RequestType": "Create", 
    "ResourceType": "Custom::TestResource", 
    "RequestId": "unique id for this create request", 
    "LogicalResourceId": "MyTestResource" 
} 

你可以看到有關http://docs.aws.amazon.com/lambda/latest/dg/eventsources.html生成的每個事件的詳細信息。

如果你想在實時檢查事件內容進行調試,你可以找到像lambda-toolkit

+0

燁一些解決方案,我剛問過AWS有在看一些細節,似乎,像你說的JSON格式,特別是存儲ARN的地方,事件之間的格式不一樣。同樣在事件版本之間,所以這種方法似乎不適合我的預期目的。 – user3651225