local-serverless-stack 1.0.1 → 1.1.0
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/CHANGELOG.md +125 -3
- package/README.md +75 -26
- package/bin/cli.js +81 -15
- package/bin/i18n.js +30 -3
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/namespaces/services.d.ts +46 -0
- package/dist/client/namespaces/services.d.ts.map +1 -1
- package/dist/client/namespaces/services.js +1 -0
- package/dist/client/namespaces/services.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +17 -0
- package/dist/mcp/tools.js.map +1 -1
- package/dist/server/engine/backends/self-backend.d.ts +26 -1
- package/dist/server/engine/backends/self-backend.d.ts.map +1 -1
- package/dist/server/engine/backends/self-backend.js +104 -11
- package/dist/server/engine/backends/self-backend.js.map +1 -1
- package/dist/server/engine/emulators/dynamodb/expressions/parser.d.ts.map +1 -1
- package/dist/server/engine/emulators/dynamodb/expressions/parser.js +12 -1
- package/dist/server/engine/emulators/dynamodb/expressions/parser.js.map +1 -1
- package/dist/server/engine/emulators/dynamodb/expressions/reserved-words.d.ts +3 -0
- package/dist/server/engine/emulators/dynamodb/expressions/reserved-words.d.ts.map +1 -0
- package/dist/server/engine/emulators/dynamodb/expressions/reserved-words.js +78 -0
- package/dist/server/engine/emulators/dynamodb/expressions/reserved-words.js.map +1 -0
- package/dist/server/engine/emulators/dynamodb/index.d.ts +11 -0
- package/dist/server/engine/emulators/dynamodb/index.d.ts.map +1 -1
- package/dist/server/engine/emulators/dynamodb/index.js +101 -7
- package/dist/server/engine/emulators/dynamodb/index.js.map +1 -1
- package/dist/server/engine/emulators/dynamodb/query.d.ts +1 -0
- package/dist/server/engine/emulators/dynamodb/query.d.ts.map +1 -1
- package/dist/server/engine/emulators/dynamodb/query.js +34 -6
- package/dist/server/engine/emulators/dynamodb/query.js.map +1 -1
- package/dist/server/engine/emulators/s3/index.d.ts +10 -0
- package/dist/server/engine/emulators/s3/index.d.ts.map +1 -1
- package/dist/server/engine/emulators/s3/index.js +369 -25
- package/dist/server/engine/emulators/s3/index.js.map +1 -1
- package/dist/server/engine/emulators/sqs/index.d.ts +2 -0
- package/dist/server/engine/emulators/sqs/index.d.ts.map +1 -1
- package/dist/server/engine/emulators/sqs/index.js +70 -7
- package/dist/server/engine/emulators/sqs/index.js.map +1 -1
- package/dist/server/engine/emulators/sqs/queue.d.ts +2 -1
- package/dist/server/engine/emulators/sqs/queue.d.ts.map +1 -1
- package/dist/server/engine/emulators/sqs/queue.js +68 -35
- package/dist/server/engine/emulators/sqs/queue.js.map +1 -1
- package/dist/server/engine/emulators/ssm/index.d.ts +31 -0
- package/dist/server/engine/emulators/ssm/index.d.ts.map +1 -0
- package/dist/server/engine/emulators/ssm/index.js +670 -0
- package/dist/server/engine/emulators/ssm/index.js.map +1 -0
- package/dist/server/engine/http/errors.d.ts +1 -0
- package/dist/server/engine/http/errors.d.ts.map +1 -1
- package/dist/server/engine/http/errors.js +13 -5
- package/dist/server/engine/http/errors.js.map +1 -1
- package/dist/server/engine/http/is-aws-request.d.ts.map +1 -1
- package/dist/server/engine/http/is-aws-request.js +13 -3
- package/dist/server/engine/http/is-aws-request.js.map +1 -1
- package/dist/server/engine/http/protocols/aws-json.d.ts +1 -0
- package/dist/server/engine/http/protocols/aws-json.d.ts.map +1 -1
- package/dist/server/engine/http/protocols/aws-json.js +13 -0
- package/dist/server/engine/http/protocols/aws-json.js.map +1 -1
- package/dist/server/engine/http/reset.d.ts +4 -0
- package/dist/server/engine/http/reset.d.ts.map +1 -0
- package/dist/server/engine/http/reset.js +17 -0
- package/dist/server/engine/http/reset.js.map +1 -0
- package/dist/server/engine/http/router.d.ts +1 -0
- package/dist/server/engine/http/router.d.ts.map +1 -1
- package/dist/server/engine/http/router.js +185 -34
- package/dist/server/engine/http/router.js.map +1 -1
- package/dist/server/engine/types.d.ts +2 -1
- package/dist/server/engine/types.d.ts.map +1 -1
- package/dist/server/routes/apis.d.ts.map +1 -1
- package/dist/server/routes/apis.js +6 -0
- package/dist/server/routes/apis.js.map +1 -1
- package/dist/server/routes/config.d.ts.map +1 -1
- package/dist/server/routes/config.js +19 -1
- package/dist/server/routes/config.js.map +1 -1
- package/dist/server/routes/services.d.ts.map +1 -1
- package/dist/server/routes/services.js +49 -1
- package/dist/server/routes/services.js.map +1 -1
- package/dist/server/runtime/runtime-worker.js +33 -3
- package/dist/server/runtime/runtime-worker.js.map +1 -1
- package/dist/server/services/api-gateway-events.d.ts +14 -0
- package/dist/server/services/api-gateway-events.d.ts.map +1 -1
- package/dist/server/services/api-gateway-events.js +114 -8
- package/dist/server/services/api-gateway-events.js.map +1 -1
- package/dist/server/services/artifact-staleness.d.ts +20 -0
- package/dist/server/services/artifact-staleness.d.ts.map +1 -0
- package/dist/server/services/artifact-staleness.js +115 -0
- package/dist/server/services/artifact-staleness.js.map +1 -0
- package/dist/server/services/authorizer-service.d.ts +34 -5
- package/dist/server/services/authorizer-service.d.ts.map +1 -1
- package/dist/server/services/authorizer-service.js +0 -0
- package/dist/server/services/authorizer-service.js.map +1 -1
- package/dist/server/services/cfn-intrinsics.d.ts +63 -0
- package/dist/server/services/cfn-intrinsics.d.ts.map +1 -0
- package/dist/server/services/cfn-intrinsics.js +403 -0
- package/dist/server/services/cfn-intrinsics.js.map +1 -0
- package/dist/server/services/cfn-physical-values.d.ts +51 -0
- package/dist/server/services/cfn-physical-values.d.ts.map +1 -0
- package/dist/server/services/cfn-physical-values.js +186 -0
- package/dist/server/services/cfn-physical-values.js.map +1 -0
- package/dist/server/services/cloudformation-parser.d.ts +26 -3
- package/dist/server/services/cloudformation-parser.d.ts.map +1 -1
- package/dist/server/services/cloudformation-parser.js +76 -4
- package/dist/server/services/cloudformation-parser.js.map +1 -1
- package/dist/server/services/config-manager.d.ts +24 -2
- package/dist/server/services/config-manager.d.ts.map +1 -1
- package/dist/server/services/config-manager.js +60 -7
- package/dist/server/services/config-manager.js.map +1 -1
- package/dist/server/services/gateway-manager.d.ts.map +1 -1
- package/dist/server/services/gateway-manager.js +52 -20
- package/dist/server/services/gateway-manager.js.map +1 -1
- package/dist/server/services/lambda-runtime-manager.d.ts +1 -0
- package/dist/server/services/lambda-runtime-manager.d.ts.map +1 -1
- package/dist/server/services/lambda-runtime-manager.js +36 -14
- package/dist/server/services/lambda-runtime-manager.js.map +1 -1
- package/dist/server/services/raw-api-assembler.d.ts +1 -1
- package/dist/server/services/raw-api-assembler.d.ts.map +1 -1
- package/dist/server/services/raw-api-assembler.js +18 -8
- package/dist/server/services/raw-api-assembler.js.map +1 -1
- package/dist/server/services/resource-provisioner.d.ts +12 -0
- package/dist/server/services/resource-provisioner.d.ts.map +1 -1
- package/dist/server/services/resource-provisioner.js +128 -13
- package/dist/server/services/resource-provisioner.js.map +1 -1
- package/dist/server/services/serverless-state-parser.d.ts +45 -2
- package/dist/server/services/serverless-state-parser.d.ts.map +1 -1
- package/dist/server/services/serverless-state-parser.js +217 -29
- package/dist/server/services/serverless-state-parser.js.map +1 -1
- package/dist/server/services/service-graph.d.ts +76 -0
- package/dist/server/services/service-graph.d.ts.map +1 -0
- package/dist/server/services/service-graph.js +914 -0
- package/dist/server/services/service-graph.js.map +1 -0
- package/dist/server/services/service-registrar.d.ts +4 -0
- package/dist/server/services/service-registrar.d.ts.map +1 -1
- package/dist/server/services/service-registrar.js +129 -55
- package/dist/server/services/service-registrar.js.map +1 -1
- package/dist/server/services/source-watcher.d.ts +1 -0
- package/dist/server/services/source-watcher.d.ts.map +1 -1
- package/dist/server/services/source-watcher.js +19 -1
- package/dist/server/services/source-watcher.js.map +1 -1
- package/dist/server/services/worker-runtime.d.ts +82 -0
- package/dist/server/services/worker-runtime.d.ts.map +1 -0
- package/dist/server/services/worker-runtime.js +303 -0
- package/dist/server/services/worker-runtime.js.map +1 -0
- package/dist/ui/assets/{ApisPage-CTOcNna-.js → ApisPage-BkW-QZ0X.js} +1 -1
- package/dist/ui/assets/BucketDetailPage-CJwTQJh7.js +1 -0
- package/dist/ui/assets/BucketsPage-B1xPVhZC.js +1 -0
- package/dist/ui/assets/{DynamoPage-BnFFKnIU.js → DynamoPage-DvbpwZDc.js} +1 -1
- package/dist/ui/assets/DynamoTablePage-xn3Lq3so.js +3 -0
- package/dist/ui/assets/LambdaDetailPage-BhUyO77H.js +4 -0
- package/dist/ui/assets/{LambdasPage-Bg-MWFBb.js → LambdasPage-CUF_4rOH.js} +1 -1
- package/dist/ui/assets/OnboardingPage-U49THUzu.js +1 -0
- package/dist/ui/assets/OpenSearchCollectionPage-BJTVNCq4.js +1 -0
- package/dist/ui/assets/OpenSearchPage-4s-egkB9.js +1 -0
- package/dist/ui/assets/OverviewPage-DJeJQktG.js +1 -0
- package/dist/ui/assets/{OverviewPage-CSWY71vZ.css → OverviewPage-DjQETmb_.css} +1 -1
- package/dist/ui/assets/QueueDetailPage-DWsy5Yt8.js +1 -0
- package/dist/ui/assets/QueuesPage-BZJSqman.js +1 -0
- package/dist/ui/assets/SecretsPage-YC9ua54G.js +1 -0
- package/dist/ui/assets/ServiceDetailPage-Cum5frP4.js +2 -0
- package/dist/ui/assets/ServicesPage-IpaPDuqx.js +2 -0
- package/dist/ui/assets/SettingsPage-BiCRU8O6.js +1 -0
- package/dist/ui/assets/index-BDlrAJhi.css +1 -0
- package/dist/ui/assets/index-BouKSS43.js +38 -0
- package/dist/ui/assets/resourceIcons-DZs28nbs.js +1 -0
- package/dist/ui/index.html +5 -2
- package/package.json +1 -1
- package/dist/ui/assets/BucketDetailPage-BXW8-FrE.js +0 -1
- package/dist/ui/assets/BucketsPage-DY_ITepb.js +0 -1
- package/dist/ui/assets/DynamoTablePage-BLCuyJHU.js +0 -3
- package/dist/ui/assets/LambdaDetailPage-D4rZNLRT.js +0 -4
- package/dist/ui/assets/OnboardingPage-nnl313Fm.js +0 -1
- package/dist/ui/assets/OpenSearchCollectionPage-Dn15lH_F.js +0 -1
- package/dist/ui/assets/OpenSearchPage-CgD5isok.js +0 -1
- package/dist/ui/assets/OverviewPage-m5sUr8IN.js +0 -1
- package/dist/ui/assets/QueueDetailPage-Ch_FDDoN.js +0 -1
- package/dist/ui/assets/QueuesPage-C_yDuGDu.js +0 -1
- package/dist/ui/assets/SecretsPage-BSGMSoqy.js +0 -1
- package/dist/ui/assets/ServiceDetailPage-6KyohyjI.js +0 -2
- package/dist/ui/assets/ServicesPage-BbSetOMo.js +0 -2
- package/dist/ui/assets/SettingsPage-BgF1jFr6.js +0 -1
- package/dist/ui/assets/index-D627ZyYU.css +0 -1
- package/dist/ui/assets/index-DuSPnI19.js +0 -37
- package/dist/ui/assets/resourceIcons-baecADXA.js +0 -1
|
@@ -14,6 +14,7 @@ import { projectCacheSegment } from './cache-manager.js';
|
|
|
14
14
|
import { FunctionRegistry } from './function-registry.js';
|
|
15
15
|
import { resolveArtifacts } from './artifact-resolver.js';
|
|
16
16
|
import { InvocationActivity } from './invocation-activity.js';
|
|
17
|
+
import { buildWorkerEnv, linkArtifactNodeModules, resolveInvocationEnv, runtimeMismatchWarning, } from './worker-runtime.js';
|
|
17
18
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
18
19
|
export function httpStatusOf(payload) {
|
|
19
20
|
if (payload && typeof payload === 'object' && !Array.isArray(payload)) {
|
|
@@ -65,6 +66,11 @@ export class LambdaRuntimeManager {
|
|
|
65
66
|
loaded: new Set(),
|
|
66
67
|
};
|
|
67
68
|
this.runtimes.set(entry.name, runtime);
|
|
69
|
+
// Handlers run on the orchestrator's own Node, whatever `runtime:` the
|
|
70
|
+
// template declares — say so once per (re-)registration when they differ.
|
|
71
|
+
const mismatch = runtimeMismatchWarning(entry.name, entry.functions.map(fn => fn.runtime), process.version);
|
|
72
|
+
if (mismatch)
|
|
73
|
+
console.warn(mismatch);
|
|
68
74
|
// Lazy (default): resolve where the handlers live now — so an unusable
|
|
69
75
|
// artifact still fails loudly at registration — but leave the fork to the
|
|
70
76
|
// first invocation. A worker is ~48 MB resident; a 40-service monorepo was
|
|
@@ -231,6 +237,10 @@ export class LambdaRuntimeManager {
|
|
|
231
237
|
}
|
|
232
238
|
const invokeId = crypto.randomUUID();
|
|
233
239
|
const timeoutSeconds = fn.timeout || 6;
|
|
240
|
+
// Read per invocation (not cached at fork) so a `serviceRuntime` env edit
|
|
241
|
+
// reaches the next call without a worker restart.
|
|
242
|
+
const overrides = this.configManager.getWorkerOverridesForService(runtime.entry.root);
|
|
243
|
+
const fnOverride = overrides.functions[fn.name] ?? overrides.functions[fn.fullName];
|
|
234
244
|
const startedAt = Date.now();
|
|
235
245
|
const result = await new Promise(resolve => {
|
|
236
246
|
const timer = setTimeout(() => {
|
|
@@ -248,8 +258,8 @@ export class LambdaRuntimeManager {
|
|
|
248
258
|
serviceRoot: runtime.entry.root,
|
|
249
259
|
timeoutSeconds,
|
|
250
260
|
memorySize: fn.memorySize,
|
|
251
|
-
region: runtime.entry
|
|
252
|
-
env: fn.environment,
|
|
261
|
+
region: this.regionOf(runtime.entry),
|
|
262
|
+
env: resolveInvocationEnv(fn.environment, overrides.env, fnOverride?.env),
|
|
253
263
|
event: event ?? {},
|
|
254
264
|
});
|
|
255
265
|
});
|
|
@@ -306,19 +316,21 @@ export class LambdaRuntimeManager {
|
|
|
306
316
|
runtime.status = 'starting';
|
|
307
317
|
runtime.error = undefined;
|
|
308
318
|
const workerPath = path.join(__dirname, '../runtime/runtime-worker.js');
|
|
319
|
+
const overrides = this.configManager.getWorkerOverridesForService(runtime.entry.root);
|
|
309
320
|
const worker = fork(workerPath, [], {
|
|
310
321
|
cwd: runtime.entry.root,
|
|
311
322
|
stdio: ['ignore', 'pipe', 'pipe', 'ipc'],
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
323
|
+
// Pointed at the engine with dummy credentials, never at whatever account
|
|
324
|
+
// the orchestrator's shell happens to be logged into — see buildWorkerEnv.
|
|
325
|
+
env: buildWorkerEnv(process.env, {
|
|
326
|
+
region: this.regionOf(runtime.entry),
|
|
327
|
+
engineEndpoint: this.configManager.getEngineEndpoint(),
|
|
328
|
+
serviceRoot: runtime.entry.root,
|
|
329
|
+
serviceEnv: overrides.env,
|
|
330
|
+
}),
|
|
331
|
+
// Not the orchestrator's own execArgv: a `--inspect` there would make
|
|
332
|
+
// every worker fight for the same debugger port.
|
|
333
|
+
execArgv: overrides.execArgv,
|
|
322
334
|
});
|
|
323
335
|
// Per-invocation output arrives via IPC (the worker captures it at the
|
|
324
336
|
// stream/fd level and swallows it there); anything still reaching these
|
|
@@ -405,7 +417,7 @@ export class LambdaRuntimeManager {
|
|
|
405
417
|
if (artifacts.length === 0) {
|
|
406
418
|
throw new Error(`execution mode is "artifact" but no packaged zip was found under ${entry.root}/.serverless — run 'serverless package' first`);
|
|
407
419
|
}
|
|
408
|
-
return { handlerRoot: this.extractArtifacts(entry
|
|
420
|
+
return { handlerRoot: this.extractArtifacts(entry, artifacts), resolvedMode: 'artifact' };
|
|
409
421
|
}
|
|
410
422
|
return { handlerRoot: entry.root, resolvedMode: 'source' };
|
|
411
423
|
}
|
|
@@ -420,7 +432,8 @@ export class LambdaRuntimeManager {
|
|
|
420
432
|
// that both own a service called "api" shared one directory — and the
|
|
421
433
|
// stale-extraction rmSync below would delete the code the other instance's
|
|
422
434
|
// worker was running from.
|
|
423
|
-
extractArtifacts(
|
|
435
|
+
extractArtifacts(entry, artifacts) {
|
|
436
|
+
const serviceName = entry.name;
|
|
424
437
|
const stamp = artifacts
|
|
425
438
|
.map(p => {
|
|
426
439
|
const stat = fs.statSync(p);
|
|
@@ -438,8 +451,17 @@ export class LambdaRuntimeManager {
|
|
|
438
451
|
new AdmZip(artifact).extractAllTo(targetDir, true);
|
|
439
452
|
}
|
|
440
453
|
}
|
|
454
|
+
// Re-checked on every resolution, reused extraction included: the links are
|
|
455
|
+
// cheap to verify and the service's node_modules may have appeared (or
|
|
456
|
+
// moved) since the zip was first extracted.
|
|
457
|
+
linkArtifactNodeModules(targetDir, entry.root);
|
|
441
458
|
return targetDir;
|
|
442
459
|
}
|
|
460
|
+
// The service's region, else the stack's — never a hardcoded us-east-1 that
|
|
461
|
+
// would disagree with where the provisioner created the service's resources.
|
|
462
|
+
regionOf(entry) {
|
|
463
|
+
return entry.region || this.configManager.getRegion();
|
|
464
|
+
}
|
|
443
465
|
errorResult(errorType, errorMessage, durationMs) {
|
|
444
466
|
return { ok: false, errorType, errorMessage, logs: [], durationMs };
|
|
445
467
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lambda-runtime-manager.js","sourceRoot":"","sources":["../../../src/server/services/lambda-runtime-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lambda-runtime-manager.js","sourceRoot":"","sources":["../../../src/server/services/lambda-runtime-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,5 +13,5 @@ export interface AssembleResult {
|
|
|
13
13
|
authorizers: AuthorizerConfig[];
|
|
14
14
|
}
|
|
15
15
|
export declare function assembleRawApiResources(parser: CloudFormationParser, input: AssembleInput): AssembleResult;
|
|
16
|
-
export declare function collectStackExports(parser: CloudFormationParser, resources: Resource[], outputs: Record<string, unknown> | undefined, region: string, target: Map<string, string
|
|
16
|
+
export declare function collectStackExports(parser: CloudFormationParser, resources: Resource[], outputs: Record<string, unknown> | undefined, region: string, target: Map<string, string>, resolveValue?: (value: unknown) => string | undefined): void;
|
|
17
17
|
//# sourceMappingURL=raw-api-assembler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raw-api-assembler.d.ts","sourceRoot":"","sources":["../../../src/server/services/raw-api-assembler.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,QAAQ,EAOR,oBAAoB,EAErB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAOpG,MAAM,WAAW,aAAa;IAE5B,SAAS,EAAE,QAAQ,EAAE,CAAC;IAEtB,MAAM,EAAE,MAAM,CAAC;IAEf,cAAc,EAAE,kBAAkB,EAAE,CAAC;IAErC,WAAW,EAAE,SAAS,EAAE,CAAC;IAEzB,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE9B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,WAAW,EAAE,gBAAgB,EAAE,CAAC;CACjC;
|
|
1
|
+
{"version":3,"file":"raw-api-assembler.d.ts","sourceRoot":"","sources":["../../../src/server/services/raw-api-assembler.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,QAAQ,EAOR,oBAAoB,EAErB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAOpG,MAAM,WAAW,aAAa;IAE5B,SAAS,EAAE,QAAQ,EAAE,CAAC;IAEtB,MAAM,EAAE,MAAM,CAAC;IAEf,cAAc,EAAE,kBAAkB,EAAE,CAAC;IAErC,WAAW,EAAE,SAAS,EAAE,CAAC;IAEzB,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE9B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,WAAW,EAAE,gBAAgB,EAAE,CAAC;CACjC;AAsED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,oBAAoB,EAAE,KAAK,EAAE,aAAa,GAAG,cAAc,CAuG1G;AAQD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,oBAAoB,EAC5B,SAAS,EAAE,QAAQ,EAAE,EACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC5C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,GACpD,IAAI,CAaN"}
|
|
@@ -41,8 +41,15 @@ function resolveTarget(arnOrName, localFunctions) {
|
|
|
41
41
|
return { functionName: local.name, fnName };
|
|
42
42
|
return { functionName: fnName, arn: unwrapped, fnName };
|
|
43
43
|
}
|
|
44
|
-
function buildAuthorizer(parser, authRes, ctx, localFunctions) {
|
|
45
|
-
const
|
|
44
|
+
function buildAuthorizer(parser, authRes, ctx, localFunctions, warnings) {
|
|
45
|
+
const uri = parser.resolveArnLike(authRes.authorizerUri, ctx);
|
|
46
|
+
// An AuthorizerUri that does not reduce to a function ARN registers an
|
|
47
|
+
// authorizer with nothing to invoke: every route behind it answers 500.
|
|
48
|
+
// Said here, once, instead of on every request.
|
|
49
|
+
if (!uri.resolved) {
|
|
50
|
+
warnings.push(`Raw authorizer "${authRes.name}": AuthorizerUri did not reduce to a Lambda ARN (got "${uri.value}") — routes using it will answer 500.`);
|
|
51
|
+
}
|
|
52
|
+
const target = resolveTarget(uri.value, localFunctions);
|
|
46
53
|
const config = {
|
|
47
54
|
name: authRes.name,
|
|
48
55
|
type: 'request',
|
|
@@ -119,7 +126,7 @@ export function assembleRawApiResources(parser, input) {
|
|
|
119
126
|
warnings.push(`Raw route "${rr.routeKey}": authorizer "${authRes.name}" type "${authRes.authorizerType}" is not supported locally (only REQUEST); registering the route unauthorized.`);
|
|
120
127
|
}
|
|
121
128
|
else {
|
|
122
|
-
const config = authByName.get(authRes.name) ?? buildAuthorizer(parser, authRes, ctx, localFunctions);
|
|
129
|
+
const config = authByName.get(authRes.name) ?? buildAuthorizer(parser, authRes, ctx, localFunctions, warnings);
|
|
123
130
|
if (!authByName.has(authRes.name)) {
|
|
124
131
|
authByName.set(authRes.name, config);
|
|
125
132
|
authorizers.push(config);
|
|
@@ -161,10 +168,12 @@ export function assembleRawApiResources(parser, input) {
|
|
|
161
168
|
return { routes, authorizers };
|
|
162
169
|
}
|
|
163
170
|
// Records a stack's Outputs[].Export.Name → resolved value into a shared map so
|
|
164
|
-
// a later service's Fn::ImportValue reduces to a concrete
|
|
171
|
+
// a later service's Fn::ImportValue reduces to a concrete value. Values that are
|
|
165
172
|
// intrinsics resolvable to a same-template Lambda ARN (QualifiedArn exports) are
|
|
166
|
-
// reduced;
|
|
167
|
-
|
|
173
|
+
// reduced; `resolveValue`, when given, covers every other resource reference
|
|
174
|
+
// (a table name, a queue URL — cfn-physical-values.ts); unresolvable ones are
|
|
175
|
+
// skipped.
|
|
176
|
+
export function collectStackExports(parser, resources, outputs, region, target, resolveValue) {
|
|
168
177
|
if (!outputs)
|
|
169
178
|
return;
|
|
170
179
|
const lambdas = mapByLogicalId(resources.filter((r) => r.type === 'lambda'));
|
|
@@ -177,8 +186,9 @@ export function collectStackExports(parser, resources, outputs, region, target)
|
|
|
177
186
|
if (typeof name !== 'string')
|
|
178
187
|
continue;
|
|
179
188
|
const resolved = parser.resolveArnLike(entry.Value, ctx);
|
|
180
|
-
|
|
181
|
-
|
|
189
|
+
const value = resolved.resolved ? resolved.value : resolveValue?.(entry.Value);
|
|
190
|
+
if (value !== undefined)
|
|
191
|
+
target.set(name, value);
|
|
182
192
|
}
|
|
183
193
|
}
|
|
184
194
|
//# sourceMappingURL=raw-api-assembler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raw-api-assembler.js","sourceRoot":"","sources":["../../../src/server/services/raw-api-assembler.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,8EAA8E;AAC9E,4EAA4E;AAC5E,gFAAgF;AAChF,6EAA6E;AAC7E,6DAA6D;AAC7D,6EAA6E;AAC7E,4EAA4E;AAC5E,wEAAwE;AACxE,oFAAoF;AACpF,sEAAsE;AActE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,UAAU,GAAG,cAAc,CAAC;AAClC,MAAM,SAAS,GAAG,KAAK,CAAC;AACxB,MAAM,eAAe,GAAG,0BAA0B,CAAC;AA+BnD,4EAA4E;AAC5E,SAAS,QAAQ,CAAC,MAAc,EAAE,IAAY;IAC5C,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,cAAc,CAAkC,KAAU;IACjE,MAAM,GAAG,GAAG,IAAI,GAAG,EAAa,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACxD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+EAA+E;AAC/E,wEAAwE;AACxE,SAAS,mBAAmB,CAAC,KAAa;IACxC,MAAM,KAAK,GAAG,8CAA8C,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzE,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAClC,CAAC;AAED,2EAA2E;AAC3E,+EAA+E;AAC/E,8EAA8E;AAC9E,8EAA8E;AAC9E,SAAS,aAAa,CAAC,SAAiB,EAAE,cAAoC;IAC5E,MAAM,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACnF,IAAI,KAAK;QAAE,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IACvD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AAC1D,CAAC;AAED,SAAS,eAAe,CACtB,MAA4B,EAC5B,OAA8B,EAC9B,GAAyB,EACzB,cAAoC;
|
|
1
|
+
{"version":3,"file":"raw-api-assembler.js","sourceRoot":"","sources":["../../../src/server/services/raw-api-assembler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { S3Client } from '@aws-sdk/client-s3';
|
|
2
|
+
import { type RuntimeAttributes } from './cfn-physical-values.js';
|
|
2
3
|
import type { Resource } from './cloudformation-parser.js';
|
|
3
4
|
export interface ProvisionOutcome {
|
|
4
5
|
provisioned: number;
|
|
@@ -48,6 +49,7 @@ export declare class ResourceProvisioner {
|
|
|
48
49
|
private createSNSTopic;
|
|
49
50
|
private createS3Bucket;
|
|
50
51
|
private createSecret;
|
|
52
|
+
private createSsmParameter;
|
|
51
53
|
private configureS3Notifications;
|
|
52
54
|
private shortFunctionName;
|
|
53
55
|
private resolveLambdaName;
|
|
@@ -60,6 +62,16 @@ export declare class ResourceProvisioner {
|
|
|
60
62
|
private ensureLambdaProxyExists;
|
|
61
63
|
private convertCamelCaseToKebab;
|
|
62
64
|
private resolveEventSourceArn;
|
|
65
|
+
/**
|
|
66
|
+
* The attributes of a service's resources that only exist once the resources
|
|
67
|
+
* do — queue URLs, stream ARNs (the label is minted at CreateTable), secret
|
|
68
|
+
* ARNs (random suffix), collection id/ARN/endpoint — for the function
|
|
69
|
+
* environment pass (cfn-physical-values.ts). Called right after
|
|
70
|
+
* provisionResources, so the clients already target the service's region.
|
|
71
|
+
* Best-effort by design: a failed lookup leaves the attribute out and the
|
|
72
|
+
* environment pass warns about the variable that needed it.
|
|
73
|
+
*/
|
|
74
|
+
lookupRuntimeAttributes(resources: Resource[]): Promise<RuntimeAttributes>;
|
|
63
75
|
listAllResources(region?: string): Promise<{
|
|
64
76
|
tables: string[];
|
|
65
77
|
queues: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-provisioner.d.ts","sourceRoot":"","sources":["../../../src/server/services/resource-provisioner.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,QAAQ,EAST,MAAM,oBAAoB,CAAC;AAwB5B,OAAO,KAAK,EACV,QAAQ,
|
|
1
|
+
{"version":3,"file":"resource-provisioner.d.ts","sourceRoot":"","sources":["../../../src/server/services/resource-provisioner.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,QAAQ,EAST,MAAM,oBAAoB,CAAC;AAwB5B,OAAO,EAA0B,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC1F,OAAO,KAAK,EACV,QAAQ,EAWT,MAAM,4BAA4B,CAAC;AAMpC,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AA0CD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAsB;IAC7C,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,QAAQ,CAAY;IAC5B,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,oBAAoB,CAAwB;IACpD,OAAO,CAAC,aAAa,CAAuB;IAM5C,OAAO,CAAC,oBAAoB,CAA+B;IAE3D,OAAO;IAIP,MAAM,CAAC,WAAW,IAAI,mBAAmB;IAOzC,OAAO,CAAC,iBAAiB;IAsBzB,WAAW,IAAI,QAAQ;IAIvB,gBAAgB,IAAI,MAAM;IAI1B;;;;OAIG;IACH,OAAO,CAAC,kBAAkB,CAA0C;IAE9D,kBAAkB,CACtB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,QAAQ,EAAE,EACrB,QAAQ,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GACtE,OAAO,CAAC,gBAAgB,CAAC;IAiK5B,OAAO,CAAC,cAAc;IAStB;;;;;OAKG;YACW,uBAAuB;YA+BvB,mBAAmB;YA+DnB,eAAe;YAqBf,cAAc;IA8C5B,OAAO,CAAC,kBAAkB;YAmBZ,kBAAkB;YAgBlB,cAAc;YAiBd,cAAc;YA8Dd,YAAY;YA2CZ,kBAAkB;YAyClB,wBAAwB;IAiEtC,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,uBAAuB;YAmEjB,wBAAwB;YAsExB,0BAA0B;YAgC1B,cAAc;IAgB5B,OAAO,CAAC,mBAAmB;YASb,eAAe;YAyEf,uBAAuB;IAwErC,OAAO,CAAC,uBAAuB;YAOjB,qBAAqB;IAkHnC;;;;;;;;OAQG;IACG,uBAAuB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA0C1E,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAC/C,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;YA6BY,kBAAkB;YAgBlB,aAAa;YAeb,aAAa;YAYb,aAAa;YAWb,yBAAyB;IASjC,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YA2EnE,0BAA0B;YAY1B,eAAe;YAuBf,cAAc;YAWd,mBAAmB;YAYnB,cAAc;YAiBd,cAAc;YAsBd,cAAc;YAkBd,wBAAwB;CA6BvC"}
|
|
@@ -2,7 +2,7 @@ import { DynamoDBClient, CreateTableCommand, ListTablesCommand, DeleteTableComma
|
|
|
2
2
|
import { SQSClient, CreateQueueCommand, ListQueuesCommand, GetQueueAttributesCommand, SetQueueAttributesCommand, DeleteQueueCommand, GetQueueUrlCommand } from '@aws-sdk/client-sqs';
|
|
3
3
|
import { SNSClient, CreateTopicCommand, ListTopicsCommand, DeleteTopicCommand } from '@aws-sdk/client-sns';
|
|
4
4
|
import { S3Client, CreateBucketCommand, ListBucketsCommand, DeleteBucketCommand, PutBucketVersioningCommand, PutBucketNotificationConfigurationCommand, PutBucketCorsCommand, ListObjectsV2Command, DeleteObjectCommand, } from '@aws-sdk/client-s3';
|
|
5
|
-
import { SecretsManagerClient, CreateSecretCommand } from '@aws-sdk/client-secrets-manager';
|
|
5
|
+
import { SecretsManagerClient, CreateSecretCommand, DescribeSecretCommand } from '@aws-sdk/client-secrets-manager';
|
|
6
6
|
import { LambdaClient, CreateFunctionCommand, GetFunctionCommand, DeleteFunctionCommand, AddPermissionCommand, UpdateFunctionConfigurationCommand } from '@aws-sdk/client-lambda';
|
|
7
7
|
import { CreateEventSourceMappingCommand, ListEventSourceMappingsCommand, DeleteEventSourceMappingCommand } from '@aws-sdk/client-lambda';
|
|
8
8
|
import { EventBridgeClient, CreateEventBusCommand, DeleteEventBusCommand, PutRuleCommand, PutTargetsCommand, RemoveTargetsCommand, DeleteRuleCommand, } from '@aws-sdk/client-eventbridge';
|
|
@@ -11,6 +11,7 @@ import { EngineManager } from '../engine/engine-manager.js';
|
|
|
11
11
|
import { ConfigManager } from './config-manager.js';
|
|
12
12
|
import { SeedManager } from './seed-manager.js';
|
|
13
13
|
import { resolveGeneratedSecretString } from './secret-value.js';
|
|
14
|
+
import { emptyRuntimeAttributes } from './cfn-physical-values.js';
|
|
14
15
|
import AdmZip from 'adm-zip';
|
|
15
16
|
// An empty message counts as no message: "was NOT provisioned: " with nothing
|
|
16
17
|
// after the colon is worse than saying the cause is unknown.
|
|
@@ -155,6 +156,10 @@ export class ResourceProvisioner {
|
|
|
155
156
|
await this.createSecret(resource);
|
|
156
157
|
provisionedCount++;
|
|
157
158
|
break;
|
|
159
|
+
case 'ssm-parameter':
|
|
160
|
+
await this.createSsmParameter(resource);
|
|
161
|
+
provisionedCount++;
|
|
162
|
+
break;
|
|
158
163
|
case 'eventbus':
|
|
159
164
|
await this.createEventBus(resource);
|
|
160
165
|
busesCreated.push(resource.name);
|
|
@@ -553,6 +558,54 @@ export class ResourceProvisioner {
|
|
|
553
558
|
}
|
|
554
559
|
}
|
|
555
560
|
}
|
|
561
|
+
// AWS::SSM::Parameter → PutParameter on the engine. @aws-sdk/client-ssm is
|
|
562
|
+
// not a dependency, so this speaks the wire directly: AWS JSON 1.1 with
|
|
563
|
+
// X-Amz-Target AmazonSSM.PutParameter, the region pinned through a
|
|
564
|
+
// scope-shaped X-Amz-Credential (the engine router reads {region, service}
|
|
565
|
+
// from it and never verifies a signature — the same approach as the
|
|
566
|
+
// OpenSearch explorer's data plane). Idempotent + non-fatal like
|
|
567
|
+
// createSecret: an existing parameter is kept as is — no Overwrite — so a
|
|
568
|
+
// value changed locally survives a re-registration (ParameterAlreadyExists
|
|
569
|
+
// is swallowed); every other failure throws into the caller's warnings.
|
|
570
|
+
async createSsmParameter(resource) {
|
|
571
|
+
if (resource.value === undefined) {
|
|
572
|
+
throw new Error(`SSM parameter ${resource.name} has no literal Value (an unresolved Ref/GetAtt or none at all) — ` +
|
|
573
|
+
'set it in the template or with PutParameter');
|
|
574
|
+
}
|
|
575
|
+
const url = new URL('/', EngineManager.getInstance().getConfig().endpoint);
|
|
576
|
+
url.searchParams.set('X-Amz-Credential', `lss-provisioner/00000000/${this.currentRegion}/ssm/aws4_request`);
|
|
577
|
+
const response = await fetch(url, {
|
|
578
|
+
method: 'POST',
|
|
579
|
+
headers: { 'content-type': 'application/x-amz-json-1.1', 'x-amz-target': 'AmazonSSM.PutParameter' },
|
|
580
|
+
body: JSON.stringify({
|
|
581
|
+
Name: resource.name,
|
|
582
|
+
Value: resource.value,
|
|
583
|
+
Type: resource.parameterType,
|
|
584
|
+
Description: resource.description,
|
|
585
|
+
AllowedPattern: resource.allowedPattern,
|
|
586
|
+
Tier: resource.tier,
|
|
587
|
+
DataType: resource.dataType,
|
|
588
|
+
Tags: resource.tags.length > 0 ? resource.tags : undefined,
|
|
589
|
+
}),
|
|
590
|
+
});
|
|
591
|
+
if (response.ok) {
|
|
592
|
+
console.log(` ✓ Created SSM parameter: ${resource.name}`);
|
|
593
|
+
return;
|
|
594
|
+
}
|
|
595
|
+
const text = await response.text();
|
|
596
|
+
let payload = {};
|
|
597
|
+
try {
|
|
598
|
+
payload = JSON.parse(text);
|
|
599
|
+
}
|
|
600
|
+
catch {
|
|
601
|
+
// Not an AWS JSON error body (a proxy or a crashed listener) — report the status.
|
|
602
|
+
}
|
|
603
|
+
if (payload.__type === 'ParameterAlreadyExists') {
|
|
604
|
+
console.log(` ⚠ SSM parameter already exists: ${resource.name}`);
|
|
605
|
+
return;
|
|
606
|
+
}
|
|
607
|
+
throw new Error(`${payload.__type ?? `HTTP ${response.status}`}: ${payload.message ?? text}`);
|
|
608
|
+
}
|
|
556
609
|
async configureS3Notifications(serviceName, bucket, invokeUrl) {
|
|
557
610
|
const lambdaConfigurations = [];
|
|
558
611
|
for (const notif of bucket.notifications) {
|
|
@@ -904,13 +957,20 @@ export const handler = async (event, context) => {
|
|
|
904
957
|
throw error;
|
|
905
958
|
}
|
|
906
959
|
}
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
960
|
+
// No invoke port is the normal case on the self engine, not an error: the
|
|
961
|
+
// engine's dispatcher resolves the target through the in-process function
|
|
962
|
+
// registry FIRST and only falls back to a record's INVOKE_URL for functions
|
|
963
|
+
// LSS does not run. So the record is still created — the ESM, the
|
|
964
|
+
// AddPermission and the rule target all hang off it — just without the
|
|
965
|
+
// HTTP hop. Refusing here used to leave every queue, stream, bucket
|
|
966
|
+
// notification and schedule of a service registered without ports silently
|
|
967
|
+
// unwired.
|
|
911
968
|
const zip = new AdmZip();
|
|
912
|
-
zip.addFile('index.mjs', Buffer.from(
|
|
969
|
+
zip.addFile('index.mjs', Buffer.from(this.generateProxyLambdaCode(proxyName, invokeName, invokeUrl ?? ''), 'utf-8'));
|
|
913
970
|
const zipBuffer = zip.toBuffer();
|
|
971
|
+
const variables = invokeUrl
|
|
972
|
+
? { INVOKE_URL: invokeUrl, FUNCTION_NAME: invokeName }
|
|
973
|
+
: { FUNCTION_NAME: invokeName };
|
|
914
974
|
await this.lambdaClient.send(new CreateFunctionCommand({
|
|
915
975
|
FunctionName: proxyName,
|
|
916
976
|
Runtime: 'nodejs20.x',
|
|
@@ -919,16 +979,13 @@ export const handler = async (event, context) => {
|
|
|
919
979
|
Code: {
|
|
920
980
|
ZipFile: zipBuffer,
|
|
921
981
|
},
|
|
922
|
-
Environment: {
|
|
923
|
-
Variables: {
|
|
924
|
-
INVOKE_URL: invokeUrl,
|
|
925
|
-
FUNCTION_NAME: invokeName,
|
|
926
|
-
},
|
|
927
|
-
},
|
|
982
|
+
Environment: { Variables: variables },
|
|
928
983
|
MemorySize: 256,
|
|
929
984
|
Timeout: 60,
|
|
930
985
|
}));
|
|
931
|
-
console.log(
|
|
986
|
+
console.log(invokeUrl
|
|
987
|
+
? ` ✓ Created Lambda proxy: ${proxyName} -> ${invokeUrl}/2015-03-31/functions/${invokeName}/invocations`
|
|
988
|
+
: ` ✓ Registered Lambda target: ${proxyName} (no invoke port for ${serviceName} — delivered in-process by the LSS runtime)`);
|
|
932
989
|
}
|
|
933
990
|
convertCamelCaseToKebab(camelCase) {
|
|
934
991
|
return camelCase
|
|
@@ -1036,6 +1093,64 @@ export const handler = async (event, context) => {
|
|
|
1036
1093
|
}
|
|
1037
1094
|
throw new Error(`Event source not found: ${arnRef} (resolved as: ${resourceName})`);
|
|
1038
1095
|
}
|
|
1096
|
+
/**
|
|
1097
|
+
* The attributes of a service's resources that only exist once the resources
|
|
1098
|
+
* do — queue URLs, stream ARNs (the label is minted at CreateTable), secret
|
|
1099
|
+
* ARNs (random suffix), collection id/ARN/endpoint — for the function
|
|
1100
|
+
* environment pass (cfn-physical-values.ts). Called right after
|
|
1101
|
+
* provisionResources, so the clients already target the service's region.
|
|
1102
|
+
* Best-effort by design: a failed lookup leaves the attribute out and the
|
|
1103
|
+
* environment pass warns about the variable that needed it.
|
|
1104
|
+
*/
|
|
1105
|
+
async lookupRuntimeAttributes(resources) {
|
|
1106
|
+
const attrs = emptyRuntimeAttributes();
|
|
1107
|
+
const attempt = async (what, lookup) => {
|
|
1108
|
+
try {
|
|
1109
|
+
await lookup();
|
|
1110
|
+
}
|
|
1111
|
+
catch (error) {
|
|
1112
|
+
console.warn(` ⚠ Could not look up ${what}: ${errorMessageOf(error)}`);
|
|
1113
|
+
}
|
|
1114
|
+
};
|
|
1115
|
+
const collections = [];
|
|
1116
|
+
for (const resource of resources) {
|
|
1117
|
+
if (resource.type === 'sqs') {
|
|
1118
|
+
await attempt(`the URL of queue "${resource.name}"`, async () => {
|
|
1119
|
+
const { QueueUrl } = await this.sqsClient.send(new GetQueueUrlCommand({ QueueName: resource.name }));
|
|
1120
|
+
if (QueueUrl)
|
|
1121
|
+
attrs.queueUrls.set(resource.name, QueueUrl);
|
|
1122
|
+
});
|
|
1123
|
+
}
|
|
1124
|
+
else if (resource.type === 'dynamodb' && resource.streamEnabled) {
|
|
1125
|
+
await attempt(`the stream ARN of table "${resource.name}"`, async () => {
|
|
1126
|
+
const described = await this.dynamoClient.send(new DescribeTableCommand({ TableName: resource.name }));
|
|
1127
|
+
const streamArn = described.Table?.LatestStreamArn;
|
|
1128
|
+
if (streamArn)
|
|
1129
|
+
attrs.streamArns.set(resource.name, streamArn);
|
|
1130
|
+
});
|
|
1131
|
+
}
|
|
1132
|
+
else if (resource.type === 'secret') {
|
|
1133
|
+
await attempt(`the ARN of secret "${resource.name}"`, async () => {
|
|
1134
|
+
const { ARN } = await this.secretsManagerClient.send(new DescribeSecretCommand({ SecretId: resource.name }));
|
|
1135
|
+
if (ARN)
|
|
1136
|
+
attrs.secretArns.set(resource.name, ARN);
|
|
1137
|
+
});
|
|
1138
|
+
}
|
|
1139
|
+
else if (resource.type === 'opensearch') {
|
|
1140
|
+
collections.push(resource.name);
|
|
1141
|
+
}
|
|
1142
|
+
}
|
|
1143
|
+
if (collections.length > 0) {
|
|
1144
|
+
await attempt(`OpenSearch collection(s) ${collections.join(', ')}`, async () => {
|
|
1145
|
+
const { collectionDetails } = await this.openSearchClient.send(new BatchGetCollectionCommand({ names: collections }));
|
|
1146
|
+
for (const c of collectionDetails ?? []) {
|
|
1147
|
+
if (c.name)
|
|
1148
|
+
attrs.collections.set(c.name, { id: c.id, arn: c.arn, endpoint: c.collectionEndpoint });
|
|
1149
|
+
}
|
|
1150
|
+
});
|
|
1151
|
+
}
|
|
1152
|
+
return attrs;
|
|
1153
|
+
}
|
|
1039
1154
|
async listAllResources(region) {
|
|
1040
1155
|
const baseConfig = EngineManager.getInstance().getConfig();
|
|
1041
1156
|
const config = region ? { ...baseConfig, region } : { ...baseConfig, region: this.currentRegion };
|