@awsless/awsless 0.0.576 → 0.0.577

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/dist/bin.js CHANGED
@@ -7214,9 +7214,11 @@ var createFargateTask = (parentGroup, ctx, ns, id, local) => {
7214
7214
  cidrIpv4: "0.0.0.0/0",
7215
7215
  tags
7216
7216
  });
7217
+ const clusterName = ctx.shared.get("instance", "cluster-name");
7218
+ const clusterArn = ctx.shared.get("instance", "cluster-arn");
7217
7219
  const service = new $25.aws.ecs.Service(group, "service", {
7218
7220
  name,
7219
- cluster: ctx.shared.get("instance", "cluster-arn"),
7221
+ cluster: clusterArn,
7220
7222
  taskDefinition: task2.arn,
7221
7223
  desiredCount: 1,
7222
7224
  launchType: "FARGATE",
@@ -7228,13 +7230,38 @@ var createFargateTask = (parentGroup, ctx, ns, id, local) => {
7228
7230
  },
7229
7231
  forceNewDeployment: true,
7230
7232
  forceDelete: true,
7231
- // deploymentCircuitBreaker: {
7232
- // enable: true,
7233
- // rollback: true,
7234
- // },
7235
- // deploymentController: { type: 'ECS' },
7236
- tags
7233
+ tags,
7234
+ // ------------------------------------------------------------
7235
+ // Deployment safeguards: keep the service pinned to one running task.
7236
+ schedulingStrategy: "REPLICA",
7237
+ deploymentMaximumPercent: 100,
7238
+ deploymentMinimumHealthyPercent: 0,
7239
+ deploymentCircuitBreaker: {
7240
+ enable: true,
7241
+ rollback: true
7242
+ },
7243
+ // ------------------------------------------------------------
7244
+ // Tag hygiene: let ECS manage and propagate runtime tags automatically.
7245
+ enableEcsManagedTags: true,
7246
+ propagateTags: "SERVICE"
7237
7247
  });
7248
+ new $25.aws.appautoscaling.Target(
7249
+ group,
7250
+ "autoscaling-target",
7251
+ {
7252
+ serviceNamespace: "ecs",
7253
+ scalableDimension: "ecs:service:DesiredCount",
7254
+ minCapacity: 1,
7255
+ maxCapacity: 1,
7256
+ resourceId: $resolve([clusterName, service.name], (clusterName2, serviceName) => {
7257
+ return `service/${clusterName2}/${serviceName}`;
7258
+ }),
7259
+ tags
7260
+ },
7261
+ {
7262
+ dependsOn: [service]
7263
+ }
7264
+ );
7238
7265
  ctx.onEnv((name2, value) => {
7239
7266
  variables[name2] = value;
7240
7267
  task2.$.attachDependencies(value);
@@ -7280,6 +7307,7 @@ var instanceFeature = defineFeature({
7280
7307
  const cluster = new $26.aws.ecs.Cluster(group, "cluster", {
7281
7308
  name: ctx.app.name
7282
7309
  });
7310
+ ctx.shared.set("instance", "cluster-name", cluster.name);
7283
7311
  ctx.shared.set("instance", "cluster-arn", cluster.arn);
7284
7312
  },
7285
7313
  onStack(ctx) {
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@awsless/awsless",
3
- "version": "0.0.576",
3
+ "version": "0.0.577",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -33,23 +33,23 @@
33
33
  ]
34
34
  },
35
35
  "peerDependencies": {
36
- "@awsless/big-float": "^0.1.4",
37
- "@awsless/cloudwatch": "^0.0.1",
38
- "@awsless/clui": "^0.0.7",
39
36
  "@awsless/duration": "^0.0.3",
40
- "@awsless/dynamodb": "^0.2.10",
41
37
  "@awsless/iot": "^0.0.3",
42
38
  "@awsless/json": "^0.0.10",
43
- "@awsless/lambda": "^0.0.33",
39
+ "@awsless/dynamodb": "^0.2.10",
40
+ "@awsless/cloudwatch": "^0.0.1",
41
+ "@awsless/big-float": "^0.1.4",
44
42
  "@awsless/mqtt": "^0.0.2",
45
- "@awsless/redis": "^0.0.14",
43
+ "@awsless/lambda": "^0.0.33",
46
44
  "@awsless/open-search": "^0.0.21",
45
+ "@awsless/redis": "^0.0.14",
47
46
  "@awsless/s3": "^0.0.21",
48
- "@awsless/sns": "^0.0.10",
49
- "@awsless/sqs": "^0.0.15",
50
47
  "@awsless/validate": "^0.0.19",
51
- "@awsless/weak-cache": "^0.0.1",
52
- "@awsless/ssm": "^0.0.7"
48
+ "@awsless/sqs": "^0.0.15",
49
+ "@awsless/sns": "^0.0.10",
50
+ "@awsless/ssm": "^0.0.7",
51
+ "@awsless/clui": "^0.0.7",
52
+ "@awsless/weak-cache": "^0.0.1"
53
53
  },
54
54
  "dependencies": {
55
55
  "@arcanyx/cidr-slicer": "^0.3.0",
@@ -135,16 +135,16 @@
135
135
  "zod": "^3.24.2",
136
136
  "zod-to-json-schema": "^3.24.3",
137
137
  "@awsless/big-float": "^0.1.4",
138
+ "@awsless/clui": "^0.0.7",
138
139
  "@awsless/cloudwatch": "^0.0.1",
139
140
  "@awsless/formation": "^0.0.80",
140
- "@awsless/clui": "^0.0.7",
141
+ "@awsless/duration": "^0.0.3",
141
142
  "@awsless/graphql": "^0.0.9",
142
143
  "@awsless/json": "^0.0.10",
143
- "@awsless/ts-file-cache": "^0.0.12",
144
- "@awsless/size": "^0.0.2",
145
- "@awsless/validate": "^0.0.19",
146
144
  "@awsless/scheduler": "^0.0.4",
147
- "@awsless/duration": "^0.0.3"
145
+ "@awsless/size": "^0.0.2",
146
+ "@awsless/ts-file-cache": "^0.0.12",
147
+ "@awsless/validate": "^0.0.19"
148
148
  },
149
149
  "devDependencies": {
150
150
  "@node-rs/bcrypt": "^1.10.5",