将 CloudTrail 事件获取到 Lambda 函数
Getting CloudTrail event to a Lambda function
有没有办法将事件信息(特别是导致事件的服务的 ARN)获取到 lambda 函数?
在我之前的 中,我寻求了一些有关使用 Cloudwatch 和 Cloudtrail 获取信息的帮助。我认为这主要是对规则的误解,但现在我担心是否有一个通用的解决方案。
我知道我可以成功地针对特定服务执行此操作,但我希望有一个通用规则来触发该功能。 Cloudwatch 日志或事件似乎是对此的正确答案,但由于我的 Cloudwatch Cloudtrail 规则出现问题,我对此不再有信心。
为了全面阐述我的目标,我希望在创建任何服务时触发 lambda 函数并访问该新服务的 ARN,以便我可以对流程进行验证。
是的,这是可能的,但是,每个事件都有不同的事件属性,您需要检查从何处获取此信息。
例如,如果您的 lambda 由 CloudFormation 触发,您可以使用 event['StackId']
.
获取 Stack 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
有没有办法将事件信息(特别是导致事件的服务的 ARN)获取到 lambda 函数?
在我之前的
我知道我可以成功地针对特定服务执行此操作,但我希望有一个通用规则来触发该功能。 Cloudwatch 日志或事件似乎是对此的正确答案,但由于我的 Cloudwatch Cloudtrail 规则出现问题,我对此不再有信心。
为了全面阐述我的目标,我希望在创建任何服务时触发 lambda 函数并访问该新服务的 ARN,以便我可以对流程进行验证。
是的,这是可能的,但是,每个事件都有不同的事件属性,您需要检查从何处获取此信息。
例如,如果您的 lambda 由 CloudFormation 触发,您可以使用 event['StackId']
.
{
"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