Last active
November 19, 2018 14:46
-
-
Save robvanpamel/68c22928c02f18d2e871c8c161a1e194 to your computer and use it in GitHub Desktop.
Rebus AmazonSQS Serverless
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Collections.Generic; | |
using System.Linq; | |
using System.Threading.Tasks; | |
using Amazon.Lambda.Core; | |
using Amazon.Lambda.SQSEvents; | |
// Assembly attribute to enable the Lambda function's JSON input to be converted into a .NET class. | |
[assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.Json.JsonSerializer))] | |
namespace Rebus.AmazonSqsServerless | |
{ | |
public class Function | |
{ | |
/// <summary> | |
/// Default constructor. This constructor is used by Lambda to construct the instance. When invoked in a Lambda environment | |
/// the AWS credentials will come from the IAM role associated with the function and the AWS region will be set to the | |
/// region the Lambda function is executed in. | |
/// </summary> | |
public Function() | |
{ | |
} | |
/// <summary> | |
/// This method is called for every Lambda invocation. This method takes in an SQS event object and can be used | |
/// to respond to SQS messages. | |
/// </summary> | |
/// <param name="evnt"></param> | |
/// <param name="context"></param> | |
/// <returns></returns> | |
public async Task FunctionHandler(SQSEvent evnt, ILambdaContext context) | |
{ | |
foreach(var message in evnt.Records) | |
{ | |
await ProcessMessageAsync(message, context); | |
} | |
} | |
private async Task ProcessMessageAsync(SQSEvent.SQSMessage message, ILambdaContext context) | |
{ | |
context.Logger.LogLine($"Processed message {message.Body}"); | |
// TODO: Do interesting work based on the new message | |
await Task.CompletedTask; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment