我想要使用 Amazon CloudTrail LookupEvents 來尋找超過 AWS Lambda 函數配額上限所造成的錯誤來源。
解決方法
當您的環境超過 API 請求的 Lambda 函數配額上限時,您可能會收到「速率超出」錯誤訊息。解決「速率超出」錯誤之前,請先檢閱您的 CloudTrail 事件日誌。
1. 執行 CloudTrail lookup-events AWS Command Line Interface (AWS CLI) 命令,以檢視管理事件 API 呼叫的總數。
**注意:**請設定每個值的 start-time、end-time 和時區,以符合有問題的時間範圍。
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 呼叫總數。
**注意:**請設定每個值的 start-time、end-time 和時區,以符合有問題的時間範圍。
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 中的「速率超出」錯誤?
如何對 Lambda 函數限流的「速率超出」和 429「TooManyRequestsException」錯誤進行疑難排解?