Amazon-Web-Services
如何跟踪使用者對 AWS 上的外部 API 的請求?
我有點初學者,但我正在使用 AWS SAM(使用 API Gateway 和 Lambda)創建一個外部 API,我想要一種跟踪和監控使用情況的方法。
我正在考慮的一些選擇:
1.將請求儲存在數據庫中
*Pro:*它可以讓我儲存盡可能多的關於請求的資訊
*Con:*我認為這可能太慢而無法處理大量快速請求
- 記錄使用者使用 Redis 發出請求的頻率——但我還想要更多關於他們發出的請求的資訊
*Pro:*我可以快速計算使用者請求
*Con:*如果我的鍵值對是,這可能會限制我可以儲存的有關使用者的資訊量
user-id
:number-of-requests
3.使用消息隊列
*Pro:*我可以將請求資訊放入消息隊列,然後讓另一個 Lambda 函式將其放入數據庫,而不會減慢 API 的響應時間 *Con:*這可能過於復雜?而且我可能仍然會遇到與選項 1 相同的問題,即我會同時進行一堆小交易。
您能否提出一種方法或批評上述任何選項?
謝謝你的幫助!
API Gateway 包括一些記錄到 Cloudwatch Logs 的請求,文件在此處。如果您想記錄更多資訊,我會親自在 lambda 中收集它並將其推送到專用 Cloudwatch Logs 組中的訪問日誌中。請注意,因為 Cloudwatch Logs 的頻寬和儲存成本可能會增加繁忙站點的成本。
否則關於您的選擇
- DynamoDB 會足夠快。MySQL 數據庫的性能可能也不錯,可能會增加不到一毫秒的處理時間。
- 功能不全
- 這會很好,但我只會在#1 太慢的情況下這樣做。將消息推送到隊列然後讓另一個程序使用它並不復雜。