Sử dụng hàm Lambda với các ứng dụng người dùng tùy chỉnh
Chúng ta có thể sử dụng hàm AWS lambda để xử lý các sự kiện được tạo bởi ứng dụng người dùng theo hai cách sau:
- Sử dụng Bảng điều khiển AWS
- Sử dụng AWS CLI
Sử dụng Bảng điều khiển AWS
Từ bảng điều khiển AWS, chúng tôi sẽ làm việc với các sự kiện và AWS Lambda. Với mục đích này, hãy truy cập bảng điều khiển AWS và tạo một hàm lambda.
Tiếp theo, hãy để chúng tôi thêm mã cho AWS Lambda -
exports.handler = (event, context, callback) => {
// TODO implement
console.log("Hello => "+ event.name);
console.log("Address =>"+ event.addr);
callback(null, 'Hello '+event.name +" and address is "+ event.addr);
};
Lưu ý rằng trong đoạn mã trên, chúng tôi đang in tên và địa chỉ bằng sự kiện.
Các chi tiết về sự kiện sẽ được cung cấp bằng cách sử dụng sự kiện thử nghiệm được tạo như sau:
Bây giờ, hãy lưu sự kiện và kiểm tra nó.
Đầu ra nhật ký tương ứng như được hiển thị ở đây -
Sử dụng AWS CLI
Chúng ta có thể gọi hàm trên bằng AWS CLI như sau:
aws lambda invoke --function-name "lambdauserevent" --log-type Tail --
payload file://C:\clioutput\input.txt C:\clioutput\outputfile.txt
Chi tiết sự kiện được cung cấp cho tải trọng và đầu ra được lưu trữ tại C:\clioutput\outputfile.txt. như sau -
input.txt
{"name":"Roy Singh", "addr":"Mumbai"}
Khi gọi Lambda bằng AWS CLI, bạn có thể thấy đầu ra như sau:
Tương tự, trong trường hợp bạn muốn kiểm tra AWS Lambda cho bất kỳ dịch vụ AWS nào khác, bạn có thể thực hiện việc này bằng cách sử dụng sự kiện kiểm tra trong bảng điều khiển AWS và AWS CLI. Dưới đây là một sự kiện mẫu cho dịch vụ SNS:
{
"Records": [{
"EventVersion": "1.0",
"EventSubscriptionArn": "arnid",
"EventSource": "aws:sns",
"Sns": {
"SignatureVersion": "1",
"Timestamp": "1970-01-01T00:00:00.000Z",
"Signature": "EXAMPLE",
"SigningCertUrl": "EXAMPLE",
"MessageId": "95df01b4-ee98-5cb9-9903-4c221d41eb5e",
"Message": "Hello from SNS!",
"MessageAttributes": {
"Test": {
"Type": "String",
"Value": "TestString"
},
"TestBinary": {
"Type": "Binary",
"Value": "TestBinary"
}
},
"Type": "Notification",
"UnsubscribeUrl": "EXAMPLE",
"TopicArn": "topicarn",
"Subject": "TestInvoke"
}
}]
}
Hãy để chúng tôi thêm sự kiện mẫu được hiển thị ở trên và kiểm tra nó như được hiển thị -
Trong AWS Lambda, mã sẽ in thông báo SNS như thể hiện trong ví dụ dưới đây -
exports.handler = (event, context, callback) => {
// TODO implement
console.log(event.Records[0].Sns.Message);
callback(null, event.Records[0].Sns.Message);};
Hãy để chúng tôi gọi tương tự bằng AWS CLI. Hãy để chúng tôi lưu sự kiện trong một tệp và sử dụng nó cho tải trọng bằng cách sử dụng lệnh được hiển thị:
aws lambda invoke --function-name "lambdauserevent" --log-type Tail --
payload file://C:\clioutput\sns.txt C:\clioutput\snsoutput.txt