Tóm tắt
Trong quá trình phát triển Lambda, việc sử dụng SAM (Serverless Application Model) giúp cho việc dev ở môi trường local trở nên dễ dàng hơn.
Tuy nhiên, khi gọi Lambda ở local, thông thường kết quả không được lưu vào tệp theo cách thông thường mà thay vào đó hiển thị trên cửa sổ terminal (đối với Mac).
Vì vậy, tôi muốn lưu kết quả đầu ra và nhật ký của Lambda vào tệp và đây là bản ghi chú về cách thực hiện.
SAM (Serverless Application Model) là gì?
SAM (Serverless Application Model) là một framework mã nguồn mở rất hữu ích trong việc phát triển Lambda.
Việc sử dụng SAM giúp đơn giản hóa quá trình dev ở môi trường local đáng kể. Điều này giúp phát triển Lambda nhanh chóng và hiệu quả hơn.
Còn đây là Doccoment về SAM:
Khi muốn lưu kết quả đầu ra và nhật ký vào tệp
Như dưới đây, khi bạn chạy Lambda ở local bằng SAM CLI mà không chỉ định bất kỳ tùy chọn nào, kết quả không được lưu vào tệp.
$ sam local invoke MyFunctionName
...
{"statusCode": 200, "body": "{\"message\": \"hello world\"}"}
Do đó, bạn có thể sử dụng tùy chọn để lưu kết quả đầu ra và nhật ký vào tệp. Sau đây là cách thực hiện:
Đầu tiên, bạn chuẩn bị một hàm Lambda đơn giản.
def handler(event, context):
print("log")
return "hello world"
Sau đó, lưu kết quả đầu ra của hàm Lambda, tức là “hello world”, vào tệp.
sam local invoke 1> stdout.log
Tương tự, bạn cũng có thể lưu nhật ký vào tệp.
sam local invoke 2> stderr.log
Bằng cách sử dụng các tùy chọn này trong SAM CLI, bạn có thể lưu kết quả đầu ra và nhật ký của Lambda vào tệp. Điều này giúp bạn dễ dàng kiểm tra kết quả và nhật ký sau này.
Tham khảo:
Bình luận