Ho la seguente funzione Lambda configurata in AWS Lambda:Come ottenere il nome dello stadio in una funzione AWS Lambda legata al gateway API
var AWS = require('aws-sdk');
var DOC = require('dynamodb-doc');
var dynamo = new DOC.DynamoDB();
exports.handler = function(event, context) {
var item = { id: 123,
foo: "bar"};
var cb = function(err, data) {
if(err) {
console.log(err);
context.fail('unable to update hit at this time' + err);
} else {
console.log(data);
context.done(null, data);
}
};
// This doesn't work. How do I get current stage ?
tableName = 'my_dynamo_table_' + stage;
dynamo.putItem({TableName:tableName, Item:item}, cb);
};
Tutto funziona come previsto (I inserire un elemento in DynamoDB ogni ora lo chiamo).
Desidero che il nome della tabella dinamo dipenda dallo stadio in cui viene distribuita la lambda.
Il mio tavolo sarebbe:
my_dynamo_table_staging
per la fasestaging
my_dynamo_table_prod
per la faseprod
Tuttavia, come faccio ad ottenere il nome della fase corrente all'interno del lambda?
Edit: Il mio Lambda viene invocato da HTTP tramite un endpoint definito con gateway API
** Aggiornamento **: AWS ha recentemente lanciato una nuova funzionalità denominata [Variabili d'ambiente e Serverless Application Model (SAM)] (https://aws.amazon.com/blogs/aws/new-for-aws-lambda-environment-variables-and-serverless-application-model/). È un modo integrato per fornire variabili di ambiente alle funzioni Lambda. ([discussione qui] (https://news.ycombinator.com/item?id=12999767)) –