- AWS Lambda 教程
- AWS Lambda - 主页
- AWS Lambda - 概述
- AWS Lambda - 环境设置
- AWS Lambda - 简介
- 构建 Lambda 函数
- NODEJS 中的函数
- Java 中的函数
- Python 中的函数
- Go 中的函数
- C# 中的函数
- 配置 Lambda 函数
- 使用 AWS 控制台创建和部署
- 使用 AWS CLI 创建和部署
- 使用无服务器框架创建和部署
- AWS 执行和调用 Lambda 函数
- 删除 Lambda 函数
- 使用 Amazon API Gateway
- 使用 Amazon S3 的 Lambda 函数
- 使用 Amazon DynamoDB 的 Lambda 函数
- 具有预定事件的 Lambda 函数
- 带有 Amazon SNS 的 Lambda 函数
- 带有 CloudTrail 的 Lambda 函数
- 使用 Amazon Kinesis 的 Lambda 函数
- 具有自定义用户应用程序的 Lambda 函数
- AWS Lambda@Edge 与 CloudFront
- 使用 Cloudwatch 进行监控和故障排除
- AWS Lambda - 其他示例
- AWS Lambda 有用资源
- AWS Lambda - 快速指南
- AWS Lambda - 有用的资源
- AWS Lambda - 讨论
将 Lambda 函数与自定义用户应用程序结合使用
我们可以使用 AWS lambda 函数通过以下两种方式处理用户应用程序生成的事件 -
- 使用 AWS 控制台
- 使用 AWS CLI
使用 AWS 控制台
我们将在 AWS 控制台中处理事件和 AWS Lambda。为此,请转到 AWS 控制台并创建一个 lambda 函数。
接下来,让我们添加 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); };
请注意,在上面的代码中,我们使用事件打印姓名和地址。
事件的详细信息将使用创建的测试事件给出,如下所示 -
现在,保存事件并测试它。
相应的日志输出如下所示 -
使用 AWS CLI
我们可以使用 AWS CLI 调用上述函数,如下所示 -
aws lambda invoke --function-name "lambdauserevent" --log-type Tail -- payload file://C:\clioutput\input.txt C:\clioutput\outputfile.txt
事件详细信息提供给有效负载,输出存储在C:\clioutput\outputfile.txt 中。如下 -
输入.txt
{"name":"Roy Singh", "addr":"Mumbai"}
使用 AWS CLI 调用 Lambda 时,您可以看到输出如下 -
同样,如果您想要测试任何其他 AWS 服务的 AWS Lambda,您可以使用 AWS 控制台和 AWS CLI 中的测试事件来执行此操作。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" } }] }
让我们添加上面显示的示例事件并对其进行测试,如下所示 -
在 AWS Lambda 中,代码将打印 SNS 消息,如下面给出的示例所示 -
exports.handler = (event, context, callback) => { // TODO implement console.log(event.Records[0].Sns.Message); callback(null, event.Records[0].Sns.Message);};
让我们使用 AWS CLI 调用相同的内容。让我们将事件保存在文件中,并使用所示命令将其用作有效负载 -
aws lambda invoke --function-name "lambdauserevent" --log-type Tail -- payload file://C:\clioutput\sns.txt C:\clioutput\snsoutput.txt