Código de función de ejemplo - AWS Lambda

Código de función de ejemplo

El código de muestra está disponible para los lenguajes que se indican a continuación.

Node.js

El siguiente ejemplo procesa mensajes desde API Gateway y administra documentos DynamoDB basados en el método requerido.

ejemplo index.js

console.log('Loading function'); var AWS = require('aws-sdk'); var dynamo = new AWS.DynamoDB.DocumentClient(); /** * Provide an event that contains the following keys: * * - operation: one of the operations in the switch statement below * - tableName: required for operations that interact with DynamoDB * - payload: a parameter to pass to the operation being performed */ exports.handler = function(event, context, callback) { //console.log('Received event:', JSON.stringify(event, null, 2)); var operation = event.operation; if (event.tableName) { event.payload.TableName = event.tableName; } switch (operation) { case 'create': dynamo.put(event.payload, callback); break; case 'read': dynamo.get(event.payload, callback); break; case 'update': dynamo.update(event.payload, callback); break; case 'delete': dynamo.delete(event.payload, callback); break; case 'list': dynamo.scan(event.payload, callback); break; case 'echo': callback(null, "Success"); break; case 'ping': callback(null, "pong"); break; default: callback(`Unknown operation: ${operation}`); } };

Comprima el código de muestra para crear un paquete de implementación. Para obtener instrucciones, consulte Implementar Lambda funciones Node.js con archivos de archivo.zip.

Python 3

El siguiente ejemplo procesa mensajes desde API Gateway y administra documentos DynamoDB basados en el método requerido.

ejemplo LambdaFunctionOverHttps.py

from __future__ import print_function import boto3 import json print('Loading function') def handler(event, context): '''Provide an event that contains the following keys: - operation: one of the operations in the operations dict below - tableName: required for operations that interact with DynamoDB - payload: a parameter to pass to the operation being performed ''' #print("Received event: " + json.dumps(event, indent=2)) operation = event['operation'] if 'tableName' in event: dynamo = boto3.resource('dynamodb').Table(event['tableName']) operations = { 'create': lambda x: dynamo.put_item(**x), 'read': lambda x: dynamo.get_item(**x), 'update': lambda x: dynamo.update_item(**x), 'delete': lambda x: dynamo.delete_item(**x), 'list': lambda x: dynamo.scan(**x), 'echo': lambda x: x, 'ping': lambda x: 'pong' } if operation in operations: return operations[operation](event.get('payload')) else: raise ValueError('Unrecognized operation "{}"'.format(operation))

Comprima el código de muestra para crear un paquete de implementación. Para obtener instrucciones, consulte Implementar funciones Lambda de Python con archivos .zip.

Go

El siguiente ejemplo procesa mensajes desde API Gateway y registra información basada en la petición.

ejemplo LambdaFunctionOverHttps.go

import ( "context" "fmt" "github.com/aws/aws-lambda-go/events" runtime "github.com/aws/aws-lambda-go/lambda" ) func main() { runtime.Start(handleRequest) } func handleRequest(ctx context.Context, request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) { fmt.Printf("Processing request data for request %s.\n", request.RequestContext.RequestID) fmt.Printf("Body size = %d.\n", len(request.Body)) fmt.Println("Headers:") for key, value := range request.Headers { fmt.Printf(" %s: %s\n", key, value) } return events.APIGatewayProxyResponse{Body: request.Body, StatusCode: 200}, nil }

Compile el ejecutable con go build y cree un paquete de implementación. Para obtener instrucciones, consulte Implementar Lambda funciones Go con archivos de archivo .zip.