Class ALambdaEventFunction<TMessage>
The ALambdaEventFunction<TMessage> is the abstract base class for handling Amazon CloudWatch Events events.
Implements
Inherited Members
Namespace: LambdaSharp.EventBridge
Assembly: LambdaSharp.EventBridge.dll
Syntax
public abstract class ALambdaEventFunction<TMessage> : ALambdaFunction, ILambdaSharpLogger
Type Parameters
Name | Description |
---|---|
TMessage | The CloudWatch event message type. |
Constructors
ALambdaEventFunction(ILambdaJsonSerializer)
Initializes a new ALambdaEventFunction<TMessage> instance using the default implementation of ILambdaFunctionDependencyProvider.
Declaration
protected ALambdaEventFunction(ILambdaJsonSerializer serializer)
Parameters
Type | Name | Description |
---|---|---|
ILambdaJsonSerializer | serializer | Custom implementation of ILambdaJsonSerializer. |
ALambdaEventFunction(ILambdaJsonSerializer, ILambdaFunctionDependencyProvider)
Initializes a new ALambdaEventFunction<TMessage> instance using a custom implementation of ILambdaFunctionDependencyProvider.
Declaration
protected ALambdaEventFunction(ILambdaJsonSerializer serializer, ILambdaFunctionDependencyProvider provider)
Parameters
Type | Name | Description |
---|---|---|
ILambdaJsonSerializer | serializer | Custom implementation of ILambdaJsonSerializer. |
ILambdaFunctionDependencyProvider | provider | Custom implementation of ILambdaFunctionDependencyProvider. |
Properties
CurrentEvent
The CurrentEvent property holds the CloudWatch event that is currently being processed.
Declaration
protected CloudWatchEvent<TMessage> CurrentEvent { get; }
Property Value
Type | Description |
---|---|
Amazon.Lambda.CloudWatchEvents.CloudWatchEvent<TMessage> | The Amazon.Lambda.CloudWatchEvents.CloudWatchEvent<T> instance. |
Remarks
This property is only set during the invocation of ProcessEventAsync(TMessage). Otherwise, it returns null
.
LambdaSerializer
An instance of ILambdaJsonSerializer used for serializing/deserializing JSON data.
Declaration
protected ILambdaJsonSerializer LambdaSerializer { get; }
Property Value
Type | Description |
---|---|
ILambdaJsonSerializer | The ILambdaJsonSerializer instance. |
Methods
Deserialize(String, String)
The Deserialize(String, String) method converts the CloudWatch event detail from string to a typed instance.
Declaration
public virtual TMessage Deserialize(string detailType, string detail)
Parameters
Type | Name | Description |
---|---|---|
System.String | detailType | The CloudWatch event detail type |
System.String | detail | The CloudWatch event detail. |
Returns
Type | Description |
---|---|
TMessage | The deserialized The CloudWatch event message. |
Remarks
This method invokes Amazon.Lambda.Core.ILambdaSerializer.Deserialize``1(System.IO.Stream) to convert the CloudWatch event detail string
into a
ProcessEventAsync(TMessage)
The ProcessEventAsync(TMessage) method is invoked for every received CloudWatch event.
Declaration
public abstract Task ProcessEventAsync(TMessage message)
Parameters
Type | Name | Description |
---|---|---|
TMessage | message | The deserialized CloudWatch event message. |
Returns
Type | Description |
---|---|
System.Threading.Tasks.Task | The task object representing the asynchronous operation. |
ProcessMessageStreamAsync(Stream)
The ProcessMessageStreamAsync(Stream) method is overridden to provide specific behavior for this base class.
Declaration
public sealed override async Task<Stream> ProcessMessageStreamAsync(Stream stream)
Parameters
Type | Name | Description |
---|---|---|
System.IO.Stream | stream | The stream with the request payload. |
Returns
Type | Description |
---|---|
System.Threading.Tasks.Task<System.IO.Stream> | The task object representing the asynchronous operation. |
Overrides
Remarks
This method cannot be overridden.