SQS Lambda без сервера: сообщение Sqs не используется - PullRequest
0 голосов
/ 16 января 2019

Я развернул лямбду Python Post API с использованием Serverless Framework.

Деталь кода, как показано ниже:

app.py

from flask import Flask, jsonify, request

app = Flask(__name__)

@app.route('/process', methods=['POST'])
def process():
    content = request.json
    print content
    return jsonify(content)

if __name__ == "__main__":
    app.run()

serverless.yml

service: my-service
plugins:
  - serverless-python-requirements
  - serverless-wsgi
custom:
  wsgi:
    app: app.app
    packRequirements: false
  pythonRequirements:
    dockerizePip: false
package:
  exclude:
    - node_modules/**
    - venv/**
provider:
  name: aws
  runtime: python2.7
  stage: dev
  region: eu-west-1

functions:
  app:
    handler: wsgi.handler
    events:
      - http: ANY /
      - http: 'ANY {proxy+}'

Я настроил SQS для запуска лямбды. Я отправляю сообщение SQS, лямбда срабатывает (я проверил это из CloudWatch), но сообщение SQS застряло в полете. Похоже, что SQS не может быть поглощен лямбдой.

Любое предложение приветствуется

**** ****** UPDATE 1015 *

После тщательной проверки CloudWatch я обнаружил некоторые исключения

u'headers': KeyError
Traceback (most recent call last):
File "/var/task/wsgi.py", line 100, in handler
return serverless_wsgi.handle_request(wsgi_app, event, context)
File "/var/task/serverless_wsgi.py", line 73, in handle_request
headers = Headers(event[u"headers"])
KeyError: u'headers'
...