2017-02-14 3 views
2

Я новичок в функциях AWS Lambda. Я использовал скрипт в AWS CLI, чтобы создать aws-функцию в Node.js. Этот скрипт имеет конфигурационный файл config.json. После создания функции я могу видеть код на Lambda AWS Console, и здесь возникает мое сомнение. Код имеет следующую строку: var config = require ('./ config.json'); Итак, где этот файл «./config.json» фактически хранится. Могу ли я редактировать содержимое config.json после развертывания лямбда-функции? Спасибо заранее.Где хранятся библиотеки для Лямбда-функций AWS?

ответ

4

Итак, где же находится файл ./config.json?

Его следует хранить в том же каталоге, что и ваша функция обработчика Lambda. Они должны быть объединены в zip-файл и развернуты в AWS. Если вы не разложили его таким образом, то этот файл в настоящее время не существует.

Если ваша функция Lambda состоит из нескольких файлов, вам придется связывать ваши файлы и deploy it to AWS as a zip file.

Вы не можете редактировать источник внешних библиотек/файлов через веб-консоль AWS Lambda. Вы можете отредактировать источник обработчика функции Lambda через веб-консоль.

+0

Итак, в этом случае я должен отредактировать config.json локально, а затем повторно развернуть эту функцию. Я прав ? – blackjack

+0

Да, если вы разворачиваете эту функцию в виде пакета zipped для развертывания, содержащего файл 'config.json'. –

1

Ваши файлы помещаются в каталог, указанный в переменной окружения LAMBDA_TASK_ROOT. Вы можете прочитать это через nodejs как process.env.LAMBDA_TASK_ROOT.

Код, который вы развертываете, включая файл config.json, доступен только для чтения, но если вы хотите изменить файлы на сервере, вы можете сделать это под /tmp. Разумеется, эти изменения будут действительны только для этого единственного контейнера, для его жизненного цикла (4m30s - 4 часа). По умолчанию Lambda будет автоматически масштабироваться вверх и вниз между 0 и 100 контейнерами.

Глобальные переменные также сохраняются во всех вызовах, поэтому, если вы прочитали config.json в глобальной переменной, затем измените эту переменную, эти изменения будут сохраняться на протяжении всего жизненного цикла базовых контейнеров. Например, это может быть полезно для кэширования информации между вызовами.

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