Gọi một hàm lambda khi một hàm lambda khác được triển khai
Tôi có một hàm AWS lambda cung cấp các đối tượng cấu hình. Bất cứ khi nào hàm lambda này được cập nhật (tức là được triển khai lại), tôi cần phải kích hoạt một hàm lambda khác, hàm này sẽ phát hiện các thay đổi trong các đối tượng cấu hình đó và thực hiện một số hành động. Làm cách nào để theo dõi việc triển khai lambda này, tôi cần đăng ký sự kiện theo dõi đám mây nào?
Trả lời
Tôi giả sử rằng các triển khai lambda của bạn không được CodeDeploy quản lý . Nếu vậy, tôi khuyên bạn nên xem xét việc tạo bản dùng thử CloudTrial .
Sau khi thử nghiệm CT được tạo với cài đặt mặc định, nó sẽ giám sát tất cả các lệnh gọi API quản lý đến hàm lambda của bạn. Một trong số đó là UpdateFunctionCode. Do đó, bạn có thể tạo quy tắc CloudWatch cho AWS API Call via CloudTrail. Quy tắc sẽ được kích hoạt trên lệnh gọi API cập nhật chức năng.
Ví dụ về quy tắc như vậy:
{
"source": [
"aws.lambda"
],
"detail-type": [
"AWS API Call via CloudTrail"
],
"detail": {
"eventSource": [
"lambda.amazonaws.com"
],
"eventName": [
"UpdateFunctionCode"
]
}
}
Sau đó, bạn có thể kích hoạt lambda thứ hai, dựa trên sự kiện cập nhật được chụp của hàm đầu tiên.
Dựa trên đề xuất của @ Marcin, nhật ký bảng điều khiển đã sử dụng để in sự kiện. Quy tắc dưới đây đã giúp lọc một chức năng cụ thể;
{
"source": [
"aws.lambda"
],
"detail-type": [
"AWS API Call via CloudTrail"
],
"detail": {
"eventSource": [
"lambda.amazonaws.com"
],
"eventName": [
"UpdateFunctionCode20150331v2"
],
"responseElements": {
"functionName": [
"myFunction"
]
}
}
}