Я развернул лямбду 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'