Amazon-Web-Services

如何跟踪使用者對 AWS 上的外部 API 的請求?

  • May 4, 2021

我有點初學者,但我正在使用 AWS SAM(使用 API Gateway 和 Lambda)創建一個外部 API,我想要一種跟踪和監控使用情況的方法。

我正在考慮的一些選擇:

1.將請求儲存在數據庫中

*Pro:*它可以讓我儲存盡可能多的關於請求的資訊

*Con:*我認為這可能太慢而無法處理大量快速請求

  1. 記錄使用者使用 Redis 發出請求的頻率——但我還想要更多關於他們發出的請求的資訊

*Pro:*我可以快速計算使用者請求

*Con:*如果我的鍵值對是,這可能會限制我可以儲存的有關使用者的資訊量user-idnumber-of-requests

3.使用消息隊列

*Pro:*我可以將請求資訊放入消息隊列,然後讓另一個 Lambda 函式將其放入數據庫,而不會減慢 API 的響應時間 *Con:*這可能過於復雜?而且我可能仍然會遇到與選項 1 相同的問題,即我會同時進行一堆小交易。

您能否提出一種方法或批評上述任何選項?

謝謝你的幫助!

API Gateway 包括一些記錄到 Cloudwatch Logs 的請求,文件在此處。如果您想記錄更多資訊,我會親自在 lambda 中收集它並將其推送到專用 Cloudwatch Logs 組中的訪問日誌中。請注意,因為 Cloudwatch Logs 的頻寬和儲存成本可能會增加繁忙站點的成本。

否則關於您的選擇

  1. DynamoDB 會足夠快。MySQL 數據庫的性能可能也不錯,可能會增加不到一毫秒的處理時間。
  2. 功能不全
  3. 這會很好,但我只會在#1 太慢的情況下這樣做。將消息推送到隊列然後讓另一個程序使用它並不復雜。

引用自:https://serverfault.com/questions/1062441