Ant*_*lia 4 amazon-s3 amazon-web-services amazon-cloudwatch amazon-cloudtrail aws-lambda
我尝试RequestCertificate在 AWS Certificate Manager 中引发事件时触发 Lambda 函数。
为此,我使用以下语法创建了一个 CloudWatch 规则:
{
"source": [
"aws.acm"
],
"detail-type": [
"AWS API Call via CloudTrail"
],
"detail": {
"eventSource": [
"acm.amazonaws.com"
],
"eventName": [
"RequestCertificate"
]
}
}
Run Code Online (Sandbox Code Playgroud)
该规则以 Lambda 函数作为目标。我已确保 Lambda 函数拥有正确执行所需的所有权限。
但是,当我在 ACM 上请求证书时,即使该RequestCertificate事件出现在 CloudTrail 事件历史记录中,Lambda 也根本不会触发。
为了解决这个问题,我必须创建一个 Trail,将 CloudTrail 日志存储在 S3 存储桶中。完成此操作后,Lambda 现在可以正确触发。
问题是,此处的文档中未指定这一点:使用 AWS CloudTrail 创建在 AWS API 调用上触发的 CloudWatch Events 规则
因此,我想知道这是否是预期行为,或者我的 CloudWatch 规则是否存在问题。
谢谢。
联系 AWS 支持团队后,他们确认,如果详细信息类型为AWS API Call via CloudTrail,并且不启用 CloudTrail 跟踪,您将不会收到任何事件。因此,创建 S3 Bucket 是最佳选择。
以下是他们的完整回复,以防对其他人有所帮助:
\n\n\n是的,如果详细信息类型是“通过 CloudTrail 进行 AWS API 调用”,则应启用 cloudtrail\n才能获取事件。
\n对于指定“通过 CloudTrail 进行 AWS API 调用”的事件模式,如果您不启用 CloudTrail 跟踪,您将不会收到相同的事件。
\n仅当不直接发出 CloudWatch 事件的服务/API 时才需要 CloudTrail。仅在这种情况下,我们才需要监控 CloudTrail API 调用以触发 CloudWatch 事件规则。API 操作记录在 CloudTrail 中,\n可用于 CloudWatch 事件进行匹配。每当任何 API 调用登录到 CloudTrail 且 CloudWatch 事件规则中指定的服务名称和 API 调用与登录到 CloudTrail 的 API\xe2\x80\x99 匹配时,都会触发 CloudWatch 事件规则。例如。S3 对象级 put API 操作不会向 CloudWatch 发出任何特定事件,因此在这种情况下,我们需要从 CloudTrail 事件捕获相应的 API 调用。不过,某些服务会针对其执行的任何特定操作直接发出\nCloudWatch 事件。在这种情况下,我们不需要使用 CloudTrail 来触发 CloudWatch 事件。例如。EC2 停止实例操作向 CloudWatch 发出直接\n事件。在这种情况下,我们不需要使用 CloudTrail 来捕获 CloudWatch Event 规则的这些事件。
\n对于 ACM,您需要启用 cloudtrail 事件,因为 ACM\n不会直接忽略 CloudWatch 的特定事件。
\n
| 归档时间: |
|
| 查看次数: |
1772 次 |
| 最近记录: |