From 11ca91a20807ee10d2eb4cf6c5a33e7c198f3986 Mon Sep 17 00:00:00 2001 From: go-to-k <24818752+go-to-k@users.noreply.github.com> Date: Thu, 9 Nov 2023 14:39:09 +0900 Subject: [PATCH 1/2] fix(events): imported events rule ignores environment from arn --- packages/aws-cdk-lib/aws-events/lib/rule.ts | 4 +++- packages/aws-cdk-lib/aws-events/test/rule.test.ts | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/packages/aws-cdk-lib/aws-events/lib/rule.ts b/packages/aws-cdk-lib/aws-events/lib/rule.ts index 7b3f512e692e8..faa7ea7c488f6 100644 --- a/packages/aws-cdk-lib/aws-events/lib/rule.ts +++ b/packages/aws-cdk-lib/aws-events/lib/rule.ts @@ -75,7 +75,9 @@ export class Rule extends Resource implements IRule { public ruleArn = eventRuleArn; public ruleName = parts.resourceName || ''; } - return new Import(scope, id); + return new Import(scope, id, { + environmentFromArn: eventRuleArn, + }); } public readonly ruleArn: string; diff --git a/packages/aws-cdk-lib/aws-events/test/rule.test.ts b/packages/aws-cdk-lib/aws-events/test/rule.test.ts index 6cca0b11ba804..ba0fb59060586 100644 --- a/packages/aws-cdk-lib/aws-events/test/rule.test.ts +++ b/packages/aws-cdk-lib/aws-events/test/rule.test.ts @@ -578,6 +578,20 @@ describe('rule', () => { expect(importedRule.ruleName).toEqual('example'); }); + test('sets account for imported rule env by fromEventRuleArn', () => { + const stack = new cdk.Stack(); + const importedRule = Rule.fromEventRuleArn(stack, 'Imported', 'arn:aws:events:us-west-2:123456789012:rule/example'); + + expect(importedRule.env.account).toEqual('123456789012'); + }); + + test('sets region for imported rule env by fromEventRuleArn', () => { + const stack = new cdk.Stack(); + const importedRule = Rule.fromEventRuleArn(stack, 'Imported', 'arn:aws:events:us-west-2:123456789012:rule/example'); + + expect(importedRule.env.region).toEqual('us-west-2'); + }); + test('rule can be disabled', () => { // GIVEN const stack = new cdk.Stack(); From 92dc60168a9688d576a43dc13c0d3e3d3ea9f9c5 Mon Sep 17 00:00:00 2001 From: go-to-k <24818752+go-to-k@users.noreply.github.com> Date: Thu, 9 Nov 2023 15:20:00 +0900 Subject: [PATCH 2/2] change tests --- packages/aws-cdk-lib/aws-events/test/rule.test.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/aws-cdk-lib/aws-events/test/rule.test.ts b/packages/aws-cdk-lib/aws-events/test/rule.test.ts index ba0fb59060586..80f3c5cbe53d6 100644 --- a/packages/aws-cdk-lib/aws-events/test/rule.test.ts +++ b/packages/aws-cdk-lib/aws-events/test/rule.test.ts @@ -580,14 +580,14 @@ describe('rule', () => { test('sets account for imported rule env by fromEventRuleArn', () => { const stack = new cdk.Stack(); - const importedRule = Rule.fromEventRuleArn(stack, 'Imported', 'arn:aws:events:us-west-2:123456789012:rule/example'); + const importedRule = Rule.fromEventRuleArn(stack, 'Imported', 'arn:aws:events:us-west-2:999999999999:rule/example'); - expect(importedRule.env.account).toEqual('123456789012'); + expect(importedRule.env.account).toEqual('999999999999'); }); test('sets region for imported rule env by fromEventRuleArn', () => { const stack = new cdk.Stack(); - const importedRule = Rule.fromEventRuleArn(stack, 'Imported', 'arn:aws:events:us-west-2:123456789012:rule/example'); + const importedRule = Rule.fromEventRuleArn(stack, 'Imported', 'arn:aws:events:us-west-2:999999999999:rule/example'); expect(importedRule.env.region).toEqual('us-west-2'); });