import (
"github.com/aws/aws-lambda-go/lambda"
"github.com/aws/aws-lambda-go/events"
"context"
)

func handleRequest(ctx context.Context, request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {

return events.APIGatewayProxyResponse{
Body: request.Body,
StatusCode: 200,
Headers: map[string] string {
"RspHeader1": "RspHeaderValue1",
"Content-Type": "application/json",
"Content-Length": "1000",
},
}, nil
}

func main() {
lambda.Start(handleRequest)
}

我們需要按照請求發生的順序保存請求的歷史記錄。每個日志條目都包含有關請求的信息,包括客戶端 IP 地址、請求日期/時間、請求路徑、HTTP 代碼、提供的字節數、用戶代理等。適用于 Go 的 Moesif AWS Lambda 中間件

我們將定義函數的配置選項。有關更多詳細信息,請參閱Moesif 配置選項

func MoesifOptions() map[string]interface{} {
var moesifOptions = map[string]interface{} {
"Log_Body": true,
}
return moesifOptions
}

現在,我們將添加Moesif Middleware到我們的 lambda 函數。

func main() {
lambda.Start(moesifawslambda.MoesifLogger(HandleLambdaEvent, MoesifOptions()))
}

集成后,我們將看到所有 API 調用都被捕獲并發送到 Moesif。

安全記錄數據

身份驗證請求包含憑證,響應包含安全令牌,在日志中記錄憑證和令牌是不安全的。使用 Moesif,我們可以安全地提取所需的信息,同時保持安全性,并且不需要對我們的代碼庫進行大量更改。使用Mask_Event_Model配置選項,我們可以屏蔽請求/響應標頭字段或請求/響應主體以保護身份驗證信息的機密性。此外,如果我們想刪除對 Moesif 的日志記錄請求和響應主體,我們可以將Log_Body配置選項設置為false。我們還可以捕獲從我們的應用程序到第三方(如 Stripe、Github)或我們自己的內部 API 的所有傳出 API 調用。

要了解您的 API 的使用方式,請捕獲 API 請求和響應,并記錄到 Moesif,以便通過 AWS Lambda 分析和實時調試您的 API 流量。有關如何集成 Moesif 的更多詳細信息,您可以從 git clone 并運行此示例應用程序GitHub

原文地址:https://www.moesif.com/blog/aws-lambda/go/How-to-Log-API-Calls-for-AWS-Lambda-Go-functions/

上一篇:

使用 Java 實施 API 分析

下一篇:

如何使用FMP API在Telegram上即時獲取加密貨幣更新
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費