将 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

有效负载命令