#amazon-web-services #sam
Вопрос:
Я вызываю функцию AWS Lambda локально с помощью aws-sam cli
команды, и я установил Timeout property to 900 seconds
, но все равно она отображается function timeout error
. Однако, когда я вызывал эту функцию lambda handler
в консоли AWS, этих 900 секунд было достаточно для вывода.
Пожалуйста, помогите мне найти решение этой проблемы и каков максимальный предел, на который я могу потратить время ожидания?
Комментарии:
1. 900-е-это максимум. Похоже, лямбда-неподходящий инструмент для вашего варианта использования.
2. Мы ничего не можем сделать. 900 секунд-это максимальная продолжительность. Вам нужно будет отладить и профилировать свой код, чтобы понять, что занимает слишком много времени и почему и т. Д.
3. Я бы рекомендовал обучать ваших моделей с помощью Sagemaker . Лямбда — это неподходящий инструмент для этого.
4. Да, я обучал модель на sagemaker. Я использую лямбду только для целей развертывания. Кроме того, моя модель обеспечивает вывод только на GPU, поэтому есть ли возможность включить GPU в функцию lambda?
5. Нет, вместо этого используйте экземпляры EC2.
Ответ №1:
Функции AWS Lambda (по состоянию на июль 2021 года) могут работать не более 15 минут (что составляет 900 секунд).
Некоторые люди делают «интересные» вещи, такие как:
- Вызовите другую лямбда-функцию, чтобы продолжить работу, или
- Используйте пошаговые функции AWS для организации нескольких функций AWS Lambda
Тем не менее, может показаться, что ваш вариант использования-это машинное обучение, которому не нравится, когда операции останавливаются в середине обработки. Поэтому AWS Lambda не подходит для вашего варианта использования.
Вместо этого я бы рекомендовал использовать спотовые экземпляры Amazon EC2, которые, скорее всего, будут дешевле для вашего варианта использования. Хотя спотовые экземпляры иногда могут быть прекращены, ваш вариант использования, вероятно, может справиться с необходимостью повторного запуска некоторой обработки, если это произойдет.