Пользовательский ресурс с лямбда-поддержкой - PullRequest
0 голосов
/ 01 марта 2019

Я пытаюсь создать пользовательский ресурс в CFT, который будет запускать лямбда-функцию при создании указанного шаблона.Я просмотрел документацию AWS для пользовательских ресурсов с лямбда-поддержкой, но я все еще немного запутался в этой теме, поскольку документация не была особенно многословной.Я включил JSON для своего пользовательского ресурса, и мне просто интересно, нужно ли мне что-то еще сделать, чтобы этот ресурс вызывал функцию при создании шаблона.

"LambdaRunner": {
            "Type": "AWS::CloudFormation::CustomResource",
            "Properties": {
                "ServiceToken": {
                    "Fn::GetAtt": [
                        "DistroDBPop",
                        "Arn"
                    ]
                }
            }

Примечание. Функция Lambda, на которую она ссылается, берет CSV из ресурса S3 и использует эту информацию для создания и заполнения таблицы DynamoDB.

1 Ответ

0 голосов
/ 02 марта 2019

Этого достаточно для того, чтобы вызывал функцию, предполагая, что шаблон CloudFormation содержит функцию Lambda с именем DistroDBPop.

Если вы посмотрите на Пошаговое руководство. Взгляд вверхИдентификаторы образов машин Amazon - AWS CloudFormation , вы также увидите, что необходимы также несколько других элементов:

  • Функция Lambda
  • Роль для функции Lambda
  • Специальный обратный вызов в функции Lambda, чтобы указать, что она завершила

Есть хороший пример лямбда-кода по адресу: stelligent / cloudformation-custom-resources - GitHub

Существует также модуль cfnresponse, который облегчает обратный вызов в конце функции Lambda.См. Код лямбда-функции AWS - AWS CloudFormation

Наконец, убедитесь, что функция Lambda понимает, что она может быть вызвана при создании, обновлении и удалении стека, поэтому может потребоваться:игнорировать 'определенные события, если они не имеют отношения.

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