diff --git a/Amazon.SQS/src/Extensions.SQS/Extensions.SQS.csproj b/Amazon.SQS/src/Extensions.SQS/Extensions.SQS.csproj index d5dda59..e21b469 100644 --- a/Amazon.SQS/src/Extensions.SQS/Extensions.SQS.csproj +++ b/Amazon.SQS/src/Extensions.SQS/Extensions.SQS.csproj @@ -20,8 +20,8 @@ - - + + diff --git a/Amazon.SQS/src/Extensions.SQS/Trigger/SqsQueueTriggerAttribute.cs b/Amazon.SQS/src/Extensions.SQS/Trigger/SqsQueueTriggerAttribute.cs index 01988ea..4a3e51e 100644 --- a/Amazon.SQS/src/Extensions.SQS/Trigger/SqsQueueTriggerAttribute.cs +++ b/Amazon.SQS/src/Extensions.SQS/Trigger/SqsQueueTriggerAttribute.cs @@ -2,6 +2,7 @@ namespace Azure.Functions.Extensions.SQS { using System; + using System.Collections.Generic; using Microsoft.Azure.WebJobs.Description; [Binding] @@ -15,5 +16,11 @@ public class SqsQueueTriggerAttribute : Attribute [AutoResolve] public string QueueUrl { get; set; } + + [AutoResolve] + public string MessageAttributeNames { get; set; } + + [AutoResolve] + public string AttributeNames { get; set; } } } diff --git a/Amazon.SQS/src/Extensions.SQS/Trigger/SqsQueueTriggerBindingProvider.cs b/Amazon.SQS/src/Extensions.SQS/Trigger/SqsQueueTriggerBindingProvider.cs index 4e39198..8dd3cd2 100644 --- a/Amazon.SQS/src/Extensions.SQS/Trigger/SqsQueueTriggerBindingProvider.cs +++ b/Amazon.SQS/src/Extensions.SQS/Trigger/SqsQueueTriggerBindingProvider.cs @@ -35,6 +35,8 @@ private SqsQueueTriggerAttribute ResolveTriggerParameters(SqsQueueTriggerAttribu AWSKeyId = this.Resolve(triggerAttribute.AWSKeyId), AWSAccessKey = this.Resolve(triggerAttribute.AWSAccessKey), QueueUrl = this.Resolve(triggerAttribute.QueueUrl), + MessageAttributeNames = this.Resolve(triggerAttribute.MessageAttributeNames), + AttributeNames = this.Resolve(triggerAttribute.AttributeNames) }; } diff --git a/Amazon.SQS/src/Extensions.SQS/Trigger/SqsQueueTriggerListener.cs b/Amazon.SQS/src/Extensions.SQS/Trigger/SqsQueueTriggerListener.cs index c397c38..893bf62 100644 --- a/Amazon.SQS/src/Extensions.SQS/Trigger/SqsQueueTriggerListener.cs +++ b/Amazon.SQS/src/Extensions.SQS/Trigger/SqsQueueTriggerListener.cs @@ -69,6 +69,8 @@ public async Task OnTriggerCallback() QueueUrl = this.TriggerParameters.QueueUrl, MaxNumberOfMessages = this.SqsQueueOptions.Value.MaxNumberOfMessages.Value, VisibilityTimeout = (int)this.SqsQueueOptions.Value.VisibilityTimeout.Value.TotalSeconds, + MessageAttributeNames = this.TriggerParameters.MessageAttributeNames?.Split(',').ToList(), + AttributeNames = this.TriggerParameters.AttributeNames?.Split(',').ToList() }; var result = await this.AmazonSQSClient.ReceiveMessageAsync(getMessageRequest);