Если я пишу файл на диск внутри лямбда-функции, что с ним происходит после того, как я закончил функцию лямбда. Должен ли я явно указывать это, чтобы удалить, или будет автоматически удалять все после завершения функции?Что происходит с оставленными файлами, созданными функцией лямбда
ответ
Функции Lambda, которые вы выполняете на AWS, выполняются в изолированном пространстве, называемом контейнером, который предоставляется только вам и этой функции. AWS не может немедленно очистить этот контейнер для ускорения последующих действий вашей лямбда-функции (поскольку контейнер уже подготовлен).
Когда ваша функция лямбда не выполняется в течение «количества времени», контейнер будет очищен AWS. Если вы публикуете ревизию своего кода, старые контейнеры очищаются, а новый - для вашей функции Lambda при следующем выполнении.
Важно помнить, что упоминаемые вами файлы и любые переменные, которые вы объявляете вне кода обработчика, по-прежнему будут присутствовать при последующих исполнениях. То же самое касается ваших файлов/tmp.
Зная, что это так, вы также должны подумать о том, чтобы перепроектировать ваш код, чтобы обеспечить чистый выход (даже при условии отказа), если «оставленные» из прошлых исполнений могут привести к вам конфликт.
Также важно убедиться, что вы никогда не предполагаете, что контейнер будет существовать при следующем выполнении.
Вы можете проверить некоторые официальные документы по этому вопросу здесь: http://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html
Я надеюсь, что это помогает!
Это очень помогает, спасибо! – Jon
Пока экземпляр контейнера Lambda все еще «жив», все, что вы пишете на диск, должно быть доступно. Как правило, контейнеры не «живут» более нескольких минут. – idbehold
Хорошо. Еще раз хочу убедиться, что я не буду наказан за запись на диск и не удалю явно то, что пишу, прежде чем закрывать экземпляр контейнера. Хотя это беспокойство кажется немым в ретроспективе – Jon