Skip to content

Commit b6e3e51

Browse files
fix(ecs): respect LogGroup's region for aws-log-driver (#18212)
Respect passed log group `region` when constructing an instance of `AwsLogDriver`. That change allows to implement cross region logging pattern for ECS containers. fixes #17747 ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
1 parent 06666f4 commit b6e3e51

File tree

2 files changed

+35
-2
lines changed

2 files changed

+35
-2
lines changed

packages/@aws-cdk/aws-ecs/lib/log-drivers/aws-log-driver.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import * as logs from '@aws-cdk/aws-logs';
2-
import { Stack } from '@aws-cdk/core';
32
import { ContainerDefinition } from '../container-definition';
43
import { LogDriver, LogDriverConfig } from './log-driver';
54
import { removeEmpty } from './utils';
@@ -127,7 +126,7 @@ export class AwsLogDriver extends LogDriver {
127126
options: removeEmpty({
128127
'awslogs-group': this.logGroup.logGroupName,
129128
'awslogs-stream-prefix': this.props.streamPrefix,
130-
'awslogs-region': Stack.of(containerDefinition).region,
129+
'awslogs-region': this.logGroup.env.region,
131130
'awslogs-datetime-format': this.props.datetimeFormat,
132131
'awslogs-multiline-pattern': this.props.multilinePattern,
133132
'mode': this.props.mode,

packages/@aws-cdk/aws-ecs/test/aws-log-driver.test.ts

+34
Original file line numberDiff line numberDiff line change
@@ -155,4 +155,38 @@ describe('aws log driver', () => {
155155

156156

157157
});
158+
159+
test('allows cross-region log group', () => {
160+
// GIVEN
161+
const logGroupRegion = 'asghard';
162+
const logGroup = logs.LogGroup.fromLogGroupArn(stack, 'LogGroup',
163+
`arn:aws:logs:${logGroupRegion}:1234:log-group:my_log_group`);
164+
165+
// WHEN
166+
td.addContainer('Container', {
167+
image,
168+
logging: new ecs.AwsLogDriver({
169+
logGroup,
170+
streamPrefix: 'hello',
171+
}),
172+
});
173+
174+
// THEN
175+
expect(stack).toCountResources('AWS::Logs::LogGroup', 0);
176+
expect(stack).toHaveResourceLike('AWS::ECS::TaskDefinition', {
177+
ContainerDefinitions: [
178+
{
179+
LogConfiguration: {
180+
LogDriver: 'awslogs',
181+
Options: {
182+
'awslogs-group': logGroup.logGroupName,
183+
'awslogs-stream-prefix': 'hello',
184+
'awslogs-region': logGroupRegion,
185+
},
186+
},
187+
},
188+
],
189+
});
190+
});
191+
158192
});

0 commit comments

Comments
 (0)