diff --git a/packages/aws-cdk-lib/aws-sqs/lib/queue.ts b/packages/aws-cdk-lib/aws-sqs/lib/queue.ts index 16fb120d8f100..a122045571937 100644 --- a/packages/aws-cdk-lib/aws-sqs/lib/queue.ts +++ b/packages/aws-cdk-lib/aws-sqs/lib/queue.ts @@ -282,7 +282,9 @@ export class Queue extends QueueBase { } } - return new Import(scope, id); + return new Import(scope, id, { + environmentFromArn: attrs.queueArn, + }); } /** diff --git a/packages/aws-cdk-lib/aws-sqs/test/sqs.test.ts b/packages/aws-cdk-lib/aws-sqs/test/sqs.test.ts index 9ec5da716e28d..0c0492b26f28b 100644 --- a/packages/aws-cdk-lib/aws-sqs/test/sqs.test.ts +++ b/packages/aws-cdk-lib/aws-sqs/test/sqs.test.ts @@ -284,6 +284,38 @@ describe('export and import', () => { }); expect(stack.resolve(imports.queueName)).toEqual('queue1'); }); + + test('sets account for imported queue env by fromQueueAttributes', () => { + const stack = new Stack(); + const imported = sqs.Queue.fromQueueAttributes(stack, 'Imported', { + queueArn: 'arn:aws:sqs:us-west-2:999999999999:queue', + }); + + expect(imported.env.account).toEqual('999999999999'); + }); + + test('sets region for imported queue env by fromQueueAttributes', () => { + const stack = new Stack(); + const imported = sqs.Queue.fromQueueAttributes(stack, 'Imported', { + queueArn: 'arn:aws:sqs:us-west-2:999999999999:queue', + }); + + expect(imported.env.region).toEqual('us-west-2'); + }); + + test('sets account for imported queue env by fromQueueArn', () => { + const stack = new Stack(); + const imported = sqs.Queue.fromQueueArn(stack, 'Imported', 'arn:aws:sqs:us-west-2:999999999999:queue'); + + expect(imported.env.account).toEqual('999999999999'); + }); + + test('sets region for imported queue env by fromQueueArn', () => { + const stack = new Stack(); + const imported = sqs.Queue.fromQueueArn(stack, 'Imported', 'arn:aws:sqs:us-west-2:123456789012:queue'); + + expect(imported.env.region).toEqual('us-west-2'); + }); }); describe('grants', () => {