示例 Amazon SQS 函数代码 - Amazon Lambda
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

示例 Amazon SQS 函数代码

示例代码具有以下语言。

Node.js

以下是将 Amazon SQS 事件消息作为输入接收并对其进行处理的示例代码。举例来说,该代码将一些传入的事件数据写入 CloudWatch 日志。

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

压缩示例代码以创建部署程序包。有关说明,请参阅使用 .zip 文件归档部署 Node.js Lambda 函数

Java

以下是将 Amazon SQS 事件消息作为输入接收并对其进行处理的示例 Java 代码。举例来说,该代码将一些传入的事件数据写入 CloudWatch 日志。

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

例 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 库依赖项构建代码,创建部署程序包。有关说明,请参阅 使用 .zip 或 JAR 文件归档部署 Java Lambda 函数

C#

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

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

例 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。有关说明,请参阅 使用 .zip 文件归档构建和部署 C# Lambda 函数

Go

以下是将 Amazon SQS 事件消息作为输入接收并对其进行处理的示例 Go 代码。举例来说,该代码将一些传入的事件数据写入 CloudWatch 日志。

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

例 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 生成可执行文件并创建部署程序包。有关说明,请参阅使用 .zip 文件归档部署 Go Lambda 函数

Python

以下是将 Amazon SQS 记录作为输入接受并对其进行处理的示例 Python 代码。举例来说,该代码将一些传入的事件数据写入 CloudWatch 日志。

例 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))

压缩示例代码以创建部署程序包。有关说明,请参阅将 .zip 文件归档用于 Python Lambda 函数