local start-cloudfront (run a CloudFront distribution locally)
cdkd local start-cloudfront [target] serves a CloudFront
distribution's viewer-request -> S3 / Lambda Function URL origin ->
viewer-response pipeline locally so a routing-function change is
verifiable in seconds instead of a deploy round-trip. Models cdk-local's
cdkl start-cloudfront, inherited into cdkd's command tree as a thin
pass-through to cdk-local's command factory. A CloudFront-Functions +
S3-origin-only distribution is pure-local (no Docker); a distribution
with a Lambda Function URL origin runs that origin's backing Lambda via
the RIE container (Docker required). It binds a Function URL origin's
backing Lambda + a deployed-S3 origin's bucket name to deployed state via
cdkd's S3-backed --from-state (after a prior cdkd deploy) OR
cdk-local's inherited --from-cfn-stack / --stack-region /
--assume-role (CloudFormation-deployed stacks). The two state sources
are mutually exclusive.
As of cdk-local 0.128.0 the start-cloudfront factory
accepts the extraStateProviders seam, so cdkd threads its --from-state
factory in and layers --from-state / --state-bucket / --state-prefix
on top — the same wiring as start-agentcore / start-alb /
start-service (start-cloudfront was --from-state-exempt
before the seam landed).
local start-cloudfront target resolution
Names one AWS::CloudFront::Distribution by its CDK display path
(MyStack/MyDistribution). Omit the target in a TTY for an interactive
picker over every distribution in the synthesized app. A single
distribution is served per invocation.
local start-cloudfront what runs locally
- CloudFront Functions (
cloudfront-js-1.0/2.0) — the inline rewrite JS associated asviewer-request/viewer-responseruns in-process in anode:vmsandbox (async 2.0 handlers awaited). A viewer-request function that returns astatusCodeshort-circuits with a generated response (redirect / fixed body); otherwise the rewritten request continues to the origin, then the viewer-response function runs over the origin response. - S3 origin content — resolved out of the cloud assembly: the
origin's bucket -> its
BucketDeploymentcustom resource ->SourceObjectKeys-> the staged asset directory (or, under--from-cfn-stack, the deployed bucket served from real S3 on demand). Served withDefaultRootObject(root only — sub-paths are NOT auto-indexed, matching CloudFront) andCustomErrorResponses(the SPA fallback). - Lambda Function URL origins — the origin's backing Lambda is run
locally via the RIE container (the same path as
local invoke), so a distribution that fronts a Function URL is served end-to-end. - Routing — path patterns route across the
DefaultCacheBehavior+ orderedCacheBehaviors[](CloudFront*/?glob matching).
local start-cloudfront options
--port <n>— listener port (default0= collision-bumped).--host <ip>— bind IP (default127.0.0.1).--tls/--tls-cert <p>/--tls-key <p>— terminate real HTTPS (user-supplied PEM pair or an auto-generated self-signed cert).--origin <id>=<dir>— point an origin at a local directory whenBucketDeploymentresolution can't (content uploaded out of band, non-CDK bucket). Repeatable.--kvs-file <key>=<file>— supply a CloudFront KeyValueStore's contents from a local JSON file (the AWS-free alternative to--from-cfn-stack, which reads the deployed store on demand).<key>is a KeyValueStore handle — itsAWS::CloudFront::KeyValueStoreresource logical id, its construct path (MyStack/RoutesKvs), or its bare construct id (RoutesKvs) — so you no longer have to synth + grep for the hash-suffixed logical id. An unrecognized key (or an ambiguous bare id) fails fast with an error listing the distribution's KeyValueStore candidates. Repeatable.--cache-origin— keep fetched deployed-S3 origin objects in memory (only meaningful under--from-cfn-stack). Setting it without--from-cfn-stackis a no-op and now logs a boot-time WARN saying so (a local BucketDeployment /--origin <id>=<dir>origin serves from disk and is never cached).--no-pull— skipdocker pullfor a Lambda Function URL origin's base image (no-op for a Function-URL-free distribution).--from-state/--state-bucket <bucket>/--state-prefix <prefix>— bind a Function URL origin's backing Lambda + a deployed-S3 origin's bucket name to cdkd's S3 state (after a priorcdkd deploy). Mutually exclusive with--from-cfn-stack.--state-prefixdefaults tocdkd.--from-cfn-stack [name]/--stack-region <region>/--assume-role [arn]— the CloudFormation-deployed-stack counterpart of--from-state(for apps deployed via the upstream CDK CLI).--watch— re-synth + atomically swap the in-memory routing model under the live socket on every CDK source edit.
local start-cloudfront scope
S3 origins + Lambda Function URL origins. A custom (non-S3, non-Function-URL)
origin, a LambdaFunctionAssociations Lambda@Edge association, and the
2.0 cf.fetch origin API are warn-and-skip (custom / unresolved origins
return 502).