Como se pode determinar a região atual dentro de uma function do AWS Lambda?

Regions.getCurrentRegion() retorna nulo de dentro de uma function do AWS Lambda. Parece que Regions.getCurrentRegion() não é compatível com uma function do AWS Lambda. Existe uma maneira alternativa de determinar em qual região a function lambda está sendo executada?

NOTA: A function do AWS Lambda é escrita em Java.

Você pode ler a variável de ambiente AWS_DEFAULT_REGION e usar a function Regions.fromName para analisar isso em uma região utilizável.

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

A vantagem disso na abordagem de análise de ARN é que você não precisa de um object Context, o que significa que você pode usá-lo fora de sua function de manipulador.

Fonte: docs de variables ​​de ambiente do AWS Lambda .

O object de context que é passado para sua function do Lambda possui um atributo chamado invokedFunctionArn . O ARN é do formato:

arn:aws::::

Então você pode dividir esta string no caractere : e encontrar a região associada à function Lambda.

Nota: Em java, você chamaria o getInvokedFunctionArn() getter do object de contexto.

Todos os contêineres do Lambda têm conjunto de variables ​​de ambiente $ AWS_REGION

De código Java em Lambda.Você pode acessá-lo como abaixo

System.getenv (“AWS_REGION”)