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”)