2016-04-05 8 views

risposta

8

L'oggetto context passato alla funzione Lambda ha un attributo chiamato invokedFunctionArn. L'ARN è del formato:

arn:aws:<service>:<region>:<account_id>:<resource>

Così si potrebbe dividere questa stringa sul carattere : e trovare la regione associata con la funzione lambda.

Nota: in java si chiama il getter getInvokedFunctionArn() dell'oggetto contesto.

+0

Questo funziona molto bene. Grazie! –

+1

La variabile di ambiente 'AWS_DEFAULT_REGION' è anche disponibile. Questo è disponibile all'esterno del gestore e non è necessario analizzarlo. Vedi la mia risposta per il codice. – sihil

+1

Si noti che questa variabile di ambiente non è presente in tutti gli ambienti di runtime. Come si mostra, funziona per Java. – garnaat

20

È possibile leggere la variabile di ambiente AWS_DEFAULT_REGION e utilizzare la funzione Regions.fromName per analizzarla in un'area utilizzabile.

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

Il vantaggio di questo rispetto all'approccio ARN analisi è che non hai bisogno di un oggetto Context che significa che è possibile utilizzarlo al di fuori della vostra funzione di gestione.

Fonte: AWS's Lambda environment variables docs.

+1

Questo è documentato in https://docs.aws.amazon.com/lambda/latest/dg/current-supported-versions.html#lambda-environment-variables – pba

+0

Grazie @pba - Ho aggiornato la mia risposta per riflettere che come fonte migliore – sihil

4

contenitori Tutti Lambda ha variabili d'ambiente impostate $ AWS_REGION

dal codice Java in Lambda.You può accedere come qui sotto

System.getenv ("AWS_REGION")

+2

per Lambda su nodejs, è "process.env.AWS_REGION" –