время формирования облака истекло без инициализации пользовательского ресурса - PullRequest
0 голосов
/ 07 июня 2018

У меня есть простой шаблон для тестирования связи с лямбдой, называемый пользовательским ресурсом.Что-то вроде:

{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Resources": {
    "test": {
      "Type": "Custom::test",
      "Properties": {
        "ServiceToken": "arn:aws:lambda:xxxxx:mylambda",
        "Input": "some input"
      }
    }
  },
  "Outputs": {
    "debug": {
      "Description": "debug ami id",
      "Value": { "Fn::GetAtt": [ "test", "output" ]}
    }
  }
}

Проблема в том, что этот CFT иногда работает нормально, а иногда и время ожидания CREATE_IN_PROGRESS, не достигая стадии «Создание ресурса инициировано» (то есть без фактического запуска лямбды).Есть ли способ уменьшить частоту отказов?Прямо сейчас это близко к 50%: (

Ответы [ 2 ]

0 голосов
/ 15 июня 2018

Хорошо, так как Лоран предположил, что было проблемой с моей лямбда-функцией.Было условие, при котором он выходил без сохранения результата в S3 (почему облачная информация h * не может просто прочитать лямбда-вывод?).И «Создание ресурса инициировано», скорее всего, является индикатором того, что данные сохраняются на S3, а не на лямбде.Я исправил условие выхода, увеличил время ожидания, и функция работает как брелок.

Как насчет отсутствующих записей журнала, которые вы спрашиваете?Ну, это была просто моя ошибка.Поскольку CloudWatch не позволяет устанавливать фильтр журнала на будущее или динамическое «сейчас», после каждой попытки мне нужно щелкнуть фильтр и изменить его, чтобы показать последние записи (еще один момент, когда aws может улучшить взаимодействие с пользователем).Я пропустил эту деталь, и облачные часы просто не показывали мне последние журналы (глупый я! Извините)

0 голосов
/ 07 июня 2018

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

Стоит отметить, что за последние 3 года, которые я широко использовал Пользовательские ресурсы , у меня никогда не было Lambda , не запускающегося (по крайней мере, врегионы, которые я использую: us-east-1 , ca-central-1 , us-west-2 ).

...