如何确定AWS Lambda函数中的当前区域?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何确定AWS Lambda函数中的当前区域?相关的知识,希望对你有一定的参考价值。

Regions.getCurrentRegion()从AWS Lambda函数中返回null。似乎AWS Lambda函数不支持Regions.getCurrentRegion()。有没有另一种方法来确定lambda函数运行的区域?

注意:AWS Lambda函数是用Java编写的。

答案

您可以阅读AWS_REGION环境变量并使用Regions.fromName函数将其解析为可用区域。

Regions.fromName(System.getenv("AWS_REGION"))

这相对于ARN解析方法的优点是您不需要Context对象,这意味着您可以在处理函数之外使用它。

资料来源:AWS's Lambda environment variables docs

另一答案

所有Lambda容器都具有设置$AWS_REGION的环境变量

来自Lambda中的Java代码。您可以按如下方式访问它

System.getenv("AWS_REGION")
另一答案

传递给Lambda函数的context对象具有一个名为invokedFunctionArn的属性。 ARN的格式如下:

arn:aws:<service>:<region>:<account_id>:<resource>

因此,您可以在:字符上拆分此字符串,并找到与Lambda函数关联的区域。

注意:在java中,您将调用上下文对象的getInvokedFunctionArn() getter。

另一答案

1)您可以使用环境变量并将其作为

System.getenv("AWS_REGION")

以下是环境变量的列表,这些变量是AWS Lambda执行环境的一部分,可供Lambda函数使用。下表列出了AWS Lambda保留哪些不可更改的内容,以及创建Lambda函数时可以设置的内容。有关在Lambda函数中使用环境变量的更多信息

https://docs.aws.amazon.com/lambda/latest/dg/lambda-environment-variables.html

2)您可以阅读AWS_DEFAULT_REGION环境变量

Regions.fromName(System.getenv("AWS_DEFAULT_REGION"))

以上是关于如何确定AWS Lambda函数中的当前区域?的主要内容,如果未能解决你的问题,请参考以下文章

使用nodejs中的AWS Lambda函数上传音频文件

AWS同账户不同地域资源访问(ses到lambda)

aws lambda 函数可以向专用网​​络中的端点发布帖子吗?

C# 使用 AWS lambda 时,我可以确定函数中的析构函数会被执行吗?

AWS Lex V2 - DailogHook 验证

如何在AWS Lambda中调整Java Garbage收集器