2016-05-15 5 views
1

У меня установлена ​​функция Amazon Lambda, которая имеет различные псевдонимы для разработки, тестирования и производства и шлюза API, который имеет несколько этапов, указывающих на соответствующие версии псевдонимов.Amazon Lambda - Конфигурация с индивидуальным адресом

Теперь я хочу получить доступ к таблице базы данных, и, очевидно, каждый Alias ​​должен получить доступ к своей собственной таблице. В документации я не смог найти возможность передать конфигурацию Alias ​​для моей функции. Есть ли лучшая практика для этого?

ответ

1

Установка Stage Variables в API Gateway и добавьте что-то вроде следующего к шаблону сопоставления, чтобы передать эти переменные этапа в функции Lambda.

"stage-variables" : { 
    #foreach($key in $stageVariables.keySet()) 
     "$key" : "$util.escapeJavaScript($stageVariables.get($key))" 
     #if($foreach.hasNext),#end 
    #end 
    } 

Функции лямбда могут затем вытаскивать из объекта события такие вещи, как имена таблиц DB.

+0

Это звучит как хорошее решение для функций, которые открываются через шлюз API. Существует ли аналогичная передовая практика для функций, которые запускаются S3 или SNS? – Matthias

+0

К сожалению, это сложнее. Вы можете использовать таблицу DynamoDB для хранения настроек, специфичных для разных псевдонимов функций. Затем вы можете проверить объект 'context', чтобы получить значение' functionVersion', а затем выполнить поиск настроек из DynamoDB. –

+0

Похоже, вы также можете получить псевдоним из 'process.env.AWS_LAMBDA_FUNCTION_VERSION' –

Смежные вопросы