如何确定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”)