我想使用 Amazon CloudTrail LookupEvents 查找因超过 AWS Lambda 函数限额限制而导致的错误的来源。
解决方法
当您的环境超过 API 请求的 Lambda 函数限额限制时,您可能会收到“Rate exceeded”(超出速率)错误。在解决“Rate exceeded”(超出速率)错误之前,请查看您的 CloudTrail 事件日志。
1. 运行 CloudTrail lookup-events AWS 命令行界面(AWS CLI)命令以查看管理事件 API 调用的总数。
注意:为每个值设置开始时间、结束时间和时区,以匹配有问题的时间范围。
aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventSource,AttributeValue=lambda.amazonaws.com --start-time YYYY-MM-DDTHH:MM:SS+00:00 --end-time YYYY-MM-DDTHH:MM:SS+00:00 | grep -i EventName | grep -v CloudTrailEvent | sort | uniq -c | sort -r
**注意:**如果在运行 AWS CLI 命令时收到错误,请确保您使用的是最新版本的 AWS CLI。
CloudTrail lookup-events AWS CLI 命令示例:
aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventSource,AttributeValue=lambda.amazonaws.com --start-time 2023-04-03T18:29:00+05:30 --end-time 2023-04-03T18:29:30+05:30 | grep -i EventName | grep -v CloudTrailEvent | sort | uniq -c | sort -r
CloudTrail lookup-events AWS CLI 命令输出示例:
2072 "EventName": "ListVersionsByFunction20150331",
877 "EventName": "GetFunction20150331v2",
245 "EventName": "GetFunctionCodeSigningConfig",
210 "EventName": "UpdateFunctionCode20150331v2",
210 "EventName": "ListTags20170331",
206 "EventName": "GetRuntimeManagementConfig",
121 "EventName": "PublishVersion20150331",
106 "EventName": "UpdateAlias20150331",
89 "EventName": "GetPolicy20150331v2",
2 "EventName": "ListLayers20181031",
2. 运行 CloudTrail lookup-events 命令以查看每个用户进行的 API 调用的总数。
注意:为每个值设置开始时间、结束时间和时区,以匹配有问题的时间范围。
aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventSource,AttributeValue=lambda.amazonaws.com --start-time YYYY-MM-DDTHH:MM:SS+00:00 --end-time YYYY-MM-DDTHH:MM:SS+00:00 | grep -i Username | grep -v CloudTrailEvent | sort | uniq -c |. sort -r
CloudTrail lookup-events AWS CLI 命令示例:
aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventSource,AttributeValue=lambda.amazonaws.com --start-time 2023-04-03T18:29:00+05:30 --end-time 2023-04-03T18:29:30+05:30 | grep -i Username | grep -v CloudTrailEvent | sort | uniq -c | sort -r
CloudTrail lookup-events AWS CLI 命令输出示例:
4047 "Username": "AWSCloudFormation",
89 "Username": "auditor",
2 "Username": "appsync",
3. 如有必要,请再次运行 CloudTrail lookup-events 命令以识别可能会进行大量 API 调用的用户或事件。
4. 在查看 CloudTrail lookup-events 命令的输出后,查看超过 Lambda 函数限额限制的 API 调用的来源。
相关信息
如何防止 CloudFormation 中出现“Rate exceeded”(超出速率)错误?
如何排查出现“Rate exceeded”(超出速率)和 429“TooManyRequestsException”错误时的 Lambda 函数节流问题?