chalice 튜토리얼 (SQS + Lambda) Part III/III

아카·2021년 2월 21일
0

AWS

목록 보기
5/6

저번 튜토리얼 보기

저번 시간에는 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에서 만든 함수를 호출하면, 여기서 만든 함수가 호출됩니다.

다음 글에서는 실제로 우리가 구현한 함수들을 이용해, 사용자가 어떤 함수에 접근을 하면 이메일이 발송되는 서비스를 실제로 구현해보도록 하겠습니다.

profile
코딩한량.

0개의 댓글