Обновите переменную окружения лямбда-функции AWS в python - PullRequest
0 голосов
/ 23 октября 2019

Я хочу обновить переменную среды из функции AWS Lambda. Я пробовал этот код:

import os


def lambda_handler(event, context):

    call = os.environ["last_call"]
    print (call)
    os.environ["last_call"] = "last update now "
    print (os.environ["last_call"])

Когда я переназначаю os.environ["last_call"] = "last update now", я не вижу обновления переменной среды.

Я знаю, что что-то упустил. Подскажите, пожалуйста, как мне обновлять значение каждый раз, когда я вызываю функцию Lambda?

Ответы [ 2 ]

1 голос
/ 24 октября 2019

Может показаться, что ваша цель - сохранить некоторую информацию, которая будет доступна для лямбда-функции при следующем ее выполнении.

Это может (в основном) быть выполнено просто с помощью globalпеременная , а не переменная окружения. Просто определите переменную вне функции-обработчика, и она будет доступна во время будущего выполнения функции.

Однако:

  • Если функция выполняется часто, AWS Lambda может создать несколько контейнеров . Глобальная переменная будет работать только в одном из контейнеров, поэтому значение будет доступно не для всех функций.
  • Если функция не используется в течение некоторого периода времени, контейнер может быть уничтожен . Это приведет к потере глобальной переменной.

Использование переменной среды приведет к тем же проблемам.

Правильный способ сделать информацию доступной для будущих исполненийЛямбда-функция заключается в использовании некоторой формы службы хранения , такой как DynamoDB, Amazon S3 или база данных.

0 голосов
/ 23 октября 2019

С os.putenv(key, value), но с осторожностью:

Если платформа поддерживает функцию putenv(), это отображение можно использовать для измененияокружающей среды, а также запросить среду.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...