fargate-nodejs 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -83,16 +83,16 @@ const service = new FargateNodejsService(stack, 'MyService', {
|
|
|
83
83
|
projectRoot: './my-app',
|
|
84
84
|
cpu: 512,
|
|
85
85
|
memoryLimitMiB: 1024,
|
|
86
|
-
|
|
86
|
+
|
|
87
87
|
bundling: {
|
|
88
88
|
minify: true,
|
|
89
89
|
sourceMap: true,
|
|
90
90
|
externalModules: ['aws-sdk'],
|
|
91
91
|
},
|
|
92
|
-
|
|
92
|
+
|
|
93
93
|
environment: { API_KEY: 'value' },
|
|
94
94
|
secrets: { DB_PASSWORD: ecs.Secret.fromSecretsManager(secret) },
|
|
95
|
-
|
|
95
|
+
|
|
96
96
|
assignPublicIp: false,
|
|
97
97
|
enableExecuteCommand: true,
|
|
98
98
|
});
|
|
@@ -72,16 +72,16 @@ class FargateNodejsService extends constructs_1.Construct {
|
|
|
72
72
|
const bundleDir = bundler.bundle();
|
|
73
73
|
this.vpc =
|
|
74
74
|
props.vpc ||
|
|
75
|
-
new ec2.Vpc(this, '
|
|
75
|
+
new ec2.Vpc(this, 'FargateVpc', {
|
|
76
76
|
maxAzs: 2,
|
|
77
77
|
natGateways: props.assignPublicIp ? 0 : 1,
|
|
78
78
|
});
|
|
79
79
|
this.cluster =
|
|
80
80
|
props.cluster ||
|
|
81
|
-
new ecs.Cluster(this, '
|
|
81
|
+
new ecs.Cluster(this, 'FargateCluster', {
|
|
82
82
|
vpc: this.vpc,
|
|
83
83
|
});
|
|
84
|
-
this.taskDefinition = new ecs.FargateTaskDefinition(this, '
|
|
84
|
+
this.taskDefinition = new ecs.FargateTaskDefinition(this, 'FargateTaskDef', {
|
|
85
85
|
cpu: props.cpu || 256,
|
|
86
86
|
memoryLimitMiB: props.memoryLimitMiB || 512,
|
|
87
87
|
executionRole: props.executionRole,
|
|
@@ -92,7 +92,7 @@ class FargateNodejsService extends constructs_1.Construct {
|
|
|
92
92
|
},
|
|
93
93
|
});
|
|
94
94
|
const logGroup = props.logGroup ||
|
|
95
|
-
new logs.LogGroup(this, '
|
|
95
|
+
new logs.LogGroup(this, 'FargateLogGroup', {
|
|
96
96
|
retention: props.logRetention || logs.RetentionDays.ONE_WEEK,
|
|
97
97
|
removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY,
|
|
98
98
|
});
|
|
@@ -105,7 +105,7 @@ class FargateNodejsService extends constructs_1.Construct {
|
|
|
105
105
|
...props.buildArgs,
|
|
106
106
|
},
|
|
107
107
|
});
|
|
108
|
-
this.container = this.taskDefinition.addContainer('
|
|
108
|
+
this.container = this.taskDefinition.addContainer('FargateContainer', {
|
|
109
109
|
image,
|
|
110
110
|
logging: ecs.LogDriver.awsLogs({
|
|
111
111
|
logGroup,
|
|
@@ -122,7 +122,7 @@ class FargateNodejsService extends constructs_1.Construct {
|
|
|
122
122
|
});
|
|
123
123
|
}
|
|
124
124
|
const securityGroups = props.securityGroups || [
|
|
125
|
-
new ec2.SecurityGroup(this, '
|
|
125
|
+
new ec2.SecurityGroup(this, 'FargateSecurityGroup', {
|
|
126
126
|
vpc: this.vpc,
|
|
127
127
|
description: `Security group for ${id}`,
|
|
128
128
|
allowAllOutbound: true,
|
|
@@ -132,7 +132,7 @@ class FargateNodejsService extends constructs_1.Construct {
|
|
|
132
132
|
if (containerPort !== undefined && this.securityGroup instanceof ec2.SecurityGroup) {
|
|
133
133
|
this.securityGroup.addIngressRule(ec2.Peer.anyIpv4(), ec2.Port.tcp(containerPort), 'Allow inbound traffic on container port');
|
|
134
134
|
}
|
|
135
|
-
this.service = new ecs.FargateService(this, '
|
|
135
|
+
this.service = new ecs.FargateService(this, 'FargateService', {
|
|
136
136
|
cluster: this.cluster,
|
|
137
137
|
taskDefinition: this.taskDefinition,
|
|
138
138
|
desiredCount: props.desiredCount || 1,
|
|
@@ -163,11 +163,11 @@ class FargateNodejsService extends constructs_1.Construct {
|
|
|
163
163
|
return;
|
|
164
164
|
const lbConfig = props.loadBalancer;
|
|
165
165
|
const listener = lbConfig.listener ||
|
|
166
|
-
lbConfig.loadBalancer.addListener('
|
|
166
|
+
lbConfig.loadBalancer.addListener('HttpListener', {
|
|
167
167
|
port: 80,
|
|
168
168
|
protocol: elbv2.ApplicationProtocol.HTTP,
|
|
169
169
|
});
|
|
170
|
-
this.targetGroup = new elbv2.ApplicationTargetGroup(this, '
|
|
170
|
+
this.targetGroup = new elbv2.ApplicationTargetGroup(this, 'FargateTargetGroup', {
|
|
171
171
|
vpc: this.vpc,
|
|
172
172
|
port: containerPort,
|
|
173
173
|
protocol: elbv2.ApplicationProtocol.HTTP,
|
|
@@ -179,7 +179,7 @@ class FargateNodejsService extends constructs_1.Construct {
|
|
|
179
179
|
deregistrationDelay: lbConfig.deregistrationDelay || aws_cdk_lib_1.Duration.seconds(30),
|
|
180
180
|
});
|
|
181
181
|
this.service.attachToApplicationTargetGroup(this.targetGroup);
|
|
182
|
-
new elbv2.ApplicationListenerRule(this, '
|
|
182
|
+
new elbv2.ApplicationListenerRule(this, 'FargateListenerRule', {
|
|
183
183
|
listener,
|
|
184
184
|
priority: lbConfig.priority ?? 1,
|
|
185
185
|
conditions: [
|
|
@@ -202,14 +202,14 @@ class FargateNodejsService extends constructs_1.Construct {
|
|
|
202
202
|
maxCapacity: autoScalingConfig.maxCapacity || 10,
|
|
203
203
|
});
|
|
204
204
|
if (autoScalingConfig.targetCpuUtilization) {
|
|
205
|
-
scaling.scaleOnCpuUtilization('
|
|
205
|
+
scaling.scaleOnCpuUtilization('FargateCpuScaling', {
|
|
206
206
|
targetUtilizationPercent: autoScalingConfig.targetCpuUtilization,
|
|
207
207
|
scaleInCooldown: autoScalingConfig.scaleInCooldown || aws_cdk_lib_1.Duration.seconds(300),
|
|
208
208
|
scaleOutCooldown: autoScalingConfig.scaleOutCooldown || aws_cdk_lib_1.Duration.seconds(60),
|
|
209
209
|
});
|
|
210
210
|
}
|
|
211
211
|
if (autoScalingConfig.targetMemoryUtilization) {
|
|
212
|
-
scaling.scaleOnMemoryUtilization('
|
|
212
|
+
scaling.scaleOnMemoryUtilization('FargateMemoryScaling', {
|
|
213
213
|
targetUtilizationPercent: autoScalingConfig.targetMemoryUtilization,
|
|
214
214
|
scaleInCooldown: autoScalingConfig.scaleInCooldown || aws_cdk_lib_1.Duration.seconds(300),
|
|
215
215
|
scaleOutCooldown: autoScalingConfig.scaleOutCooldown || aws_cdk_lib_1.Duration.seconds(60),
|
|
@@ -217,7 +217,7 @@ class FargateNodejsService extends constructs_1.Construct {
|
|
|
217
217
|
}
|
|
218
218
|
if (autoScalingConfig.sqsQueue) {
|
|
219
219
|
const messagesPerTask = autoScalingConfig.messagesPerTask || 5;
|
|
220
|
-
scaling.scaleOnMetric('
|
|
220
|
+
scaling.scaleOnMetric('FargateSqsScaling', {
|
|
221
221
|
metric: autoScalingConfig.sqsQueue.metricApproximateNumberOfMessagesVisible({
|
|
222
222
|
statistic: 'Average',
|
|
223
223
|
period: aws_cdk_lib_1.Duration.minutes(1),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fargate-nodejs-service.js","sourceRoot":"","sources":["../lib/fargate-nodejs-service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAE7B,iDAAmC;AACnC,6CAAsD;AACtD,yDAA2C;AAC3C,uEAAyD;AACzD,yDAA2C;AAC3C,8EAAgE;AAEhE,2DAA6C;AAC7C,2CAAuC;AAEvC,yCAAqC;AAMrC,MAAa,oBAAqB,SAAQ,sBAAS;IAIjC,OAAO,CAAqB;IAK5B,cAAc,CAA4B;IAK1C,SAAS,CAA0B;IAKnC,GAAG,CAAW;IAKd,OAAO,CAAe;IAKtB,aAAa,CAAqB;IAK3C,WAAW,CAAgC;IAElD,YAAY,KAAgB,EAAE,EAAU,EAAE,KAAgC;QACxE,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAGjB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAGD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,kBAAO,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAC1F,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC;QAEtC,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAGrF,MAAM,OAAO,GAAG,IAAI,kBAAO,CAAC;YAC1B,KAAK,EAAE,SAAS;YAChB,WAAW;YACX,OAAO;YACP,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM;YAC9B,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,SAAS;YACpC,eAAe,EAAE,KAAK,CAAC,QAAQ,EAAE,eAAe;SACjD,CAAC,CAAC;QAGH,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAGnC,IAAI,CAAC,GAAG;YACN,KAAK,CAAC,GAAG;gBACT,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"fargate-nodejs-service.js","sourceRoot":"","sources":["../lib/fargate-nodejs-service.ts"],"names":[],"mappings":"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"}
|