Период ожидания создания / удаления ресурса Cloudformation - PullRequest
0 голосов
/ 15 мая 2018

В этот урок написан:

Установите разумные периоды времени ожидания и сообщите, когда они будут превышены

Если операция не выполняется в течение определенного периода времени, функция вызывает исключение, и ответ не отправляется CloudFormation.

Чтобы избежать этого, убедитесь, что значение тайм-аута для ваших лямбда-функций установлен достаточно высоко, чтобы обрабатывать изменения во времени обработки и сети условия. Также рассмотрите возможность установки таймера в вашей функции для ответа в CloudFormation с ошибкой, когда функция истекает; это может помочь предотвратить тайм-ауты функции от создания пользовательского ресурса таймауты и задержки.

Какое точное решение стоит за этим? Должен ли я реализовать тайм-аут на AWS Lambda сторона или я могу просто установить период ожидания в свойствах CustomResource?

1 Ответ

0 голосов
/ 16 мая 2018

AFAIK, вы не можете установить тайм-аут на CustomResource. О чем они пишут в вашей цитате, так это о том, что вы должны сообщить Cloudformation непосредственно перед тем, как истечет срок действия вашей функции.

Вы узнаете об оставшемся времени, запрашивая объект контекста, который является вторым параметром в вашей функции-обработчике. Например, в Python :

def handler(event, context):
    print("Time left:", context.get_remaining_time_in_millis())

Вы увидите, что вызов метода похож на других языках, например, Java :

context.getRemainingTimeInMillis()

Таким образом, вы можете запросить оставшееся время в цикле и, когда это значение становится низким (например, 3000 мс), проверить, не создан ли еще ваш ресурс, и отправить сигнал об ошибке в Cloudformation.

Во-вторых, увеличьте время ожидания для своей функции, как они рекомендовали.

...