cdk-local 0.62.1 → 0.63.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/README.md +8 -8
- package/dist/cli.js +3 -3
- package/dist/{ecs-service-emulator-D4aFpgn1.d.ts → ecs-service-emulator-BgO3gb5D.d.ts} +56 -2
- package/dist/ecs-service-emulator-BgO3gb5D.d.ts.map +1 -0
- package/dist/{elb-front-door-resolver-CsCmMUqz.js → elb-front-door-resolver-y5FicgLi.js} +63 -6
- package/dist/{elb-front-door-resolver-CsCmMUqz.js.map → elb-front-door-resolver-y5FicgLi.js.map} +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/internal.d.ts +1 -54
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +1 -1
- package/dist/{local-list-BPbd4EMs.js → local-list-Dxwno_0V.js} +2 -2
- package/dist/{local-list-BPbd4EMs.js.map → local-list-Dxwno_0V.js.map} +1 -1
- package/package.json +2 -2
- package/dist/ecs-service-emulator-D4aFpgn1.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
[](https://github.com/go-to-k/cdk-local/actions/workflows/ci.yml)
|
|
6
6
|
[](./LICENSE)
|
|
7
7
|
|
|
8
|
-
**Run your CDK app locally
|
|
8
|
+
**Run your CDK-built app locally, no deploy needed — standalone, or kept local while it reaches the real AWS resources and data it depends on, with no `.env` or local copies to maintain.**
|
|
9
9
|
A CDK-native alternative to `sam local`, covering Lambda, API Gateway, ECS, ALB-fronted services, and Bedrock AgentCore.
|
|
10
10
|
|
|
11
11
|

|
|
@@ -20,9 +20,9 @@ cd your-cdk-app # the directory holding cdk.json
|
|
|
20
20
|
cdkl invoke # pick a Lambda from the list, then run it locally
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
-
`cdkl` synths your CDK app and runs the selected resource locally in Docker
|
|
23
|
+
`cdkl` synths your CDK app and runs the selected resource locally in Docker. Run any command with no target and it opens an arrow-key picker, so you rarely type a CDK path.
|
|
24
24
|
|
|
25
|
-
**
|
|
25
|
+
**Add `--from-cfn-stack`** to bind to a deployed stack — your local handler then reads and writes the same real data the deployed app does ([how it works](#why-cdk-local)).
|
|
26
26
|
|
|
27
27
|
```bash
|
|
28
28
|
cdkl start-api --from-cfn-stack # a local API on real AWS data + real Cognito JWT
|
|
@@ -31,11 +31,11 @@ cdkl invoke MyStack/Fn --from-cfn-stack # one Lambda against real DynamoDB /
|
|
|
31
31
|
|
|
32
32
|
## Why cdk-local
|
|
33
33
|
|
|
34
|
-
- **Zero-friction local execution** — no
|
|
35
|
-
- **Iterate against your real deployed stack — including its data.** `--from-cfn-stack`
|
|
34
|
+
- **Zero-friction local execution** — run standalone: no deploy, no IAM access, just Docker and your CDK app. Onboard new engineers, review a PR by actually running its code, or work on an OSS CDK sample without owning the maintainer's account.
|
|
35
|
+
- **Iterate against your real deployed stack — including its data.** `--from-cfn-stack` reads the deployed CloudFormation stack and injects its real ARNs, Secret values, and IAM credentials into the container, so you stay on the real DynamoDB rows, S3 objects, Cognito users, and Secret values your IAM credentials reach — instead of paying to seed and anonymize a local emulator.
|
|
36
36
|
- **Picks up where `sam local` leaves off:**
|
|
37
37
|
- **CDK-native** — point at `cdk.json`; no SAM template to maintain.
|
|
38
|
-
- **Wider coverage** —
|
|
38
|
+
- **Wider coverage** — adds ECS, ALB front-doors, and Bedrock AgentCore on top of Lambda + API Gateway.
|
|
39
39
|
- **Real container images** — the Lambda RIE base image; ECS as real Docker. The only dependency is Docker itself.
|
|
40
40
|
|
|
41
41
|
## What runs locally
|
|
@@ -58,10 +58,10 @@ cdkl invoke-agentcore MyStack/Agent # Bedrock AgentCore Runtime (one
|
|
|
58
58
|
cdkl list # every runnable target, grouped by command (alias: ls)
|
|
59
59
|
```
|
|
60
60
|
|
|
61
|
-

|
|
62
62
|
|
|
63
63
|
- **`start-api`** serves one HTTP server per API; a bare `start-api` in a multi-stack app needs `--all-stacks` or `--stack <name>`. Add **`--watch`** to re-synth and hot-reload on CDK source changes ([details](docs/local-emulation.md#hot-reload---watch)).
|
|
64
|
-
- **`run-task`** / single-replica **`start-service`** publish declared container ports on the host
|
|
64
|
+
- **`run-task`** / single-replica **`start-service`** publish declared container ports on the host (`--host-port <container>=<host>` remaps; handy for privileged ports on macOS). **`start-service`** / **`start-alb`** also list each host URL in a `Service endpoints:` banner after boot so the access URL stays visible.
|
|
65
65
|
- **`start-alb`** stands up the ECS service(s) behind an ALB plus a host-side front-door on each listener port, honoring all six listener-rule conditions, weighted forwards, redirect / fixed-response actions, mixed ECS + Lambda targets, `authenticate-cognito` / `authenticate-oidc` actions (local Bearer-JWT enforcement), and WebSocket `Upgrade` proxying to ECS targets ([details](docs/cli-reference.md#cdkl-start-alb-run-an-alb-fronted-service-locally)).
|
|
66
66
|
- **`invoke-agentcore`** invokes a Bedrock AgentCore Runtime agent locally — container or `fromCodeAsset` / `fromS3` managed runtime, HTTP / SSE / WebSocket / MCP protocols, with `customJwtAuthorizer` and `--sigv4` enforcement ([details](docs/cli-reference.md#cdkl-invoke-agentcore-run-bedrock-agentcore-runtime-agents-locally)).
|
|
67
67
|
- Non-TTY (CI / pipes): every command except a bare `start-api` needs an explicit target.
|
package/dist/cli.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { _ as createLocalStartApiCommand } from "./elb-front-door-resolver-
|
|
3
|
-
import { a as createLocalRunTaskCommand, i as createLocalStartServiceCommand, o as createLocalInvokeAgentCoreCommand, r as createLocalStartAlbCommand, s as createLocalInvokeCommand, t as createLocalListCommand } from "./local-list-
|
|
2
|
+
import { _ as createLocalStartApiCommand } from "./elb-front-door-resolver-y5FicgLi.js";
|
|
3
|
+
import { a as createLocalRunTaskCommand, i as createLocalStartServiceCommand, o as createLocalInvokeAgentCoreCommand, r as createLocalStartAlbCommand, s as createLocalInvokeCommand, t as createLocalListCommand } from "./local-list-Dxwno_0V.js";
|
|
4
4
|
import { Command } from "commander";
|
|
5
5
|
|
|
6
6
|
//#region src/cli/index.ts
|
|
7
7
|
const program = new Command();
|
|
8
|
-
program.name("cdkl").description("Run AWS CDK stacks locally with Docker.").version("0.
|
|
8
|
+
program.name("cdkl").description("Run AWS CDK stacks locally with Docker.").version("0.63.0");
|
|
9
9
|
program.addCommand(createLocalInvokeCommand());
|
|
10
10
|
program.addCommand(createLocalInvokeAgentCoreCommand());
|
|
11
11
|
program.addCommand(createLocalStartApiCommand());
|
|
@@ -2,6 +2,7 @@ import { Command, Option } from "commander";
|
|
|
2
2
|
import { SSMClient } from "@aws-sdk/client-ssm";
|
|
3
3
|
import { WebSocket } from "ws";
|
|
4
4
|
import { IncomingMessage, Server, ServerResponse } from "node:http";
|
|
5
|
+
import graphlib from "graphlib";
|
|
5
6
|
|
|
6
7
|
//#region src/types/resource.d.ts
|
|
7
8
|
interface CloudFormationTemplate {
|
|
@@ -792,6 +793,59 @@ interface TargetListing {
|
|
|
792
793
|
declare function listTargets(stacks: readonly StackInfo[]): TargetListing;
|
|
793
794
|
declare function countTargets(listing: TargetListing): number;
|
|
794
795
|
//#endregion
|
|
796
|
+
//#region src/local/cloud-map-registry.d.ts
|
|
797
|
+
interface RegisteredEndpoint {
|
|
798
|
+
ip: string;
|
|
799
|
+
port: number;
|
|
800
|
+
ownerKey: string;
|
|
801
|
+
}
|
|
802
|
+
interface RegistrationHandle {
|
|
803
|
+
readonly fqdn: string;
|
|
804
|
+
readonly ownerKey: string;
|
|
805
|
+
}
|
|
806
|
+
interface RegistryListing {
|
|
807
|
+
namespace: string;
|
|
808
|
+
discoveryName: string;
|
|
809
|
+
endpoints: ReadonlyArray<RegisteredEndpoint>;
|
|
810
|
+
isAlias: boolean;
|
|
811
|
+
}
|
|
812
|
+
declare class CloudMapRegistry {
|
|
813
|
+
private readonly byFqdn;
|
|
814
|
+
private readonly aliasIndex;
|
|
815
|
+
register(namespace: string, discoveryName: string, endpoint: RegisteredEndpoint): RegistrationHandle;
|
|
816
|
+
registerAlias(alias: string, targetFqdn: string): void;
|
|
817
|
+
unregister(handle: RegistrationHandle): boolean;
|
|
818
|
+
unregisterByOwner(ownerKeyPrefix: string): number;
|
|
819
|
+
lookup(namespace: string, discoveryName: string): ReadonlyArray<RegisteredEndpoint> | undefined;
|
|
820
|
+
lookupAlias(alias: string): ReadonlyArray<RegisteredEndpoint> | undefined;
|
|
821
|
+
buildAddHostFlags(excludeOwnerKeyPrefix?: string): string[];
|
|
822
|
+
list(): ReadonlyArray<RegistryListing>;
|
|
823
|
+
isEmpty(): boolean;
|
|
824
|
+
}
|
|
825
|
+
//#endregion
|
|
826
|
+
//#region src/local/cloud-map-resolver.d.ts
|
|
827
|
+
interface ResolvedCloudMapNamespace {
|
|
828
|
+
logicalId: string;
|
|
829
|
+
name: string;
|
|
830
|
+
}
|
|
831
|
+
interface ResolvedCloudMapService {
|
|
832
|
+
logicalId: string;
|
|
833
|
+
namespaceLogicalId: string;
|
|
834
|
+
namespaceName: string;
|
|
835
|
+
name: string;
|
|
836
|
+
dnsRecords: ReadonlyArray<{
|
|
837
|
+
type: 'A' | 'SRV';
|
|
838
|
+
ttlSeconds: number;
|
|
839
|
+
}>;
|
|
840
|
+
}
|
|
841
|
+
interface CloudMapIndex {
|
|
842
|
+
namespacesByLogicalId: Map<string, ResolvedCloudMapNamespace>;
|
|
843
|
+
namespacesByName: Map<string, ResolvedCloudMapNamespace>;
|
|
844
|
+
servicesByLogicalId: Map<string, ResolvedCloudMapService>;
|
|
845
|
+
warnings: string[];
|
|
846
|
+
}
|
|
847
|
+
declare function buildCloudMapIndex(stack: StackInfo): CloudMapIndex;
|
|
848
|
+
//#endregion
|
|
795
849
|
//#region src/local/alb-path-matcher.d.ts
|
|
796
850
|
interface AlbHttpHeaderCondition {
|
|
797
851
|
name: string;
|
|
@@ -987,5 +1041,5 @@ declare function resolveSharedSidecarCredentials(options: {
|
|
|
987
1041
|
} | undefined>;
|
|
988
1042
|
declare function addCommonEcsServiceOptions(cmd: Command): Command;
|
|
989
1043
|
//#endregion
|
|
990
|
-
export {
|
|
991
|
-
//# sourceMappingURL=ecs-service-emulator-
|
|
1044
|
+
export { createJwksCache as $, AGENTCORE_A2A_PROTOCOL as $t, countTargets as A, resolveCfnStackName as An, resolveEnvVars as At, resolveApiTargetSubset as B, SubstitutionContext as Bn, MCP_CONTAINER_PORT as Bt, resolveAlbFrontDoor as C, LocalStateSourceError as Cn, selectIntegrationResponse as Ct, RegistrationHandle as D, rejectExplicitCfnStackWithMultipleStacks as Dn, CdkWatchConfig as Dt, CloudMapRegistry as E, isCfnFlagPresent as En, ContainerPool as Et, ApiTargetSubset as F, collectSsmParameterRefs as Fn, A2A_PATH as Ft, startApiServer as G, CloudFormationTemplate as Gn, McpJsonRpcRequest as Gt, ServerState as H, substituteAgainstStateAsync as Hn, MCP_PROTOCOL_VERSION as Ht, CreateLocalStartApiCommandOptions as I, resolveSsmParameters as In, A2aInvokeOptions as It, DiscoveryJwtAuthorizer as J, AGENTCORE_SESSION_ID_HEADER as Jt, CredentialsLoader as K, mcpInvokeOnce as Kt, WatchPredicates as L, CrossStackResolver as Ln, A2aInvokeResult as Lt, CdkLocalError as M, LocalStateRecord as Mn, InvokeAgentCoreWsOptions as Mt, LocalInvokeBuildError as N, ResolvedSsmParameters as Nn, invokeAgentCoreWs as Nt, TargetEntry as O, resolveCfnFallbackRegion as On, resolveWatchConfig as Ot, EcsTaskResolutionError as P, SsmParameterRef as Pn, A2A_CONTAINER_PORT as Pt, buildJwksUrlFromIssuer as Q, waitForAgentCorePing as Qt, createLocalStartApiCommand as R, PseudoParameters as Rn, A2aJsonRpcRequest as Rt, isApplicationLoadBalancer as S, LocalStateProviderFactory as Sn, pickResponseTemplate as St, buildCloudMapIndex as T, createLocalStateProvider as Tn, VtlEvaluationError as Tt, StartedApiServer as U, substituteEnvVarsFromState as Un, McpInvokeOptions as Ut, MtlsServerConfig as V, substituteAgainstState as Vn, MCP_PATH as Vt, readMtlsMaterialsFromDisk as W, substituteEnvVarsFromStateAsync as Wn, McpInvokeResult as Wt, JwtCustomClaim as X, InvokeAgentCoreOptions as Xt, JwksCache as Y, AgentCoreInvokeResult as Yt, buildCognitoJwksUrl as Z, invokeAgentCore as Zt, parseRestartPolicy as _, CdkLocalEmbedConfig as _n, DiscoveredRoute as _t, PlannedAction as a, AgentCoreCustomClaim as an, createAuthorizerCache as at, FrontDoorForwardTarget as b, setEmbedConfig as bn, IntegrationResponseEntry as bt, PlannedForwardAction as c, ResolvedAgentCoreRuntime as cn, LambdaTokenAuthorizer as ct, PlannedLambdaForwardTarget as d, ImageResolutionContext as dn, CorsConfig as dt, AGENTCORE_AGUI_PROTOCOL as en, verifyCognitoJwt as et, PlannedRedirectAction as f, derivePseudoParametersFromRegion as fn, applyCorsResponseHeaders as ft, parseMaxTasks as g, StackInfo as gn, matchPreflight as gt, buildEcsImageResolutionContext as h, ResolvedArnLambdaLayer as hn, isFunctionUrlOacFronted as ht, MAX_TASKS_SUBNET_RANGE_CAP as i, AgentCoreCodeArtifact as in, CachedAuthorizerResult as it, listTargets as j, LocalStateProvider as jn, AgentCoreWsResult as jt, TargetListing as k, resolveCfnRegion as kn, EnvOverrideFile as kt, PlannedForwardTarget as l, pickAgentCoreCandidateStack as ln, RouteWithAuth as lt, addCommonEcsServiceOptions as m, tryResolveImageFnJoin as mn, buildCorsConfigFromCloudFrontChain as mt, EmulatorStrategy as n, AGENTCORE_MCP_PROTOCOL as nn, verifyJwtViaDiscovery as nt, PlannedEcsForwardTarget as o, AgentCoreJwtAuthorizer as on, AuthorizerInfo as ot, ServiceBoot as p, substituteImagePlaceholders as pn, buildCorsConfigByApiId as pt, defaultCredentialsLoader as q, parseSseForJsonRpc as qt, FrontDoorPlan as r, AGENTCORE_RUNTIME_TYPE as rn, AuthorizerCache as rt, PlannedFixedResponseAction as s, AgentCoreResolutionError as sn, LambdaRequestAuthorizer as st, EcsServiceEmulatorOptions as t, AGENTCORE_HTTP_PROTOCOL as tn, verifyJwtAuthorizer as tt, PlannedFrontDoorListener as u, resolveAgentCoreTarget as un, attachAuthorizers as ut, resolveSharedSidecarCredentials as v, getEmbedConfig as vn, RestV1IntegrationConfig as vt, CloudMapIndex as w, LocalStateSourceOptions as wn, tryParseStatus as wt, ResolvedListenerAction as x, ExtraStateProviders as xn, evaluateResponseParameters as xt, runEcsServiceEmulator as y, resetEmbedConfig as yn, discoverRoutes as yt, createWatchPredicates as z, StateEnvSubstitutionAudit as zn, a2aInvokeOnce as zt };
|
|
1045
|
+
//# sourceMappingURL=ecs-service-emulator-BgO3gb5D.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ecs-service-emulator-BgO3gb5D.d.ts","names":[],"sources":["../src/types/resource.ts","../src/types/state.ts","../src/local/state-resolver.ts","../src/local/ssm-parameter-resolver.ts","../src/local/local-state-provider.ts","../src/cli/commands/local-state-source.ts","../src/local/embed-config.ts","../src/synthesis/assembly-reader.ts","../src/local/lambda-resolver.ts","../src/local/intrinsic-image.ts","../src/local/agentcore-resolver.ts","../src/local/agentcore-client.ts","../src/local/agentcore-mcp-client.ts","../src/local/agentcore-a2a-client.ts","../src/local/agentcore-ws-client.ts","../src/local/env-resolver.ts","../src/cli/config-loader.ts","../src/local/httpv2-service-integration.ts","../src/local/container-pool.ts","../src/local/vtl-engine.ts","../src/local/integration-response-selector.ts","../src/local/rest-v1-integrations.ts","../src/local/route-discovery.ts","../src/local/cors-handler.ts","../src/local/authorizer-resolver.ts","../src/local/authorizer-cache.ts","../src/local/cognito-jwt.ts","../src/local/sigv4-verify.ts","../src/local/http-server.ts","../src/cli/commands/local-start-api.ts","../src/local/ecs-task-resolver.ts","../src/utils/error-handler.ts","../src/local/target-lister.ts","../src/local/cloud-map-registry.ts","../src/local/cloud-map-resolver.ts","../src/local/alb-path-matcher.ts","../src/local/elb-front-door-resolver.ts","../src/cli/commands/ecs-service-emulator.ts"],"mappings":"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"}
|
|
@@ -18076,7 +18076,8 @@ function createEcsRunState() {
|
|
|
18076
18076
|
network: void 0,
|
|
18077
18077
|
dockerVolumeNames: [],
|
|
18078
18078
|
startedContainers: [],
|
|
18079
|
-
logStoppers: []
|
|
18079
|
+
logStoppers: [],
|
|
18080
|
+
publishedEndpoints: []
|
|
18080
18081
|
};
|
|
18081
18082
|
}
|
|
18082
18083
|
/**
|
|
@@ -18162,7 +18163,7 @@ async function runEcsTask(task, options, state) {
|
|
|
18162
18163
|
for (const container of task.containers) {
|
|
18163
18164
|
const image = imagePlan.get(container.name);
|
|
18164
18165
|
if (!image) throw new EcsTaskRunnerError(`Internal: no resolved image for container '${container.name}'.`);
|
|
18165
|
-
|
|
18166
|
+
const built = buildDockerRunArgs({
|
|
18166
18167
|
task,
|
|
18167
18168
|
container,
|
|
18168
18169
|
image,
|
|
@@ -18181,7 +18182,12 @@ async function runEcsTask(task, options, state) {
|
|
|
18181
18182
|
...options.addHostFlags && options.addHostFlags.length > 0 ? { addHostFlags: options.addHostFlags } : {},
|
|
18182
18183
|
...(options.networkAliasesByContainer?.get(container.name)?.length ?? 0) > 0 ? { networkAliases: options.networkAliasesByContainer.get(container.name) } : {},
|
|
18183
18184
|
...options.profileCredentialsFile && { profileCredentialsFile: options.profileCredentialsFile }
|
|
18184
|
-
})
|
|
18185
|
+
});
|
|
18186
|
+
dockerCmds.set(container.name, {
|
|
18187
|
+
args: built.args,
|
|
18188
|
+
sensitiveEnv: built.sensitiveEnv
|
|
18189
|
+
});
|
|
18190
|
+
for (const ep of built.publishedEndpoints) state.publishedEndpoints.push(ep);
|
|
18185
18191
|
}
|
|
18186
18192
|
const startedByName = /* @__PURE__ */ new Map();
|
|
18187
18193
|
for (const containerName of startOrder) {
|
|
@@ -18526,6 +18532,7 @@ function parseHostPortOverrides(values) {
|
|
|
18526
18532
|
function buildDockerRunArgs(opts) {
|
|
18527
18533
|
const { task, container, image, network, volumeByName, secrets, containerHost, roleArn } = opts;
|
|
18528
18534
|
const args = ["run", "-d"];
|
|
18535
|
+
const publishedEndpoints = [];
|
|
18529
18536
|
args.push("--name", `${getEmbedConfig().resourceNamePrefix}-${task.family}-${container.name}-${randHex(3)}`);
|
|
18530
18537
|
args.push("--network", network);
|
|
18531
18538
|
args.push("--network-alias", container.name);
|
|
@@ -18544,9 +18551,18 @@ function buildDockerRunArgs(opts) {
|
|
|
18544
18551
|
if (ephemeralPorts.has(pm.containerPort)) continue;
|
|
18545
18552
|
const declaredHostPort = pm.hostPort ?? pm.containerPort;
|
|
18546
18553
|
const hostPort = opts.hostPortOverrides?.[pm.containerPort] ?? declaredHostPort;
|
|
18547
|
-
const
|
|
18554
|
+
const overridden = hostPort !== declaredHostPort;
|
|
18555
|
+
const overrideNote = overridden ? " (--host-port override)" : "";
|
|
18548
18556
|
getLogger().child("ecs").info(`Container '${container.name}' container port ${pm.containerPort} published on ${containerHost}:${hostPort}${overrideNote}. Reach it at ${containerHost}:${hostPort}.`);
|
|
18549
18557
|
args.push("-p", `${containerHost}:${hostPort}:${pm.containerPort}/${pm.protocol}`);
|
|
18558
|
+
publishedEndpoints.push({
|
|
18559
|
+
containerName: container.name,
|
|
18560
|
+
containerPort: pm.containerPort,
|
|
18561
|
+
host: containerHost,
|
|
18562
|
+
hostPort,
|
|
18563
|
+
protocol: pm.protocol,
|
|
18564
|
+
overridden
|
|
18565
|
+
});
|
|
18550
18566
|
}
|
|
18551
18567
|
if (ephemeralPorts.size > 0) {
|
|
18552
18568
|
const alreadyEphemeral = /* @__PURE__ */ new Set();
|
|
@@ -18614,7 +18630,8 @@ function buildDockerRunArgs(opts) {
|
|
|
18614
18630
|
args.push(image, ...entryPointTail, ...container.command ?? []);
|
|
18615
18631
|
return {
|
|
18616
18632
|
args,
|
|
18617
|
-
sensitiveEnv
|
|
18633
|
+
sensitiveEnv,
|
|
18634
|
+
publishedEndpoints
|
|
18618
18635
|
};
|
|
18619
18636
|
}
|
|
18620
18637
|
function applyOverrideMap(acc, map) {
|
|
@@ -21530,6 +21547,7 @@ async function runEcsServiceEmulator(targets, options, strategy, extraStateProvi
|
|
|
21530
21547
|
const summary = perTarget.map((pt) => `${pt.controller.service.serviceName} (${pt.controller.activeReplicaCount()} replica(s))`).join(", ");
|
|
21531
21548
|
logger.info(`Service(s) running: ${summary}.`);
|
|
21532
21549
|
} else logger.info(`Service(s) running: ${frontDoorLambdaRunners.length} Lambda target(s) behind the ALB front-door.`);
|
|
21550
|
+
logEndpointsBanner(perTarget, frontDoorServers, logger);
|
|
21533
21551
|
logger.info("Press ^C to shut down.");
|
|
21534
21552
|
if (perTarget.length > 0) await Promise.all(perTarget.map((pt) => pt.controller.waitForShutdown()));
|
|
21535
21553
|
else await new Promise(() => {});
|
|
@@ -21916,6 +21934,45 @@ function readEnvOverridesFile(filePath) {
|
|
|
21916
21934
|
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) throw new LocalStartServiceError(`--env-vars file '${filePath}' must contain a JSON object at the top level.`);
|
|
21917
21935
|
return parsed;
|
|
21918
21936
|
}
|
|
21937
|
+
/**
|
|
21938
|
+
* Print a consolidated "Service endpoints:" banner so the access URL ends up
|
|
21939
|
+
* at the BOTTOM of the boot output instead of buried mid-`docker pull`. Two
|
|
21940
|
+
* sources are surfaced:
|
|
21941
|
+
*
|
|
21942
|
+
* 1. Per-service static host-port publishes recorded by the runner in
|
|
21943
|
+
* `EcsRunState.publishedEndpoints` (single-replica `start-service`).
|
|
21944
|
+
* Multi-replica services skip the host-port publish and contribute
|
|
21945
|
+
* nothing here.
|
|
21946
|
+
* 2. Host-side ALB front-door listener URLs (`start-alb`). The
|
|
21947
|
+
* `buildFrontDoor` step also logs an `ALB front-door: ...` line for each
|
|
21948
|
+
* listener earlier in the stream (it's the load-bearing marker the integ
|
|
21949
|
+
* tests grep for), but it streams BEFORE the docker-pull noise. Echoing
|
|
21950
|
+
* it here re-surfaces the URL at the bottom for the user.
|
|
21951
|
+
*
|
|
21952
|
+
* Silent when neither source has anything to show.
|
|
21953
|
+
*/
|
|
21954
|
+
function logEndpointsBanner(perTarget, frontDoorServers, logger) {
|
|
21955
|
+
const lines = [];
|
|
21956
|
+
for (const pt of perTarget) {
|
|
21957
|
+
const controller = pt.controller;
|
|
21958
|
+
if (!controller) continue;
|
|
21959
|
+
const endpoints = controller.runState.replicas.find((r) => !r.shuttingDown)?.state.publishedEndpoints ?? [];
|
|
21960
|
+
if (endpoints.length === 0) continue;
|
|
21961
|
+
lines.push(` ${controller.service.serviceName}`);
|
|
21962
|
+
for (const ep of endpoints) {
|
|
21963
|
+
const scheme = ep.protocol.toLowerCase() === "udp" ? "udp" : "http";
|
|
21964
|
+
const override = ep.overridden ? " (--host-port override)" : "";
|
|
21965
|
+
lines.push(` ${ep.containerName} container port ${ep.containerPort}/${ep.protocol} -> ${scheme}://${ep.host}:${ep.hostPort}${override}`);
|
|
21966
|
+
}
|
|
21967
|
+
}
|
|
21968
|
+
if (frontDoorServers.length > 0) {
|
|
21969
|
+
lines.push(" ALB front-door");
|
|
21970
|
+
for (const s of frontDoorServers) lines.push(` ${s.scheme}://${s.host}:${s.port}`);
|
|
21971
|
+
}
|
|
21972
|
+
if (lines.length === 0) return;
|
|
21973
|
+
logger.info("Service endpoints:");
|
|
21974
|
+
for (const l of lines) logger.info(l);
|
|
21975
|
+
}
|
|
21919
21976
|
function parsePositiveInt(raw, flagName) {
|
|
21920
21977
|
const parsed = parseInt(raw, 10);
|
|
21921
21978
|
if (!Number.isFinite(parsed) || parsed < 1) throw new LocalStartServiceError(`${flagName} must be a positive integer (got '${raw}').`);
|
|
@@ -22611,4 +22668,4 @@ function parseAuthenticateAction(action, type, label, warnings) {
|
|
|
22611
22668
|
|
|
22612
22669
|
//#endregion
|
|
22613
22670
|
export { buildMgmtEndpointEnvUrl as $, resolveCdkPathToLogicalIds as $n, resolveRuntimeCodeMountPath as $t, startApiServer as A, countTargets as An, waitForAgentCorePing as At, translateLambdaResponse as B, AGENTCORE_HTTP_PROTOCOL as Bn, getDockerImageBySourceHash as Bt, attachStageContext as C, CfnLocalStateProvider as Cn, MCP_PROTOCOL_VERSION as Ct, filterRoutesByApiIdentifiers as D, resolveWatchConfig as Dn, signAgentCoreInvocation as Dt, filterRoutesByApiIdentifier as E, resolveApp as En, AGENTCORE_SIGV4_SERVICE as Et, computeRequestIdentityHash as F, discoverRoutes as Fn, renderCodeDockerfile as Ft, pickResponseTemplate as G, resolveAgentCoreTarget as Gn, parseEcrUri as Gt, buildHttpApiV2Event as H, AGENTCORE_RUNTIME_TYPE as Hn, waitForRieReady as Ht, evaluateCachedLambdaPolicy as I, pickRefLogicalId as In, toCmdArgv as It, VtlEvaluationError as J, substituteImagePlaceholders as Jn, pickFreePort as Jt, selectIntegrationResponse as K, resolveLambdaTarget as Kn, pullEcrImage as Kt, invokeRequestAuthorizer as L, resolveLambdaArnIntrinsic as Ln, writeProfileCredentialsFile as Lt, resolveServiceIntegrationParameters as M, discoverWebSocketApis as Mn, SUPPORTED_CODE_RUNTIMES as Mt, defaultCredentialsLoader as N, discoverWebSocketApisOrThrow as Nn, buildAgentCoreCodeImage as Nt, groupRoutesByServer as O, Synthesizer as On, AGENTCORE_SESSION_ID_HEADER as Ot, buildMethodArn as P, parseSelectionExpressionPath as Pn, computeCodeImageTag as Pt, ConnectionRegistry as Q, readCdkPathOrUndefined as Qn, streamLogs as Qt, invokeTokenAuthorizer as R, AGENTCORE_A2A_PROTOCOL as Rn, singleFlight as Rt, createFileWatcher as S, resolveCfnStackName as Sn, MCP_PATH as St, availableApiIdentifiers as T, resolveSsmParameters as Tn, parseSseForJsonRpc as Tt, buildRestV1Event as U, AgentCoreResolutionError as Un, architectureToPlatform as Ut, applyAuthorizerOverlay as V, AGENTCORE_MCP_PROTOCOL as Vn, invokeRie as Vt, evaluateResponseParameters as W, pickAgentCoreCandidateStack as Wn, buildContainerImage as Wt, probeHostGatewaySupport as X, matchStacks as Xn, removeContainer as Xt, HOST_GATEWAY_MIN_VERSION as Y, tryResolveImageFnJoin as Yn, pullImage as Yt, bufferToBody as Z, buildCdkPathIndex as Zn, runDetached as Zt, createLocalStartApiCommand as _, createLocalStateProvider as _n, invokeAgentCoreWs as _t, buildEcsImageResolutionContext as a, derivePartitionAndUrlSuffix as an, appOptions as ar, buildCognitoJwksUrl as at, resolveProfileCredentials as b, resolveCfnFallbackRegion as bn, a2aInvokeOnce as bt, resolveSharedSidecarCredentials as c, resolveEcsTaskTarget as cn, deprecatedRegionOption as cr, verifyCognitoJwt as ct, CloudMapRegistry as d, substituteAgainstStateAsync as dn, attachAuthorizers as dt, resolveRuntimeFileExtension as en, CdkLocalError as er, handleConnectionsRequest as et, getContainerNetworkIp as f, substituteEnvVarsFromState as fn, applyCorsResponseHeaders as ft, runEcsTask as g, LocalStateSourceError as gn, matchPreflight as gt, parseHostPortOverrides as h, materializeLayerFromArn as hn, isFunctionUrlOacFronted as ht, addCommonEcsServiceOptions as i, applyCrossStackResolverToTask as in, applyRoleArnIfSet as ir, buildMessageEvent as it, resolveSelectionExpression as j, listTargets as jn, downloadAndExtractS3Bundle as jt, readMtlsMaterialsFromDisk as k, resolveSingleTarget as kn, invokeAgentCore as kt, runEcsServiceEmulator as l, applyDeployedEnvFallback as ln, parseContextOptions as lr, verifyJwtAuthorizer as lt, createEcsRunState as m, resolveEnvVars as mn, buildCorsConfigFromCloudFrontChain as mt, resolveAlbFrontDoor as n, EcsTaskResolutionError as nn, LocalStartServiceError as nr, buildConnectEvent as nt, parseMaxTasks as o, detectEcsImageResolutionNeeds as on, commonOptions as or, buildJwksUrlFromIssuer as ot, cleanupEcsRun as p, substituteEnvVarsFromStateAsync as pn, buildCorsConfigByApiId as pt, tryParseStatus as q, derivePseudoParametersFromRegion as qn, ensureDockerAvailable as qt, MAX_TASKS_SUBNET_RANGE_CAP as r, TASK_ROLE_ACCOUNT_PLACEHOLDER as rn, withErrorHandling as rr, buildDisconnectEvent as rt, parseRestartPolicy as s, parseEcsTarget as sn, contextOptions as sr, createJwksCache as st, isApplicationLoadBalancer as t, resolveRuntimeImage as tn, LocalInvokeBuildError as tr, parseConnectionsPath as tt, buildCloudMapIndex as u, substituteAgainstState as un, warnIfDeprecatedRegion as ur, verifyJwtViaDiscovery as ut, createWatchPredicates as v, isCfnFlagPresent as vn, A2A_CONTAINER_PORT as vt, buildStageMap as w, collectSsmParameterRefs as wn, mcpInvokeOnce as wt, createAuthorizerCache as x, resolveCfnRegion as xn, MCP_CONTAINER_PORT as xt, resolveApiTargetSubset as y, rejectExplicitCfnStackWithMultipleStacks as yn, A2A_PATH as yt, matchRoute as z, AGENTCORE_AGUI_PROTOCOL as zn, AssetManifestLoader as zt };
|
|
22614
|
-
//# sourceMappingURL=elb-front-door-resolver-
|
|
22671
|
+
//# sourceMappingURL=elb-front-door-resolver-y5FicgLi.js.map
|