Skip to content

Commit 436c7ab

Browse files
Upgrade SQS in ServiceControl (#4934)
* upgrade sqs * add reserved bytes to connection string * example connectionstring * remove pragma * Transport and review updates --------- Co-authored-by: Daniel Marbach <[email protected]>
1 parent 8d260fa commit 436c7ab

File tree

4 files changed

+15
-8
lines changed

4 files changed

+15
-8
lines changed

src/Directory.Packages.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<ItemGroup Label="Versions for direct package references">
77
<PackageVersion Include="Autofac" Version="8.2.0" />
88
<PackageVersion Include="AWSSDK.CloudWatch" Version="3.7.402.63" />
9-
<PackageVersion Include="AWSSDK.SecurityToken" Version="3.7.401.64" />
9+
<PackageVersion Include="AWSSDK.SecurityToken" Version="3.7.401.78" />
1010
<PackageVersion Include="Azure.Identity" Version="1.13.2" />
1111
<PackageVersion Include="Azure.Monitor.Query" Version="1.6.0" />
1212
<PackageVersion Include="Azure.ResourceManager.ServiceBus" Version="1.1.0" />
@@ -31,7 +31,7 @@
3131
<PackageVersion Include="NLog.Extensions.Logging" Version="5.4.0" />
3232
<PackageVersion Include="NServiceBus" Version="9.2.6" />
3333
<PackageVersion Include="NServiceBus.AcceptanceTesting" Version="9.2.6" />
34-
<PackageVersion Include="NServiceBus.AmazonSQS" Version="7.1.1" />
34+
<PackageVersion Include="NServiceBus.AmazonSQS" Version="7.3.0" />
3535
<PackageVersion Include="NServiceBus.CustomChecks" Version="5.0.1" />
3636
<PackageVersion Include="NServiceBus.Extensions.Hosting" Version="3.0.1" />
3737
<PackageVersion Include="NServiceBus.Extensions.Logging" Version="3.0.1" />

src/ServiceControl.Transports.SQS/SQSTransportConnectionString.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
namespace ServiceControl.Transports.SQS;
22

3+
using System;
34
using System.Data.Common;
45

56
public class SQSTransportConnectionString
@@ -50,6 +51,12 @@ public SQSTransportConnectionString(string connectionString)
5051
{
5152
DoNotWrapOutgoingMessages = doNotWrapOutgoingMessagesAsBool;
5253
}
54+
55+
56+
if (builder.TryGetValue("ReservedBytesInMessageSize", out object reservedBytes))
57+
{
58+
ReservedBytesInMessageSize = Convert.ToInt32(reservedBytes);
59+
}
5360
}
5461

5562
public string AccessKey { get; }
@@ -60,4 +67,5 @@ public SQSTransportConnectionString(string connectionString)
6067
public string S3BucketForLargeMessages { get; }
6168
public string S3KeyPrefix { get; }
6269
public bool DoNotWrapOutgoingMessages { get; }
70+
public int ReservedBytesInMessageSize { get; }
6371
}

src/ServiceControl.Transports.SQS/SQSTransportCustomization.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,7 @@ protected override SqsTransport CreateTransport(TransportSettings transportSetti
7171
snsClient = new AmazonSimpleNotificationServiceClient();
7272
}
7373

74-
#pragma warning disable NSBSQSEXP0001 // Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed.
75-
var transport = new SqsTransport(sqsClient, snsClient, enableDelayedDelivery: false);
76-
#pragma warning restore NSBSQSEXP0001
74+
var transport = new SqsTransport(sqsClient, snsClient, disableUnrestrictedDelayedDelivery: true);
7775

7876
if (!string.IsNullOrEmpty(builder.QueueNamePrefix))
7977
{
@@ -109,6 +107,7 @@ protected override SqsTransport CreateTransport(TransportSettings transportSetti
109107
}
110108

111109
transport.DoNotWrapOutgoingMessages = builder.DoNotWrapOutgoingMessages;
110+
transport.ReserveBytesInMessageSizeCalculation = builder.ReservedBytesInMessageSize;
112111

113112
transport.TransportTransactionMode = transport.GetSupportedTransactionModes().Contains(preferredTransactionMode) ? preferredTransactionMode : TransportTransactionMode.ReceiveOnly;
114113

src/ServiceControl.Transports.SQS/transport.manifest

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
"DisplayName": "AmazonSQS",
66
"AssemblyName": "ServiceControl.Transports.SQS",
77
"TypeName": "ServiceControl.Transports.SQS.SQSTransportCustomization, ServiceControl.Transports.SQS",
8-
"SampleConnectionString": "Region=<REGION>;QueueNamePrefix=<prefix>;TopicNamePrefix=<prefix>;AccessKeyId=<ACCESSKEYID>;SecretAccessKey=<SECRETACCESSKEY>;S3BucketForLargeMessages=<BUCKETNAME>;S3KeyPrefix=<KEYPREFIX>",
8+
"SampleConnectionString": "Region=<REGION>;QueueNamePrefix=<prefix>;TopicNamePrefix=<prefix>;AccessKeyId=<ACCESSKEYID>;SecretAccessKey=<SECRETACCESSKEY>;S3BucketForLargeMessages=<BUCKETNAME>;S3KeyPrefix=<KEYPREFIX>;DoNotWrapOutgoingMessages=<DONOTWRAP>;ReservedBytesInMessageSize=<RESERVEDBYTES>",
99
"AvailableInSCMU": true,
10-
"Help": "'Region' is mandatory. Specify 'AccessKeyId' and 'SecretAccessKey' values to set the AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY environment variables if not using IAM roles or EC2 metadata. Specify 'S3BucketForLargeMessages' and optionally 'S3KeyPrefix' if large message bodies are used.",
10+
"Help": "'Region' is mandatory. Specify 'AccessKeyId' and 'SecretAccessKey' values to set the AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY environment variables if not using IAM roles or EC2 metadata. Specify 'S3BucketForLargeMessages' and optionally 'S3KeyPrefix' if large message bodies are used. To avoid wrapping outgoing messages, set 'DoNotWrapOutgoingMessages' to 'true'. To reserve bytes in the message size, use 'ReservedBytesInMessageSize'.",
1111
"Aliases": [
1212
"NServiceBus.SqsTransport, NServiceBus.AmazonSQS",
1313
"ServiceControl.Transports.AmazonSQS.ServiceControlSqsTransport, ServiceControl.Transports.AmazonSQS"
1414
]
1515
}
1616
]
17-
}
17+
}

0 commit comments

Comments
 (0)