Заставьте облачную информацию ждать, пока объект не будет создан в s3 - PullRequest
1 голос
/ 07 мая 2020

Я пробую сценарий, в котором формирование облака должно ждать до тех пор, пока объект не будет создан в указанном сегменте (где создание объекта происходит вне области формирования облака внешним приложением).

Я попытался включить уведомления о событиях корзины и подключить лямбда-функцию (поэтому всякий раз, когда объект создается в корзине, срабатывает лямбда-функция). Но я не уверен, как заставить образование облака ждать, пока не будет вызвано выполнение этой привязанной лямбда-функции.

Ответы [ 3 ]

0 голосов
/ 07 мая 2020

Вы можете попробовать использовать ресурсы Custom CloudFormation: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-custom-resources-sns.html. Для этого потребуется отправить http-запрос на URL-адрес S3, предоставленный через уведомление SNS.

Вы должны создать файл на основе уведомления SNS (используя лямбда?), А затем отправить запрос обратно в облачную информацию.

0 голосов
/ 07 мая 2020

Думаю, должно работать следующее:

  1. Create WaitConditionHandle
  2. Создайте лямбда-функцию и передайте !Ref дескриптору условия ожидания, созданному как переменная окружения. Когда вы !Ref ожидаете условие, вы получаете URL-адрес. У лямбда только одна задача - вызывать URL-адрес при вызове.
  3. Создайте WaitCondition и свяжите его с дескриптором ожидания, созданным на шаге 1.
  4. Добавьте атрибут DependsOn к WaitCondition, чтобы условие создается после последнего ресурса, который будет создан до того, как CFN остановится и подождет.
  5. Используйте уведомление S3 (как вы уже писали в своем вопросе), чтобы вызвать лямбда, созданную на шаге 2, когда вы получите свой объект. Lambda вызывается, вызывает URL-адрес, условия ожидания прекращают ожидание, и CFN должен продолжаться.

В приведенном выше примере нет циклов или длительных процессов, таких как вызов лямбды каждые 2 минуты.

Максимальное время ожидания для WaitCondition составляет 12 часов. Вы должны отрегулировать его, например, на 40 минут или 1 час.

0 голосов
/ 07 мая 2020

Попробуйте использовать условие ожидания, чтобы решить эту проблему: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html

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