添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
傲视众生的熊猫  ·  Android ...·  3 月前    · 
逆袭的凉面  ·  LOFAR telescope: ...·  3 月前    · 
沉稳的筷子  ·  产业研究_大众网·  5 月前    · 
示例 函数代码 - AWS Lambda

示例 函数代码

示例代码具有以下语言。

Node.js

以下示例处理来自 DynamoDB 的消息并记录其内容。

例 ProcessDynamoDBStream.js
console.log('Loading function'); exports.lambda_handler = function(event, context, callback) { console.log(JSON.stringify(event, null, 2)); event.Records.forEach(function(record) { console.log(record.eventID); console.log(record.eventName); console.log('DynamoDB Record: %j', record.dynamodb); callback(null, "message");

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

Java 11

以下示例处理来自 DynamoDB 的消息,并记录其内容。handleRequest 是 AWS Lambda 调用并提供事件数据的处理程序。该处理程序使用了预定义的 DynamodbEvent 类(在 aws-lambda-java-events 库中定义)。

例 DDB .java EventProcessor
package example; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.LambdaLogger; import com.amazonaws.services.lambda.runtime.RequestHandler2; import com.amazonaws.services.lambda.runtime.events.DynamodbEvent; import com.amazonaws.services.lambda.runtime.events.DynamodbEvent.DynamodbStreamRecord; public class DDBEventProcessor implements RequestHandler2<DynamodbEvent, String> { public String handleRequest(DynamodbEvent ddbEvent, Context context) { for (DynamodbStreamRecord record : ddbEvent.getRecords()){ System.out.println(record.getEventID()); System.out.println(record.getEventName()); System.out.println(record.getDynamodb().toString()); return "Successfully processed " + ddbEvent.getRecords().size() + " records.";

如果该处理程序正常返回并且没有异常,则 Lambda 认为输入的记录批次得到成功处理并开始读取流中的新记录。如果该处理程序引发异常,则 Lambda 认为输入的记录批次未得到处理,并用相同的记录批次再次调用该函数。

  • aws-lambda-java-core

  • aws-lambda-java-events

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

以下示例处理来自 DynamoDB 的消息,并记录其内容。ProcessDynamoEvent 是 AWS Lambda 调用并提供事件数据的处理程序。该处理程序使用了预定义的 DynamoDbEvent 类(在 Amazon.Lambda.DynamoDBEvents 库中定义)。

例 ProcessingDynamoDBStreams.cs
using System; using System.IO; using System.Text; using Amazon.Lambda.Core; using Amazon.Lambda.DynamoDBEvents; using Amazon.Lambda.Serialization.Json; namespace DynamoDBStreams public class DdbSample private static readonly JsonSerializer _jsonSerializer = new JsonSerializer(); public void ProcessDynamoEvent(DynamoDBEvent dynamoEvent) Console.WriteLine($"Beginning to process {dynamoEvent.Records.Count} records..."); foreach (var record in dynamoEvent.Records) Console.WriteLine($"Event ID: {record.EventID}"); Console.WriteLine($"Event Name: {record.EventName}"); string streamRecordJson = SerializeObject(record.Dynamodb); Console.WriteLine($"DynamoDB Record:"); Console.WriteLine(streamRecordJson); Console.WriteLine("Stream processing complete."); private string SerializeObject(object streamRecord) using (var ms = new MemoryStream()) _jsonSerializer.Serialize(streamRecord, ms); return Encoding.UTF8.GetString(ms.ToArray());

用上述示例替换 .NET Core 项目中的 Program.cs。有关说明,请参阅 使用 .zip 文件归档构建和部署 C# Lambda 函数

Python 3

以下示例处理来自 DynamoDB 的消息并记录其内容。

例 ProcessDynamoDBStream.py
from __future__ import print_function def lambda_handler(event, context): for record in event['Records']: print(record['eventID']) print(record['eventName']) print('Successfully processed %s records.' % str(len(event['Records'])))

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

以下示例处理来自 DynamoDB 的消息并记录其内容。

import ( "strings" "github.com/aws/aws-lambda-go/events" func handleRequest(ctx context.Context, e events.DynamoDBEvent) { for _, record := range e.Records { fmt.Printf("Processing request data for event ID %s, type %s.\n", record.EventID, record.EventName) // Print new values for attributes of type String for name, value := range record.Change.NewImage { if value.DataType() == events.DataTypeString { fmt.Printf("Attribute name: %s, value: %s\n", name, value.String())