-
Notifications
You must be signed in to change notification settings - Fork 3.7k
/
test.cloudwatch-agent.ts
111 lines (102 loc) · 2.81 KB
/
test.cloudwatch-agent.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
import { expect, haveResource } from '@aws-cdk/assert-internal';
import * as ecs from '@aws-cdk/aws-ecs';
import * as cdk from '@aws-cdk/core';
import { Test } from 'nodeunit';
import { CloudwatchAgentExtension, Container, Environment, Service, ServiceDescription } from '../lib';
export = {
'should be able to add AWS X-Ray to a service'(test: Test) {
// GIVEN
const stack = new cdk.Stack();
// WHEN
const environment = new Environment(stack, 'production');
const serviceDescription = new ServiceDescription();
serviceDescription.add(new Container({
cpu: 256,
memoryMiB: 512,
trafficPort: 80,
image: ecs.ContainerImage.fromRegistry('nathanpeck/name'),
}));
serviceDescription.add(new CloudwatchAgentExtension());
new Service(stack, 'my-service', {
environment,
serviceDescription,
});
// THEN
expect(stack).to(haveResource('AWS::ECS::TaskDefinition', {
ContainerDefinitions: [
{
Cpu: 256,
DependsOn: [
{
Condition: 'START',
ContainerName: 'cloudwatch-agent',
},
],
Essential: true,
Image: 'nathanpeck/name',
Memory: 512,
Name: 'app',
PortMappings: [
{
ContainerPort: 80,
Protocol: 'tcp',
},
],
Ulimits: [
{
HardLimit: 1024000,
Name: 'nofile',
SoftLimit: 1024000,
},
],
},
{
Environment: [
{
Name: 'CW_CONFIG_CONTENT',
Value: '{"logs":{"metrics_collected":{"emf":{}}},"metrics":{"metrics_collected":{"statsd":{}}}}',
},
],
Essential: true,
Image: 'amazon/cloudwatch-agent:latest',
LogConfiguration: {
LogDriver: 'awslogs',
Options: {
'awslogs-group': {
Ref: 'myservicetaskdefinitioncloudwatchagentLogGroupDF0CD679',
},
'awslogs-stream-prefix': 'cloudwatch-agent',
'awslogs-region': {
Ref: 'AWS::Region',
},
},
},
MemoryReservation: 50,
Name: 'cloudwatch-agent',
User: '0:1338',
},
],
Cpu: '256',
ExecutionRoleArn: {
'Fn::GetAtt': [
'myservicetaskdefinitionExecutionRole0CE74AD0',
'Arn',
],
},
Family: 'myservicetaskdefinition',
Memory: '512',
NetworkMode: 'awsvpc',
RequiresCompatibilities: [
'EC2',
'FARGATE',
],
TaskRoleArn: {
'Fn::GetAtt': [
'myservicetaskdefinitionTaskRole92ACD903',
'Arn',
],
},
}));
test.done();
},
};