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

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

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

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

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

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

来源: AWS的Lambda环境变量docs 。

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

arn:aws::::

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

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

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

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

System.getenv( “AWS_REGION”)