Skip to content

Commit 8b1e522

Browse files
authored
Merge pull request #2042 from aws/master
Sync Dev from master
2 parents b858af4 + 45134fb commit 8b1e522

File tree

3 files changed

+25
-14
lines changed

3 files changed

+25
-14
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"Projects": [
3+
{
4+
"Name": "Amazon.Lambda.TestTool",
5+
"Type": "Patch",
6+
"ChangelogMessages": [
7+
"Support optional SQS client region in event source test tool"
8+
]
9+
}
10+
]
11+
}

Tools/LambdaTestTool-v2/src/Amazon.Lambda.TestTool/Processes/SQSEventSource/SQSEventSourceBackgroundService.cs

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -43,15 +43,15 @@ public SQSEventSourceBackgroundService(ILogger<SQSEventSourceProcess> logger, IA
4343
_lambdaClient = lambdaClient;
4444
}
4545

46-
private async Task<string> GetQueueArn(CancellationToken stoppingToken)
46+
private async Task<Arn> GetQueueArn(CancellationToken stoppingToken)
4747
{
4848
var response = await _sqsClient.GetQueueAttributesAsync(new GetQueueAttributesRequest
4949
{
5050
QueueUrl = _config.QueueUrl,
5151
AttributeNames = new List<string> { "QueueArn" }
5252
}, stoppingToken);
5353

54-
return response.QueueARN;
54+
return Arn.Parse(response.QueueARN);
5555
}
5656

5757
/// <summary>
@@ -94,7 +94,7 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
9494

9595
var lambdaPayload = new
9696
{
97-
Records = ConvertToLambdaMessages(response.Messages, _sqsClient.Config.RegionEndpoint.SystemName, queueArn)
97+
Records = ConvertToLambdaMessages(response.Messages, queueArn)
9898
};
9999

100100
var invokeRequest = new InvokeRequest
@@ -187,29 +187,27 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
187187
/// Convert from the SDK's list of messages to the Lambda event's SQS message type.
188188
/// </summary>
189189
/// <param name="messages">List of messages using the SDK's .NET type</param>
190-
/// <param name="awsRegion">The aws region the messages came from.</param>
191190
/// <param name="queueArn">The SQS queue arn the messages came from.</param>
192191
/// <returns>List of messages using the Lambda event's .NET type.</returns>
193-
internal static List<SQSEvent.SQSMessage> ConvertToLambdaMessages(List<Message> messages, string awsRegion, string queueArn)
192+
internal static List<SQSEvent.SQSMessage> ConvertToLambdaMessages(List<Message> messages, Arn queueArn)
194193
{
195-
return messages.Select(m => ConvertToLambdaMessage(m, awsRegion, queueArn)).ToList();
194+
return messages.Select(m => ConvertToLambdaMessage(m, queueArn)).ToList();
196195
}
197196

198197
/// <summary>
199198
/// Convert from the SDK's SQS message to the Lambda event's SQS message type.
200199
/// </summary>
201200
/// <param name="message">Message using the SDK's .NET type</param>
202-
/// <param name="awsRegion">The aws region the message came from.</param>
203201
/// <param name="queueArn">The SQS queue arn the message came from.</param>
204202
/// <returns>Messages using the Lambda event's .NET type.</returns>
205-
internal static SQSEvent.SQSMessage ConvertToLambdaMessage(Message message, string awsRegion, string queueArn)
203+
internal static SQSEvent.SQSMessage ConvertToLambdaMessage(Message message, Arn queueArn)
206204
{
207205
var lambdaMessage = new SQSEvent.SQSMessage
208206
{
209-
AwsRegion = awsRegion,
207+
AwsRegion = queueArn.Region,
210208
Body = message.Body,
211209
EventSource = "aws:sqs",
212-
EventSourceArn = queueArn,
210+
EventSourceArn = queueArn.ToString(),
213211
Md5OfBody = message.MD5OfBody,
214212
Md5OfMessageAttributes = message.MD5OfMessageAttributes,
215213
MessageId = message.MessageId,

Tools/LambdaTestTool-v2/tests/Amazon.Lambda.TestTool.UnitTests/SQSEventSource/ConvertSDKToLambdaEventTests.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,10 @@ public void ConvertSDKMessageFull()
2424
ReceiptHandle = "receiptHandle"
2525
};
2626

27-
var eventMessage = SQSEventSourceBackgroundService.ConvertToLambdaMessage(sdkMessage, "us-west-2", "queueArn");
27+
var queueArn = Arn.Parse("arn:aws:sqs:us-west-2:123456789012:queueName");
28+
var eventMessage = SQSEventSourceBackgroundService.ConvertToLambdaMessage(sdkMessage, queueArn);
2829
Assert.Equal("us-west-2", eventMessage.AwsRegion);
29-
Assert.Equal("queueArn", eventMessage.EventSourceArn);
30+
Assert.Equal("arn:aws:sqs:us-west-2:123456789012:queueName", eventMessage.EventSourceArn);
3031
Assert.Equal("aws:sqs", eventMessage.EventSource);
3132

3233
Assert.Equal(sdkMessage.Attributes, eventMessage.Attributes);
@@ -61,9 +62,10 @@ public void ConvertSDKMessageWithNullCollections()
6162
ReceiptHandle = "receiptHandle"
6263
};
6364

64-
var eventMessage = SQSEventSourceBackgroundService.ConvertToLambdaMessage(sdkMessage, "us-west-2", "queueArn");
65+
var queueArn = Arn.Parse("arn:aws:sqs:us-west-2:123456789012:queueName");
66+
var eventMessage = SQSEventSourceBackgroundService.ConvertToLambdaMessage(sdkMessage, queueArn);
6567
Assert.Equal("us-west-2", eventMessage.AwsRegion);
66-
Assert.Equal("queueArn", eventMessage.EventSourceArn);
68+
Assert.Equal("arn:aws:sqs:us-west-2:123456789012:queueName", eventMessage.EventSourceArn);
6769
Assert.Equal("aws:sqs", eventMessage.EventSource);
6870

6971
Assert.Equal("theBody", eventMessage.Body);

0 commit comments

Comments
 (0)