Поймать событие динамического потока локально с помощью бессерверного автономного режима

#serverless-framework

#бессерверный фреймворк

Вопрос:

Я пытаюсь отладить в Visual Studio код обработчика событий динамического потока. Могу ли я подключить свою локальную бессерверную автономную программу к потокам развернутого DynamoBD? Я перепробовал много способов, но мой обработчик не был запущен .

На данный момент я использую бессерверные-автономные-dynamodb-потоки, и я добавил:

 Plugins
- serverless-offline-dynamodb-streams 
- serverless-offline
  

И я подключил свою функцию к удаленному ресурсу (arn):

 functions:
  myKinesisHandler:
    handler: handler.compute
    events:
      - stream:
          enabled: true
          type: dynamodb
          arn: arn:aws:dynamodb:eu-west-1:XXXXXX:table/myStream/stream/2018-07-02T19:48:31.121
          batchSize: 10
          startingPosition: TRIM_HORIZON
  

И добавлена следующая пользовательская конфигурация :

 custom:
  serverless-offline-dynamodb-streams:
    apiVersion: '2013-12-02'
    endpoint: http://0.0.0.0:8000
    region: eu-west-1
    accessKeyId: root
    secretAccessKey: root
    skipCacheInvalidation: false
    readInterval: 500
  

Я запускаю свое приложение с:

 sls offline 
  

Но все же мне не удалось запустить мой обработчик.. Есть идеи о том, что я делаю не так?

Ответ №1:

К сожалению, нет способа передать событие потока DDB на ваш локальный бессерверный автономный сервер. AWS полностью контролирует эту интеграцию.

Иногда, когда я сталкиваюсь с этой проблемой, я:

  1. Убедитесь, что лямбда-выражение правильно запускается событием потока DDB
  2. Если это так, скопируйте событие потока, которое я ожидал увидеть, и сохраните его как файл JSON
  3. Используется sls invoke local --data "{yourJSON}" для ручного запуска вашей лямбда-функции (документы здесь).

Оттуда вы должны иметь возможность отлаживать.