Skip to content

Commit caa6788

Browse files
authored
feat(sqs): add DLQ readonly property to Queue (#18232)
feat(@aws-cdk/aws-sqs): add DLQ readonly property motivation is to be able to read the DLQ properties after the queue as been created. Such as referencing it in a different stack. #18083 ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
1 parent 9996061 commit caa6788

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

packages/@aws-cdk/aws-sqs/lib/queue.ts

+6
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,11 @@ export class Queue extends QueueBase {
320320
*/
321321
public readonly fifo: boolean;
322322

323+
/**
324+
* If this queue is configured with a dead-letter queue, this is the dead-letter queue settings.
325+
*/
326+
public readonly deadLetterQueue?: DeadLetterQueue;
327+
323328
protected readonly autoCreatePolicy = true;
324329

325330
constructor(scope: Construct, id: string, props: QueueProps = {}) {
@@ -361,6 +366,7 @@ export class Queue extends QueueBase {
361366
this.queueName = this.getResourceNameAttribute(queue.attrQueueName);
362367
this.encryptionMasterKey = encryptionMasterKey;
363368
this.queueUrl = queue.ref;
369+
this.deadLetterQueue = props.deadLetterQueue;
364370

365371
function _determineEncryptionProps(this: Queue): { encryptionProps: EncryptionProps, encryptionMasterKey?: kms.IKey } {
366372
let encryption = props.encryption || QueueEncryption.UNENCRYPTED;

packages/@aws-cdk/aws-sqs/test/sqs.test.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ test('default properties', () => {
3131
test('with a dead letter queue', () => {
3232
const stack = new Stack();
3333
const dlq = new sqs.Queue(stack, 'DLQ');
34-
new sqs.Queue(stack, 'Queue', { deadLetterQueue: { queue: dlq, maxReceiveCount: 3 } });
34+
const dlqProps = { queue: dlq, maxReceiveCount: 3 };
35+
const queue = new sqs.Queue(stack, 'Queue', { deadLetterQueue: dlqProps });
3536

3637
expect(stack).toMatchTemplate({
3738
'Resources': {
@@ -58,6 +59,8 @@ test('with a dead letter queue', () => {
5859
},
5960
},
6061
});
62+
63+
expect(queue.deadLetterQueue).toEqual(dlqProps);
6164
});
6265

6366
test('message retention period must be between 1 minute to 14 days', () => {

0 commit comments

Comments
 (0)