저번 시간에는 Queue를 만들고, 그 Queue에 메세지를 push하는 것까지 했습니다.
이제 Queue에 쌓인 메세지에 반응하는 Lambda Function을 만들어봅시다.
app.py
에 다음 코드를 추가합시다.
...
@app.on_sqs_message(queue='my-queue', batch_size=1)
def handle_sqs_message(event):
for record in event:
app.log.debug("Received message with contents: %s", record.body)
return {"event": str(event)}
...
@app.on_sqs_message(queue='my-queue', batch_size=1)는 다음을 뜻합니다.
my-queue
라는 이름을 가진 메세지 큐를 구독하겠다. 즉, my-queue
에 변화가 생길 때마다 이 함수를 호출하겠다는 뜻입니다.batch_size
를 1로, 즉 한번에 하나씩의 메세지를 가져오겠다는 뜻입니다.즉, 위의 함수가 뜻하는 것은
my-queue
에 메세지 1개가 push될 때마다 handle_sqs_message
가 호출됩니다.event
변수에 저장됩니다.이대로 chalice deploy
하면 됩니다.
오류가 발생할 경우에는,
config.json
에"lambda_timeout": 30
을 추가하면 오류가 발생하지 않습니다.
그러면 이제 튜토리얼 2에서 만든 함수를 호출하면, 여기서 만든 함수가 호출됩니다.
다음 글에서는 실제로 우리가 구현한 함수들을 이용해, 사용자가 어떤 함수에 접근을 하면 이메일이 발송되는 서비스를 실제로 구현해보도록 하겠습니다.