@awsless/cli 0.0.46-next.38 → 0.0.46-next.40
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 +172 -75
- package/package.json +12 -12
package/dist/bin.js
CHANGED
|
@@ -163622,8 +163622,7 @@ var authFeature = defineFeature({
|
|
|
163622
163622
|
},
|
|
163623
163623
|
deletionProtection: ctx.appConfig.removal === "retain" ? "ACTIVE" : "INACTIVE"
|
|
163624
163624
|
}, {
|
|
163625
|
-
retainOnDelete: ctx.appConfig.removal === "retain"
|
|
163626
|
-
import: ctx.import ? name : undefined
|
|
163625
|
+
retainOnDelete: ctx.appConfig.removal === "retain"
|
|
163627
163626
|
});
|
|
163628
163627
|
const client4 = new aws3.cognito.UserPoolClient(group4, "client", {
|
|
163629
163628
|
userPoolId: userPool.id,
|
|
@@ -164420,6 +164419,8 @@ var bundleFeature = defineFeature({
|
|
|
164420
164419
|
}
|
|
164421
164420
|
]
|
|
164422
164421
|
})
|
|
164422
|
+
}, {
|
|
164423
|
+
import: ctx.import ? shortName : undefined
|
|
164423
164424
|
});
|
|
164424
164425
|
const statements = new Set;
|
|
164425
164426
|
const statementDeps = new Set;
|
|
@@ -164511,7 +164512,8 @@ var bundleFeature = defineFeature({
|
|
|
164511
164512
|
}
|
|
164512
164513
|
};
|
|
164513
164514
|
const lambda = new aws3.lambda.Function(group4, "function", lambdaProps, {
|
|
164514
|
-
dependsOn: [vpcPolicy]
|
|
164515
|
+
dependsOn: [vpcPolicy],
|
|
164516
|
+
import: ctx.import ? name : undefined
|
|
164515
164517
|
});
|
|
164516
164518
|
const onFailure = getGlobalOnFailure(ctx);
|
|
164517
164519
|
const deployment = new DeploymentAlias(group4, "deployment-alias", {
|
|
@@ -164562,6 +164564,8 @@ var bundleFeature = defineFeature({
|
|
|
164562
164564
|
logGroup = new aws3.cloudwatch.LogGroup(group4, "log", {
|
|
164563
164565
|
name: `/aws/lambda/${name}`,
|
|
164564
164566
|
retentionInDays: toDays5(defaults2.log.retention)
|
|
164567
|
+
}, {
|
|
164568
|
+
import: ctx.import ? `/aws/lambda/${name}` : undefined
|
|
164565
164569
|
});
|
|
164566
164570
|
addPermission({
|
|
164567
164571
|
actions: ["logs:PutLogEvents", "logs:CreateLogStream"],
|
|
@@ -172752,22 +172756,26 @@ var cronFeature = defineFeature({
|
|
|
172752
172756
|
const found = ctx.stackConfigs.find((stackConfig) => Object.keys(stackConfig.crons ?? {}).length > 0);
|
|
172753
172757
|
if (found) {
|
|
172754
172758
|
const bundle = ctx.shared.get("bundle", "main");
|
|
172759
|
+
const groupName = formatGlobalResourceName({
|
|
172760
|
+
appName: ctx.app.name,
|
|
172761
|
+
resourceType: "cron",
|
|
172762
|
+
resourceName: "group"
|
|
172763
|
+
});
|
|
172755
172764
|
const group4 = new aws3.scheduler.ScheduleGroup(ctx.base, "cron", {
|
|
172756
|
-
name:
|
|
172757
|
-
appName: ctx.app.name,
|
|
172758
|
-
resourceType: "cron",
|
|
172759
|
-
resourceName: "group"
|
|
172760
|
-
}),
|
|
172765
|
+
name: groupName,
|
|
172761
172766
|
tags: {
|
|
172762
172767
|
app: ctx.app.name
|
|
172763
172768
|
}
|
|
172769
|
+
}, {
|
|
172770
|
+
import: ctx.import ? groupName : undefined
|
|
172771
|
+
});
|
|
172772
|
+
const roleName = formatGlobalResourceName({
|
|
172773
|
+
appName: ctx.app.name,
|
|
172774
|
+
resourceType: "cron",
|
|
172775
|
+
resourceName: "schedule"
|
|
172764
172776
|
});
|
|
172765
172777
|
const role = new aws3.iam.Role(ctx.base, "cron-role", {
|
|
172766
|
-
name:
|
|
172767
|
-
appName: ctx.app.name,
|
|
172768
|
-
resourceType: "cron",
|
|
172769
|
-
resourceName: "schedule"
|
|
172770
|
-
}),
|
|
172778
|
+
name: roleName,
|
|
172771
172779
|
description: `${ctx.app.name} cron scheduler`,
|
|
172772
172780
|
assumeRolePolicy: JSON.stringify({
|
|
172773
172781
|
Version: "2012-10-17",
|
|
@@ -172807,6 +172815,8 @@ var cronFeature = defineFeature({
|
|
|
172807
172815
|
}))
|
|
172808
172816
|
}
|
|
172809
172817
|
]
|
|
172818
|
+
}, {
|
|
172819
|
+
import: ctx.import ? roleName : undefined
|
|
172810
172820
|
});
|
|
172811
172821
|
ctx.shared.set("cron", "group-name", group4.name);
|
|
172812
172822
|
ctx.shared.set("cron", "role-arn", role.arn);
|
|
@@ -172824,6 +172834,11 @@ var cronFeature = defineFeature({
|
|
|
172824
172834
|
resourceType: "cron",
|
|
172825
172835
|
resourceName: shortId(id)
|
|
172826
172836
|
});
|
|
172837
|
+
const scheduleGroupName = formatGlobalResourceName({
|
|
172838
|
+
appName: ctx.app.name,
|
|
172839
|
+
resourceType: "cron",
|
|
172840
|
+
resourceName: "group"
|
|
172841
|
+
});
|
|
172827
172842
|
new aws3.scheduler.Schedule(group4, "cron", {
|
|
172828
172843
|
name,
|
|
172829
172844
|
state: props.enabled ? "ENABLED" : "DISABLED",
|
|
@@ -172843,6 +172858,8 @@ var cronFeature = defineFeature({
|
|
|
172843
172858
|
})}`
|
|
172844
172859
|
} : undefined
|
|
172845
172860
|
}
|
|
172861
|
+
}, {
|
|
172862
|
+
import: ctx.import ? `${scheduleGroupName}/${name}` : undefined
|
|
172846
172863
|
});
|
|
172847
172864
|
}
|
|
172848
172865
|
}
|
|
@@ -172920,6 +172937,8 @@ var domainFeature = defineFeature({
|
|
|
172920
172937
|
name: ctx.app.name,
|
|
172921
172938
|
reputationMetricsEnabled: true,
|
|
172922
172939
|
sendingEnabled: true
|
|
172940
|
+
}, {
|
|
172941
|
+
import: ctx.import ? ctx.app.name : undefined
|
|
172923
172942
|
});
|
|
172924
172943
|
for (const [id, props] of domains) {
|
|
172925
172944
|
const group5 = new Group(ctx.base, "domain", id);
|
|
@@ -172954,6 +172973,8 @@ var domainFeature = defineFeature({
|
|
|
172954
172973
|
}
|
|
172955
172974
|
const identity5 = new aws3.ses.DomainIdentity(group5, "mail", {
|
|
172956
172975
|
domain: props.domain
|
|
172976
|
+
}, {
|
|
172977
|
+
import: ctx.import ? props.domain : undefined
|
|
172957
172978
|
});
|
|
172958
172979
|
const verificationRecord = new aws3.route53.Record(group5, `verification`, {
|
|
172959
172980
|
zoneId: zone.id,
|
|
@@ -172964,6 +172985,8 @@ var domainFeature = defineFeature({
|
|
|
172964
172985
|
});
|
|
172965
172986
|
const dkim = new aws3.ses.DomainDkim(group5, "dkim", {
|
|
172966
172987
|
domain: props.domain
|
|
172988
|
+
}, {
|
|
172989
|
+
import: ctx.import ? props.domain : undefined
|
|
172967
172990
|
});
|
|
172968
172991
|
for (let i15 = 0;i15 < 3; i15++) {
|
|
172969
172992
|
new aws3.route53.Record(group5, `dkim-${i15}`, {
|
|
@@ -172978,6 +173001,8 @@ var domainFeature = defineFeature({
|
|
|
172978
173001
|
domain: identity5.domain,
|
|
172979
173002
|
mailFromDomain: `mail.${props.domain}`,
|
|
172980
173003
|
behaviorOnMxFailure: "UseDefaultValue"
|
|
173004
|
+
}, {
|
|
173005
|
+
import: ctx.import ? props.domain : undefined
|
|
172981
173006
|
});
|
|
172982
173007
|
new aws3.route53.Record(group5, `MX`, {
|
|
172983
173008
|
zoneId: zone.id,
|
|
@@ -173222,6 +173247,8 @@ var createLambdaFunction = (ctx, id, local) => {
|
|
|
173222
173247
|
}
|
|
173223
173248
|
]
|
|
173224
173249
|
})
|
|
173250
|
+
}, {
|
|
173251
|
+
import: ctx.import ? roleName : undefined
|
|
173225
173252
|
});
|
|
173226
173253
|
const statements = [];
|
|
173227
173254
|
const statementDeps = new Set;
|
|
@@ -173314,7 +173341,8 @@ var createLambdaFunction = (ctx, id, local) => {
|
|
|
173314
173341
|
systemLogLevel: props.log.format === "json" ? props.log.system?.toUpperCase() : undefined
|
|
173315
173342
|
}
|
|
173316
173343
|
}, {
|
|
173317
|
-
dependsOn
|
|
173344
|
+
dependsOn,
|
|
173345
|
+
import: ctx.import ? name : undefined
|
|
173318
173346
|
});
|
|
173319
173347
|
const onFailure = getGlobalOnFailure(ctx);
|
|
173320
173348
|
const { deployment } = createDeploymentAliases(group4, ctx, {
|
|
@@ -173413,6 +173441,8 @@ var createLambdaFunction = (ctx, id, local) => {
|
|
|
173413
173441
|
const logGroup = new aws3.cloudwatch.LogGroup(group4, "log", {
|
|
173414
173442
|
name: `/aws/lambda/${name}`,
|
|
173415
173443
|
retentionInDays: toDays6(props.log.retention)
|
|
173444
|
+
}, {
|
|
173445
|
+
import: ctx.import ? `/aws/lambda/${name}` : undefined
|
|
173416
173446
|
});
|
|
173417
173447
|
addPermission({
|
|
173418
173448
|
actions: ["logs:PutLogEvents", "logs:CreateLogStream"],
|
|
@@ -173499,6 +173529,8 @@ var createLambdaFunctionFromZip = (parentGroup, ctx, ns, id, props) => {
|
|
|
173499
173529
|
}
|
|
173500
173530
|
]
|
|
173501
173531
|
})
|
|
173532
|
+
}, {
|
|
173533
|
+
import: ctx.import ? roleName : undefined
|
|
173502
173534
|
});
|
|
173503
173535
|
const statements = [];
|
|
173504
173536
|
const statementDeps = new Set;
|
|
@@ -173579,7 +173611,8 @@ var createLambdaFunctionFromZip = (parentGroup, ctx, ns, id, props) => {
|
|
|
173579
173611
|
systemLogLevel: (props.log?.format ?? "json") === "json" ? props.log?.system?.toUpperCase() : undefined
|
|
173580
173612
|
}
|
|
173581
173613
|
}, {
|
|
173582
|
-
dependsOn
|
|
173614
|
+
dependsOn,
|
|
173615
|
+
import: ctx.import ? name : undefined
|
|
173583
173616
|
});
|
|
173584
173617
|
const onFailure = getGlobalOnFailure(ctx);
|
|
173585
173618
|
if (onFailure) {
|
|
@@ -173620,6 +173653,8 @@ var createLambdaFunctionFromZip = (parentGroup, ctx, ns, id, props) => {
|
|
|
173620
173653
|
const logGroup = new aws3.cloudwatch.LogGroup(group4, "log", {
|
|
173621
173654
|
name: `/aws/lambda/${name}`,
|
|
173622
173655
|
retentionInDays: toDays6(retention)
|
|
173656
|
+
}, {
|
|
173657
|
+
import: ctx.import ? `/aws/lambda/${name}` : undefined
|
|
173623
173658
|
});
|
|
173624
173659
|
addPermission({
|
|
173625
173660
|
actions: ["logs:PutLogEvents", "logs:CreateLogStream"],
|
|
@@ -173809,21 +173844,25 @@ var onFailureFeature = defineFeature({
|
|
|
173809
173844
|
return;
|
|
173810
173845
|
}
|
|
173811
173846
|
const group4 = new Group(ctx.base, "on-failure", "main");
|
|
173847
|
+
const deadletterName = formatGlobalResourceName({
|
|
173848
|
+
appName: ctx.app.name,
|
|
173849
|
+
resourceType: "on-failure",
|
|
173850
|
+
resourceName: "deadletter"
|
|
173851
|
+
});
|
|
173812
173852
|
const deadletter = new aws3.sqs.Queue(group4, "deadletter", {
|
|
173813
|
-
name:
|
|
173814
|
-
appName: ctx.app.name,
|
|
173815
|
-
resourceType: "on-failure",
|
|
173816
|
-
resourceName: "deadletter"
|
|
173817
|
-
}),
|
|
173853
|
+
name: deadletterName,
|
|
173818
173854
|
messageRetentionSeconds: toSeconds5(days10(14))
|
|
173855
|
+
}, {
|
|
173856
|
+
import: ctx.import ? `https://sqs.${ctx.appConfig.region}.amazonaws.com/${ctx.accountId}/${deadletterName}` : undefined
|
|
173819
173857
|
});
|
|
173820
173858
|
const handlerTimeout = toSeconds5(props.consumer.timeout ?? ctx.appConfig.defaults.function.timeout);
|
|
173859
|
+
const queueName = formatGlobalResourceName({
|
|
173860
|
+
appName: ctx.app.name,
|
|
173861
|
+
resourceType: "on-failure",
|
|
173862
|
+
resourceName: "failure"
|
|
173863
|
+
});
|
|
173821
173864
|
const queue2 = new aws3.sqs.Queue(group4, "on-failure", {
|
|
173822
|
-
name:
|
|
173823
|
-
appName: ctx.app.name,
|
|
173824
|
-
resourceType: "on-failure",
|
|
173825
|
-
resourceName: "failure"
|
|
173826
|
-
}),
|
|
173865
|
+
name: queueName,
|
|
173827
173866
|
visibilityTimeoutSeconds: handlerTimeout * 2,
|
|
173828
173867
|
redrivePolicy: deadletter.arn.pipe((deadLetterTargetArn) => {
|
|
173829
173868
|
return JSON.stringify({
|
|
@@ -173831,14 +173870,17 @@ var onFailureFeature = defineFeature({
|
|
|
173831
173870
|
maxReceiveCount: 3
|
|
173832
173871
|
});
|
|
173833
173872
|
})
|
|
173873
|
+
}, {
|
|
173874
|
+
import: ctx.import ? `https://sqs.${ctx.appConfig.region}.amazonaws.com/${ctx.accountId}/${queueName}` : undefined
|
|
173875
|
+
});
|
|
173876
|
+
const bucketName = formatGlobalResourceName({
|
|
173877
|
+
appName: ctx.app.name,
|
|
173878
|
+
resourceType: "on-failure",
|
|
173879
|
+
resourceName: "failure",
|
|
173880
|
+
postfix: ctx.appId
|
|
173834
173881
|
});
|
|
173835
173882
|
const bucket = new aws3.s3.Bucket(group4, "bucket", {
|
|
173836
|
-
bucket:
|
|
173837
|
-
appName: ctx.app.name,
|
|
173838
|
-
resourceType: "on-failure",
|
|
173839
|
-
resourceName: "failure",
|
|
173840
|
-
postfix: ctx.appId
|
|
173841
|
-
}),
|
|
173883
|
+
bucket: bucketName,
|
|
173842
173884
|
lifecycleRule: [
|
|
173843
173885
|
{
|
|
173844
173886
|
id: "ttl",
|
|
@@ -173848,6 +173890,8 @@ var onFailureFeature = defineFeature({
|
|
|
173848
173890
|
}
|
|
173849
173891
|
}
|
|
173850
173892
|
]
|
|
173893
|
+
}, {
|
|
173894
|
+
import: ctx.import ? bucketName : undefined
|
|
173851
173895
|
});
|
|
173852
173896
|
ctx.shared.set("on-failure", "resources", {
|
|
173853
173897
|
group: group4,
|
|
@@ -173856,12 +173900,15 @@ var onFailureFeature = defineFeature({
|
|
|
173856
173900
|
});
|
|
173857
173901
|
const notify = props.notify;
|
|
173858
173902
|
if (notify) {
|
|
173903
|
+
const topicName = formatGlobalResourceName({
|
|
173904
|
+
appName: ctx.app.name,
|
|
173905
|
+
resourceType: "on-failure",
|
|
173906
|
+
resourceName: "deadletter"
|
|
173907
|
+
});
|
|
173859
173908
|
const topic = new aws3.sns.Topic(group4, "deadletter-topic", {
|
|
173860
|
-
name:
|
|
173861
|
-
|
|
173862
|
-
|
|
173863
|
-
resourceName: "deadletter"
|
|
173864
|
-
})
|
|
173909
|
+
name: topicName
|
|
173910
|
+
}, {
|
|
173911
|
+
import: ctx.import ? `arn:aws:sns:${ctx.appConfig.region}:${ctx.accountId}:${topicName}` : undefined
|
|
173865
173912
|
});
|
|
173866
173913
|
for (const email of notify) {
|
|
173867
173914
|
new aws3.sns.TopicSubscription(group4, email, {
|
|
@@ -173870,12 +173917,13 @@ var onFailureFeature = defineFeature({
|
|
|
173870
173917
|
endpoint: email
|
|
173871
173918
|
});
|
|
173872
173919
|
}
|
|
173920
|
+
const roleName = formatGlobalResourceName({
|
|
173921
|
+
appName: ctx.app.name,
|
|
173922
|
+
resourceType: "on-failure",
|
|
173923
|
+
resourceName: "pipe"
|
|
173924
|
+
});
|
|
173873
173925
|
const role = new aws3.iam.Role(group4, "deadletter-topic-role", {
|
|
173874
|
-
name:
|
|
173875
|
-
appName: ctx.app.name,
|
|
173876
|
-
resourceType: "on-failure",
|
|
173877
|
-
resourceName: "pipe"
|
|
173878
|
-
}),
|
|
173926
|
+
name: roleName,
|
|
173879
173927
|
description: `${ctx.app.name} on-failure deadletter notification pipe`,
|
|
173880
173928
|
assumeRolePolicy: JSON.stringify({
|
|
173881
173929
|
Version: "2012-10-17",
|
|
@@ -173914,13 +173962,16 @@ var onFailureFeature = defineFeature({
|
|
|
173914
173962
|
})))
|
|
173915
173963
|
}
|
|
173916
173964
|
]
|
|
173965
|
+
}, {
|
|
173966
|
+
import: ctx.import ? roleName : undefined
|
|
173967
|
+
});
|
|
173968
|
+
const pipeName = formatGlobalResourceName({
|
|
173969
|
+
appName: ctx.app.name,
|
|
173970
|
+
resourceType: "on-failure",
|
|
173971
|
+
resourceName: "notify"
|
|
173917
173972
|
});
|
|
173918
173973
|
new aws3.pipes.Pipe(group4, "deadletter-topic-pipe", {
|
|
173919
|
-
name:
|
|
173920
|
-
appName: ctx.app.name,
|
|
173921
|
-
resourceType: "on-failure",
|
|
173922
|
-
resourceName: "notify"
|
|
173923
|
-
}),
|
|
173974
|
+
name: pipeName,
|
|
173924
173975
|
roleArn: role.arn,
|
|
173925
173976
|
source: deadletter.arn,
|
|
173926
173977
|
target: topic.arn,
|
|
@@ -173940,6 +173991,8 @@ var onFailureFeature = defineFeature({
|
|
|
173940
173991
|
].join(`
|
|
173941
173992
|
`)
|
|
173942
173993
|
}
|
|
173994
|
+
}, {
|
|
173995
|
+
import: ctx.import ? pipeName : undefined
|
|
173943
173996
|
});
|
|
173944
173997
|
}
|
|
173945
173998
|
},
|
|
@@ -174163,6 +174216,8 @@ var createPubSubService = (parentGroup, ctx, id, props, inputs) => {
|
|
|
174163
174216
|
]
|
|
174164
174217
|
}),
|
|
174165
174218
|
managedPolicyArns: ["arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy"]
|
|
174219
|
+
}, {
|
|
174220
|
+
import: ctx.import ? shortId(`${shortName}:execution-role`) : undefined
|
|
174166
174221
|
});
|
|
174167
174222
|
const role = new aws3.iam.Role(group4, "task-role", {
|
|
174168
174223
|
name: shortId(`${shortName}:task-role`),
|
|
@@ -174197,7 +174252,8 @@ var createPubSubService = (parentGroup, ctx, id, props, inputs) => {
|
|
|
174197
174252
|
}
|
|
174198
174253
|
]
|
|
174199
174254
|
}, {
|
|
174200
|
-
dependsOn: [code]
|
|
174255
|
+
dependsOn: [code],
|
|
174256
|
+
import: ctx.import ? shortId(`${shortName}:task-role`) : undefined
|
|
174201
174257
|
});
|
|
174202
174258
|
const statements = [];
|
|
174203
174259
|
const statementDeps = new Set;
|
|
@@ -174223,6 +174279,8 @@ var createPubSubService = (parentGroup, ctx, id, props, inputs) => {
|
|
|
174223
174279
|
logGroup = new aws3.cloudwatch.LogGroup(group4, "log", {
|
|
174224
174280
|
name: `/aws/ecs/${name}`,
|
|
174225
174281
|
retentionInDays: toDays7(props.log.retention)
|
|
174282
|
+
}, {
|
|
174283
|
+
import: ctx.import ? `/aws/ecs/${name}` : undefined
|
|
174226
174284
|
});
|
|
174227
174285
|
if (ctx.shared.has("on-error-log", "subscriber-arn")) {
|
|
174228
174286
|
new aws3.cloudwatch.LogSubscriptionFilter(group4, "on-error-log", {
|
|
@@ -174458,7 +174516,8 @@ var pubsubFeature = defineFeature({
|
|
|
174458
174516
|
const cluster = new aws3.ecs.Cluster(clusterGroup, "cluster", {
|
|
174459
174517
|
name: `${ctx.app.name}-pubsub`
|
|
174460
174518
|
}, {
|
|
174461
|
-
replaceOnChanges: ["name"]
|
|
174519
|
+
replaceOnChanges: ["name"],
|
|
174520
|
+
import: ctx.import ? `arn:aws:ecs:${ctx.appConfig.region}:${ctx.accountId}:cluster/${ctx.app.name}-pubsub` : undefined
|
|
174462
174521
|
});
|
|
174463
174522
|
for (const [id, props] of pubsubs) {
|
|
174464
174523
|
const group4 = new Group(ctx.base, "pubsub", id);
|
|
@@ -174477,6 +174536,8 @@ var pubsubFeature = defineFeature({
|
|
|
174477
174536
|
});
|
|
174478
174537
|
const topic = new aws3.sns.Topic(group4, "events", {
|
|
174479
174538
|
name: topicName
|
|
174539
|
+
}, {
|
|
174540
|
+
import: ctx.import ? `arn:aws:sns:${ctx.appConfig.region}:${ctx.accountId}:${topicName}` : undefined
|
|
174480
174541
|
});
|
|
174481
174542
|
ctx.shared.add("pubsub", "events-topic-arn", id, topic.arn);
|
|
174482
174543
|
const events = pubsubEventTypes.filter((event) => {
|
|
@@ -174775,6 +174836,8 @@ var queueFeature = defineFeature({
|
|
|
174775
174836
|
fifoQueue: true,
|
|
174776
174837
|
deduplicationScope: "messageGroup",
|
|
174777
174838
|
fifoThroughputLimit: "perMessageGroupId"
|
|
174839
|
+
}, {
|
|
174840
|
+
import: ctx.import ? `https://sqs.${ctx.appConfig.region}.amazonaws.com/${ctx.accountId}/${baseName}.fifo` : undefined
|
|
174778
174841
|
});
|
|
174779
174842
|
if (local.consumer) {
|
|
174780
174843
|
const bundle = registerBundleFunction(ctx, formatRouteKey(ctx.stack.name, "queue", id), local.consumer);
|
|
@@ -174962,12 +175025,13 @@ var rpcFeature = defineFeature({
|
|
|
174962
175025
|
exportName: "default"
|
|
174963
175026
|
});
|
|
174964
175027
|
bundle.addEnv(formatRouteEnvName2(serverRouteKey, "TIMEOUT"), toSeconds7(ctx.appConfig.defaults.function.timeout).toString());
|
|
175028
|
+
const lockTableName = formatGlobalResourceName({
|
|
175029
|
+
appName: ctx.app.name,
|
|
175030
|
+
resourceType: "rpc-lock",
|
|
175031
|
+
resourceName: id
|
|
175032
|
+
});
|
|
174965
175033
|
const lockTable = new aws3.dynamodb.Table(group4, "lock", {
|
|
174966
|
-
name:
|
|
174967
|
-
appName: ctx.app.name,
|
|
174968
|
-
resourceType: "rpc-lock",
|
|
174969
|
-
resourceName: id
|
|
174970
|
-
}),
|
|
175034
|
+
name: lockTableName,
|
|
174971
175035
|
hashKey: "key",
|
|
174972
175036
|
billingMode: "PAY_PER_REQUEST",
|
|
174973
175037
|
ttl: {
|
|
@@ -174980,6 +175044,8 @@ var rpcFeature = defineFeature({
|
|
|
174980
175044
|
type: "S"
|
|
174981
175045
|
}
|
|
174982
175046
|
]
|
|
175047
|
+
}, {
|
|
175048
|
+
import: ctx.import ? lockTableName : undefined
|
|
174983
175049
|
});
|
|
174984
175050
|
bundle.addEnv(formatRouteEnvName2(serverRouteKey, "LOCK_TABLE"), lockTable.name);
|
|
174985
175051
|
bundle.addPermission({
|
|
@@ -175689,13 +175755,16 @@ var taskFeature = defineFeature({
|
|
|
175689
175755
|
tags: {
|
|
175690
175756
|
app: ctx.app.name
|
|
175691
175757
|
}
|
|
175758
|
+
}, {
|
|
175759
|
+
import: ctx.import ? scheduleGroupName : undefined
|
|
175760
|
+
});
|
|
175761
|
+
const roleName = formatGlobalResourceName({
|
|
175762
|
+
appName: ctx.app.name,
|
|
175763
|
+
resourceType: "task",
|
|
175764
|
+
resourceName: "schedule"
|
|
175692
175765
|
});
|
|
175693
175766
|
const role = new aws3.iam.Role(group4, "schedule", {
|
|
175694
|
-
name:
|
|
175695
|
-
appName: ctx.app.name,
|
|
175696
|
-
resourceType: "task",
|
|
175697
|
-
resourceName: "schedule"
|
|
175698
|
-
}),
|
|
175767
|
+
name: roleName,
|
|
175699
175768
|
description: `Task schedule ${ctx.app.name}`,
|
|
175700
175769
|
assumeRolePolicy: JSON.stringify({
|
|
175701
175770
|
Version: "2012-10-17",
|
|
@@ -175729,6 +175798,8 @@ var taskFeature = defineFeature({
|
|
|
175729
175798
|
})
|
|
175730
175799
|
}
|
|
175731
175800
|
]
|
|
175801
|
+
}, {
|
|
175802
|
+
import: ctx.import ? roleName : undefined
|
|
175732
175803
|
});
|
|
175733
175804
|
ctx.addPermission({
|
|
175734
175805
|
actions: ["scheduler:CreateSchedule"],
|
|
@@ -175820,6 +175891,8 @@ var topicFeature = defineFeature({
|
|
|
175820
175891
|
});
|
|
175821
175892
|
const topic = new aws3.sns.Topic(group4, "topic", {
|
|
175822
175893
|
name
|
|
175894
|
+
}, {
|
|
175895
|
+
import: ctx.import ? `arn:aws:sns:${ctx.appConfig.region}:${ctx.accountId}:${name}` : undefined
|
|
175823
175896
|
});
|
|
175824
175897
|
const subscribed = ctx.stackConfigs.some((stack) => stack.subscribers?.[id]);
|
|
175825
175898
|
if (subscribed) {
|
|
@@ -176019,6 +176092,8 @@ var alertFeature = defineFeature({
|
|
|
176019
176092
|
});
|
|
176020
176093
|
const topic = new aws3.sns.Topic(group4, "topic", {
|
|
176021
176094
|
name
|
|
176095
|
+
}, {
|
|
176096
|
+
import: ctx.import ? `arn:aws:sns:${ctx.appConfig.region}:${ctx.accountId}:${name}` : undefined
|
|
176022
176097
|
});
|
|
176023
176098
|
for (const endpoint4 of endpoints2) {
|
|
176024
176099
|
if (isConfigRef(endpoint4)) {
|
|
@@ -176472,6 +176547,8 @@ var createFargateJob = (parentGroup, ctx, ns, id, local) => {
|
|
|
176472
176547
|
]
|
|
176473
176548
|
}),
|
|
176474
176549
|
managedPolicyArns: ["arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy"]
|
|
176550
|
+
}, {
|
|
176551
|
+
import: ctx.import ? shortId(`${shortName}:execution-role`) : undefined
|
|
176475
176552
|
});
|
|
176476
176553
|
const role = new aws3.iam.Role(group4, "task-role", {
|
|
176477
176554
|
name: shortId(`${shortName}:task-role`),
|
|
@@ -176509,7 +176586,8 @@ var createFargateJob = (parentGroup, ctx, ns, id, local) => {
|
|
|
176509
176586
|
}
|
|
176510
176587
|
]
|
|
176511
176588
|
}, {
|
|
176512
|
-
dependsOn: [code]
|
|
176589
|
+
dependsOn: [code],
|
|
176590
|
+
import: ctx.import ? shortId(`${shortName}:task-role`) : undefined
|
|
176513
176591
|
});
|
|
176514
176592
|
const statements = [];
|
|
176515
176593
|
const statementDeps = new Set;
|
|
@@ -176535,6 +176613,8 @@ var createFargateJob = (parentGroup, ctx, ns, id, local) => {
|
|
|
176535
176613
|
logGroup = new aws3.cloudwatch.LogGroup(group4, "log", {
|
|
176536
176614
|
name: `/aws/ecs/${name}`,
|
|
176537
176615
|
retentionInDays: toDays11(props.log.retention)
|
|
176616
|
+
}, {
|
|
176617
|
+
import: ctx.import ? `/aws/ecs/${name}` : undefined
|
|
176538
176618
|
});
|
|
176539
176619
|
if (ctx.shared.has("on-error-log", "subscriber-arn")) {
|
|
176540
176620
|
new aws3.cloudwatch.LogSubscriptionFilter(group4, "on-error-log", {
|
|
@@ -176767,7 +176847,8 @@ var jobFeature = defineFeature({
|
|
|
176767
176847
|
const cluster = new aws3.ecs.Cluster(group4, "cluster", {
|
|
176768
176848
|
name: `${ctx.app.name}-job`
|
|
176769
176849
|
}, {
|
|
176770
|
-
replaceOnChanges: ["name"]
|
|
176850
|
+
replaceOnChanges: ["name"],
|
|
176851
|
+
import: ctx.import ? `arn:aws:ecs:${ctx.appConfig.region}:${ctx.accountId}:cluster/${ctx.app.name}-job` : undefined
|
|
176771
176852
|
});
|
|
176772
176853
|
ctx.shared.set("job", "cluster-name", cluster.name);
|
|
176773
176854
|
ctx.shared.set("job", "cluster-arn", cluster.arn);
|
|
@@ -176921,6 +177002,8 @@ var createFargateTask = (parentGroup, ctx, ns, id, local) => {
|
|
|
176921
177002
|
]
|
|
176922
177003
|
}),
|
|
176923
177004
|
managedPolicyArns: ["arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy"]
|
|
177005
|
+
}, {
|
|
177006
|
+
import: ctx.import ? shortId(`${shortName}:execution-role`) : undefined
|
|
176924
177007
|
});
|
|
176925
177008
|
const role = new aws3.iam.Role(group4, "task-role", {
|
|
176926
177009
|
name: shortId(`${shortName}:task-role`),
|
|
@@ -176955,7 +177038,8 @@ var createFargateTask = (parentGroup, ctx, ns, id, local) => {
|
|
|
176955
177038
|
}
|
|
176956
177039
|
]
|
|
176957
177040
|
}, {
|
|
176958
|
-
dependsOn: [code]
|
|
177041
|
+
dependsOn: [code],
|
|
177042
|
+
import: ctx.import ? shortId(`${shortName}:task-role`) : undefined
|
|
176959
177043
|
});
|
|
176960
177044
|
const statements = [];
|
|
176961
177045
|
const statementDeps = new Set;
|
|
@@ -176981,6 +177065,8 @@ var createFargateTask = (parentGroup, ctx, ns, id, local) => {
|
|
|
176981
177065
|
logGroup = new aws3.cloudwatch.LogGroup(group4, "log", {
|
|
176982
177066
|
name: `/aws/ecs/${name}`,
|
|
176983
177067
|
retentionInDays: toDays12(props.log.retention)
|
|
177068
|
+
}, {
|
|
177069
|
+
import: ctx.import ? `/aws/ecs/${name}` : undefined
|
|
176984
177070
|
});
|
|
176985
177071
|
if (ctx.shared.has("on-error-log", "subscriber-arn")) {
|
|
176986
177072
|
new aws3.cloudwatch.LogSubscriptionFilter(group4, "on-error-log", {
|
|
@@ -177226,7 +177312,8 @@ var instanceFeature = defineFeature({
|
|
|
177226
177312
|
const cluster = new aws3.ecs.Cluster(group4, "cluster", {
|
|
177227
177313
|
name: `${ctx.app.name}-instance`
|
|
177228
177314
|
}, {
|
|
177229
|
-
replaceOnChanges: ["name"]
|
|
177315
|
+
replaceOnChanges: ["name"],
|
|
177316
|
+
import: ctx.import ? `arn:aws:ecs:${ctx.appConfig.region}:${ctx.accountId}:cluster/${ctx.app.name}-instance` : undefined
|
|
177230
177317
|
});
|
|
177231
177318
|
ctx.shared.set("instance", "cluster-name", cluster.name);
|
|
177232
177319
|
ctx.shared.set("instance", "cluster-arn", cluster.arn);
|
|
@@ -177241,6 +177328,8 @@ var instanceFeature = defineFeature({
|
|
|
177241
177328
|
messageRetentionSeconds: toSeconds11(days11(4)),
|
|
177242
177329
|
maxMessageSize: toBytes(kibibytes(256)),
|
|
177243
177330
|
receiveWaitTimeSeconds: toSeconds11(seconds6(20))
|
|
177331
|
+
}, {
|
|
177332
|
+
import: ctx.import ? `https://sqs.${ctx.appConfig.region}.amazonaws.com/${ctx.accountId}/${task2.name}` : undefined
|
|
177244
177333
|
});
|
|
177245
177334
|
task2.addPermission({
|
|
177246
177335
|
actions: [
|
|
@@ -177340,13 +177429,16 @@ var metricFeature = defineFeature({
|
|
|
177340
177429
|
let alarmAction;
|
|
177341
177430
|
let invokesBundle = false;
|
|
177342
177431
|
if (Array.isArray(alarmProps.trigger)) {
|
|
177432
|
+
const topicName = formatLocalResourceName({
|
|
177433
|
+
appName: ctx.app.name,
|
|
177434
|
+
stackName: ctx.stack.name,
|
|
177435
|
+
resourceType: "metric",
|
|
177436
|
+
resourceName: alarmName
|
|
177437
|
+
});
|
|
177343
177438
|
const topic = new aws3.sns.Topic(alarmGroup, "alarm-trigger", {
|
|
177344
|
-
name:
|
|
177345
|
-
|
|
177346
|
-
|
|
177347
|
-
resourceType: "metric",
|
|
177348
|
-
resourceName: alarmName
|
|
177349
|
-
})
|
|
177439
|
+
name: topicName
|
|
177440
|
+
}, {
|
|
177441
|
+
import: ctx.import ? `arn:aws:sns:${ctx.appConfig.region}:${ctx.accountId}:${topicName}` : undefined
|
|
177350
177442
|
});
|
|
177351
177443
|
alarmAction = topic.arn;
|
|
177352
177444
|
for (const email of alarmProps.trigger) {
|
|
@@ -177850,17 +177942,19 @@ var routerFeature = defineFeature({
|
|
|
177850
177942
|
let routeStore;
|
|
177851
177943
|
let sharedGroup;
|
|
177852
177944
|
if (routers.length > 0) {
|
|
177945
|
+
const storeName = formatGlobalResourceName({
|
|
177946
|
+
appName: ctx.app.name,
|
|
177947
|
+
resourceType: "router",
|
|
177948
|
+
resourceName: "store"
|
|
177949
|
+
});
|
|
177853
177950
|
sharedGroup = new Group(ctx.base, "router", "shared");
|
|
177854
177951
|
routeStore = new aws3.cloudfront.KeyValueStore(sharedGroup, "routes", {
|
|
177855
|
-
name:
|
|
177856
|
-
appName: ctx.app.name,
|
|
177857
|
-
resourceType: "router",
|
|
177858
|
-
resourceName: "store"
|
|
177859
|
-
}),
|
|
177952
|
+
name: storeName,
|
|
177860
177953
|
comment: "Store for routes"
|
|
177861
177954
|
}, {
|
|
177862
177955
|
replaceOnChanges: ["name"],
|
|
177863
|
-
createBeforeReplace: true
|
|
177956
|
+
createBeforeReplace: true,
|
|
177957
|
+
import: ctx.import ? storeName : undefined
|
|
177864
177958
|
});
|
|
177865
177959
|
}
|
|
177866
177960
|
for (const [id, props] of routers) {
|
|
@@ -177870,8 +177964,9 @@ var routerFeature = defineFeature({
|
|
|
177870
177964
|
resourceType: "router",
|
|
177871
177965
|
resourceName: id
|
|
177872
177966
|
});
|
|
177967
|
+
const productionFunctionName = `${name.slice(0, 52)}--production`;
|
|
177873
177968
|
const productionFunction = new aws3.cloudfront.Function(group4, "production-function", {
|
|
177874
|
-
name:
|
|
177969
|
+
name: productionFunctionName,
|
|
177875
177970
|
runtime: "cloudfront-js-2.0",
|
|
177876
177971
|
code: getViewerRequestFunctionCode({
|
|
177877
177972
|
router: id,
|
|
@@ -177882,6 +177977,8 @@ var routerFeature = defineFeature({
|
|
|
177882
177977
|
}),
|
|
177883
177978
|
publish: true,
|
|
177884
177979
|
keyValueStoreAssociations: [routeStore.arn]
|
|
177980
|
+
}, {
|
|
177981
|
+
import: ctx.import ? productionFunctionName : undefined
|
|
177885
177982
|
});
|
|
177886
177983
|
ctx.shared.add("router", "addRoutes", id, (newRoutes, options) => {
|
|
177887
177984
|
for (const [key, route] of Object.entries(newRoutes)) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@awsless/cli",
|
|
3
|
-
"version": "0.0.46-next.
|
|
3
|
+
"version": "0.0.46-next.40",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
"@awsless/lambda": "^0.0.47",
|
|
33
33
|
"@awsless/s3": "^0.0.22",
|
|
34
34
|
"@awsless/validate": "^0.1.7",
|
|
35
|
-
"awsless": "^0.0.
|
|
36
|
-
"
|
|
35
|
+
"@awsless/weak-cache": "^0.0.1",
|
|
36
|
+
"awsless": "^0.0.15-next.9"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@aws-sdk/client-cloudformation": "^3.369.0",
|
|
@@ -102,25 +102,25 @@
|
|
|
102
102
|
"zip-a-folder": "^3.1.6",
|
|
103
103
|
"zod": "^3.24.2",
|
|
104
104
|
"zod-to-json-schema": "^3.24.3",
|
|
105
|
-
"@awsless/big-float": "^0.1.7",
|
|
106
105
|
"@awsless/cloudwatch": "^0.0.1",
|
|
106
|
+
"@awsless/big-float": "^0.1.7",
|
|
107
107
|
"@awsless/clui": "^0.0.9",
|
|
108
108
|
"@awsless/duration": "^0.0.4",
|
|
109
109
|
"@awsless/dynamodb": "^0.3.22",
|
|
110
|
+
"@awsless/json": "^0.0.11",
|
|
110
111
|
"@awsless/lambda": "^0.0.47",
|
|
111
|
-
"@awsless/
|
|
112
|
+
"@awsless/iot": "^0.0.5",
|
|
112
113
|
"@awsless/open-search": "^0.0.25",
|
|
113
|
-
"@awsless/size": "^0.0.2",
|
|
114
114
|
"@awsless/scheduler": "^0.0.5",
|
|
115
|
-
"@awsless/
|
|
115
|
+
"@awsless/redis": "^0.1.13",
|
|
116
116
|
"@awsless/s3": "^0.0.22",
|
|
117
|
-
"@awsless/
|
|
117
|
+
"@awsless/size": "^0.0.2",
|
|
118
|
+
"@awsless/sns": "^0.0.11",
|
|
119
|
+
"@awsless/sqs": "^0.0.24",
|
|
118
120
|
"@awsless/ssm": "^0.0.8",
|
|
121
|
+
"@awsless/weak-cache": "^0.0.1",
|
|
119
122
|
"@awsless/validate": "^0.1.7",
|
|
120
|
-
"
|
|
121
|
-
"awsless": "^0.0.15-next.9",
|
|
122
|
-
"@awsless/sns": "^0.0.11",
|
|
123
|
-
"@awsless/weak-cache": "^0.0.1"
|
|
123
|
+
"awsless": "^0.0.15-next.9"
|
|
124
124
|
},
|
|
125
125
|
"scripts": {
|
|
126
126
|
"test": "bun cli/build-handlers.ts && pnpm vitest",
|