登录
首页 >  Golang >  Go问答

如何在 Go 函数中获取 AWS Lambda 别名?

来源:stackoverflow

时间:2024-04-30 12:24:39 212浏览 收藏

Golang不知道大家是否熟悉?今天我将给大家介绍《如何在 Go 函数中获取 AWS Lambda 别名?》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能积极评论指出,谢谢!希望我们能一起加油进步!

问题内容

我想在主函数开始执行之前运行一些 lambda 别名特定的代码。目前看起来像这样

func init() {
 // Trying to get Lambda function alias here
}

func main() {
 adapter = chiproxy.New(r)
 lambda.start(lambdaHandler)
}

func lambdaHandler(ctx context.Context, req events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {
 c, err := adapter.ProxyWithContext(ctx, req)
 return c, err
}

lambdahandler 中的 req 有我需要的信息,但我不知道如何在 init() 中获取它?


正确答案


我认为在函数传递请求之前您无法获取别名。 lambda 自动提供 a number of environment variables,但 alias 不是其中之一。

这可能是因为别名只是指向版本的指针;您可以有许多别名指向同一版本,但可以为所有别名初始化相同的函数运行时。因此在初始化时提供任何特定的别名是没有意义的。

但是函数的运行时并不特定于别名,而是特定于版本。事实上,您可以在实例化版本后创建一个新别名,并且可以使用相同的缓存运行时。

我想我可以理解为什么您可能希望让调用者使用不同的别名调用相同的函数,但我不确定这将是一个低摩擦路径来实现您想要的别名。考虑一下您是否可能想要创建一堆不同函数 - 它们可能具有相同的代码库,并让 init 选择适当的处理程序或根据函数名称执行其他初始化而不是它的别名

理论要掌握,实操不能落!以上关于《如何在 Go 函数中获取 AWS Lambda 别名?》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

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