登录
首页 >  Golang >  Go问答

在AWS lambda函数中获取请求者的IP地址

来源:stackoverflow

时间:2024-02-15 20:54:17 384浏览 收藏

本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《在AWS lambda函数中获取请求者的IP地址》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~

问题内容

我明白,从这个问题的答案中,我可以通过这样做来获取node.js lambda函数的调用者的ip地址:

events['headers']['X-Forwarded-For']

对于 go 来说,此信息似乎应该位于 context.context 内,用于接受它的 lambda 签名。但是,查看文档,我没有看到任何提及请求标头的内容。有没有办法在 go lambda 函数中获取相同的信息?


正确答案


经过我自己的一些研究,我发现我需要将 lambda 函数放在 api 网关实例后面以获取我感兴趣的信息。完成此操作后,我可以像这样修改处理程序: p>

package main

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

func LambdaHandler(ctx context.Context, request events.APIGatewayV2HTTPRequest) (int, error) {

    // some code

    addr := request.RequestContext.HTTP.SourceIP

    // some other code

    return 0
}

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

通过这样做,api 网关将填充我需要的所有请求元数据并将其传递给我的 lambda 函数。请求正文现在包含在 request.body 中,因此我可以使用 json 反序列化或我的数据编码为的任何其他方法来提取该数据。

终于介绍完啦!小伙伴们,这篇关于《在AWS lambda函数中获取请求者的IP地址》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>