Invoke Lambda Function from AWS Aurora MySQL
Cách hoạt động và use case:
1 use case đơn giản có thể gặp:
Cơ sở dữ liệu Aurora MySQL với bảng user. Có một trigger MySQL được liên kết với bảng user. Trigger này sẽ được kích hoạt khi hành động DELETE được thực thi trên table. Bên trong trigger, chúng ta dùng lambda_sync để gọi Lambda function. Sau đó, Lambda function sẽ gửi thông báo SNS.
Các bước cần làm:
Tạo VPC
Tạo Lambda VPC endpoint cho VPC: Vì Lambda luôn chạy trong VPC của Lambda nên chúng ta buộc phải thông qua endpoint hoặc NAT thì mới có thể connect được từ trong RDS khi gọi async (Note: Dù đưa Lambda vào cùng VPC, cũng không connect được!).
Tạo sg cho Lambda function và RDS. Lưu ý outbound của RDS phải mở cổng 443, và nếu Lambda đưa vào trong VPC (có sg) thì phải mở inbound cho
Tạo AWS Lambda function
Tạo chủ đề SNS
Tạo IAM role cho cụm Aurora MySQL DB
Liên kết IAM role với cụm Aurora MySQL DB (required)
Tạo cụm cơ sở dữ liệu Aurora MySQL
Thiết lập phiên bản EC2 để kết nối với cơ sở dữ liệu
Tạo cơ sở dữ liệu, bảng và trình trigger
Kiểm tra: Test thử:
SELECT lambda_async(
'arn:aws:lambda:us-east-1:123456789012:function:BasicTestLambda',
'{"operation": "ping"}');
Docs hướng dẫn: