AWS Lambda
开发人员指南

示例 Amazon SQS 函数代码

示例代码具有以下语言。

Node.js

以下是将 Amazon SQS 事件消息作为输入接收并对其进行处理的示例代码。为了展示这个过程,代码会将一些传入的事件数据写入 CloudWatch Logs。

例 index.js (Node.js 8)

exports.handler = async function(event, context) { event.Records.forEach(record => { const { body } = record; console.log(body); }); return {}; }

例 index.js (Node.js 6)

event.Records.forEach(function(record) { var body = record.body; console.log(body); }); callback(null, "message"); };

压缩示例代码以创建部署程序包。有关说明,请参阅Node.js 中的 AWS Lambda 部署程序包

Java

以下是将 Amazon SQS 事件消息作为输入接收并对其进行处理的示例 Java 代码。为了展示这个过程,代码会将一些传入的事件数据写入 CloudWatch Logs。

在代码中,handleRequest 是处理程序。该处理程序使用了在 aws-lambda-java-events 库中定义的预定义 SQSEvent 类。

例 Handler.java

package example; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; import com.amazonaws.services.lambda.runtime.events.SQSEvent; import com.amazonaws.services.lambda.runtime.events.SQSEvent.SQSMessage; public class Handler implements RequestHandler<SQSEvent, Void>{ @Override public Void handleRequest(SQSEvent event, Context context) { for(SQSMessage msg : event.getRecords()){ System.out.println(new String(msg.getBody())); } return null; } }

附属物

  • aws-lambda-java-core

  • aws-lambda-java-events

使用 Lambda 库依赖项构建代码以创建部署程序包。有关说明,请参阅Java 中的 AWS Lambda 部署程序包

C#

以下是将 Amazon SQS 事件消息作为输入接收并对其进行处理的示例 C# 代码。为了展示这个过程,代码会将一些传入的事件数据写入控制台。

在代码中,handleRequest 是处理程序。该处理程序使用了在 AWS.Lambda.SQSEvents 库中定义的预定义 SQSEvent 类。

例 ProcessingSQSRecords.cs

[assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.Json.JsonSerializer))] namespace SQSLambdaFunction { public class SQSLambdaFunction { public string HandleSQSEvent(SQSEvent sqsEvent, ILambdaContext context) { Console.WriteLine($"Beginning to process {sqsEvent.Records.Count} records..."); foreach (var record in sqsEvent.Records) { Console.WriteLine($"Message ID: {record.MessageId}"); Console.WriteLine($"Event Source: {record.EventSource}"); Console.WriteLine($"Record Body:"); Console.WriteLine(record.Body); } Console.WriteLine("Processing complete."); return $"Processed {sqsEvent.Records.Count} records."; } } }

使用以上示例替换.NET Core 中的 Program.cs有关说明,请参阅.NET Core CLI

转到

以下是将 Amazon SQS 事件消息作为输入接收并对其进行处理的示例 Go 代码。为了展示这个过程,代码会将一些传入的事件数据写入 CloudWatch Logs。

在代码中,handler 是处理程序。该处理程序使用了在 aws-lambda-go-events 库中定义的预定义 SQSEvent 类。

例 ProcessSQSRecords.go

package main import ( "context" "fmt" "github.com/aws/aws-lambda-go/events" "github.com/aws/aws-lambda-go/lambda" ) func handler(ctx context.Context, sqsEvent events.SQSEvent) error { for _, message := range sqsEvent.Records { fmt.Printf("The message %s for event source %s = %s \n", message.MessageId, message.EventSource, message.Body) } return nil } func main() { lambda.Start(handler) }

使用 go build 构建可执行文件并创建部署程序包。有关说明,请参阅Go 中的 AWS Lambda 部署程序包

Python

以下是将 Amazon SQS 记录作为输入接受并对其进行处理的示例 Python 代码。为了展示这个过程,代码会将一些传入的事件数据写入 CloudWatch Logs。

按照说明创建 AWS Lambda 函数部署程序包。

例 ProcessSQSRecords.py

from __future__ import print_function def lambda_handler(event, context): for record in event['Records']: print ("test") payload=record["body"] print(str(payload))

压缩示例代码以创建部署程序包。有关说明,请参阅Python 中的 AWS Lambda 部署程序包

本页内容: