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.