Regions.getCurrentRegion()
renvoie null à partir d'une fonction AWS Lambda. Il semble que Regions.getCurrentRegion()
ne soit pas pris en charge à partir d'une fonction AWS Lambda. Existe-t-il un autre moyen de déterminer dans quelle région la fonction lambda s'exécute?
REMARQUE: la fonction AWS Lambda est écrite en Java.
Vous pouvez lire le AWS_REGION
variable d'environnement et utilisez le Regions.fromName
fonction pour analyser cela dans une région utilisable.
Regions.fromName(System.getenv("AWS_REGION"))
L'avantage de cela sur l'approche d'analyse ARN est que vous n'avez pas besoin d'un objet Context ce qui signifie que vous pouvez l'utiliser en dehors de votre fonction de gestionnaire.
Source: documentation des variables d'environnement Lambda d'AWS .
Tous les conteneurs Lambda ont des variables d'environnement définies $AWS_REGION
De Java Code dans Lambda. Vous pouvez y accéder comme ci-dessous
System.getenv("AWS_REGION")
L'objet context
transmis à votre fonction Lambda a un attribut appelé invokedFunctionArn
. L'ARN est au format:
arn:aws:<service>:<region>:<account_id>:<resource>
Vous pouvez donc fractionner cette chaîne sur le caractère :
Et trouver la région associée à la fonction Lambda.
Remarque: Dans Java vous appelez le getter getInvokedFunctionArn()
de l'objet contextuel.
1) Vous pouvez utiliser la variable d'environnement et y accéder en tant que
System.getenv("AWS_REGION")
Voici une liste des variables d'environnement qui font partie de l'environnement d'exécution AWS Lambda et sont mises à la disposition des fonctions Lambda. Le tableau ci-dessous indique ceux qui sont réservés par AWS Lambda et ne peuvent pas être modifiés, ainsi que ceux que vous pouvez définir lors de la création de votre fonction Lambda. Pour plus d'informations sur l'utilisation des variables d'environnement avec votre fonction Lambda
https://docs.aws.Amazon.com/lambda/latest/dg/lambda-environment-variables.html
2) Vous pouvez lire la variable d'environnement AWS_DEFAULT_REGION
Regions.fromName(System.getenv("AWS_DEFAULT_REGION"))