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。 如下-
input.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
