Regions.getCurrentRegion()
從AWS Lambda函數內返回null。似乎在AWS Lambda函數中不受支持。是否有另一種方法來確定lambda函數運行在哪個區域?如何確定AWS Lambda函數中的當前區域?
注意:AWS Lambda函數是用Java編寫的。
Regions.getCurrentRegion()
從AWS Lambda函數內返回null。似乎在AWS Lambda函數中不受支持。是否有另一種方法來確定lambda函數運行在哪個區域?如何確定AWS Lambda函數中的當前區域?
注意:AWS Lambda函數是用Java編寫的。
傳遞給您的Lambda函數的context
對象具有一個名爲invokedFunctionArn
的屬性。該ARN的格式爲:
arn:aws:<service>:<region>:<account_id>:<resource>
所以,你可能分裂的:
字符此字符串並找到拉姆達功能相關的區域。
注意:在java中,您會調用getInvokedFunctionArn()
上下文對象的getter。
您可以閱讀AWS_DEFAULT_REGION
環境變量,並使用Regions.fromName
函數將其解析爲可用區域。
Regions.fromName(System.getenv("AWS_DEFAULT_REGION"))
的這種過度的ARN分析方法的優點是,你並不需要一個Context對象,這意味着你可以使用它你的處理函數之外。
所有拉姆達容器具有環境變量設置Lambda.You $ AWS_REGION
從Java代碼可以訪問它,如下
System.getenv( 「AWS_REGION」)
對於nodejs上的lambda,它是「process.env.AWS_REGION」 –
這工作得很好。謝謝! –
'AWS_DEFAULT_REGION'環境變量也可用。這可以在處理程序外部使用,並且不需要解析它。查看我的代碼答案。 – sihil
請注意,此環境變量不存在於所有運行時環境中。正如你所展示的那樣,它對Java有用。 – garnaat