thdxr
10/04/2021, 10:57 PMFrank
thdxr
10/04/2021, 11:15 PMexperimental
version and it's failing with Error: ENOENT: no such file or directory, copyfile '/home/thdxr/dev/projects/blog/.build/lib/nodejs-entrypoint.js' -> '/home/thdxr/dev/projects/blog/.build/lib/edge-function/__entrypoint__.js'
thdxr
10/04/2021, 11:16 PMthdxr
10/04/2021, 11:16 PMFrank
thdxr
10/04/2021, 11:18 PMFrank
thdxr
10/04/2021, 11:19 PMimport { LambdaEdgeEventType, experimental } from "@aws-cdk/aws-cloudfront";
const edgeFunc = new experimental.EdgeFunction(this, "MyFunction", {
runtime: lambda.Runtime.NODEJS_12_X,
handler: "lambda.handler",
code: lambda.Code.fromAsset("path/to/dir"),
stackId: `${scope.logicalPrefixedName("edge-lambda")}`,
});
new StaticSite(this, "Site", {
path: "path/to/src",
cfDistribution: {
defaultBehavior: {
edgeLambdas: [
{
functionVersion: edgeFunc.currentVersion,
eventType: LambdaEdgeEventType.VIEWER_RESPONSE,
},
],
},
},
});
I don't think it works for methdxr
10/04/2021, 11:19 PMFrank
lib/nodejs-entrypoint.js'
comes from?thdxr
10/04/2021, 11:23 PMError: ENOENT: no such file or directory, copyfile '/home/thdxr/dev/projects/blog/.build/lib/nodejs-entrypoint.js' -> '/home/thdxr/dev/projects/blog/.build/lib/edge-function/__entrypoint__.js'
at Object.copyFileSync (node:fs:2792:3)
at new CustomResourceProvider (/home/thdxr/dev/projects/blog/node_modules/@aws-cdk/core/lib/custom-resource-provider/custom-resource-provider.ts:86:8)
at Function.getOrCreateProvider (/home/thdxr/dev/projects/blog/node_modules/@aws-cdk/core/lib/custom-resource-provider/custom-resource-provider.ts:69:10)
at Function.getOrCreate (/home/thdxr/dev/projects/blog/node_modules/@aws-cdk/core/lib/custom-resource-provider/custom-resource-provider.ts:61:17)
at EdgeFunction.createCrossRegionArnReader (/home/thdxr/dev/projects/blog/node_modules/@aws-cdk/aws-cloudfront/lib/experimental/edge-function.ts:162:49)
at EdgeFunction.createCrossRegionFunction (/home/thdxr/dev/projects/blog/node_modules/@aws-cdk/aws-cloudfront/lib/experimental/edge-function.ts:144:26)
at new EdgeFunction (/home/thdxr/dev/projects/blog/node_modules/@aws-cdk/aws-cloudfront/lib/experimental/edge-function.ts:43:14)
thdxr
10/04/2021, 11:23 PMFrank
thdxr
10/04/2021, 11:24 PMthdxr
10/04/2021, 11:24 PMFrank
Frank
fs.copyFileSync(ENTRYPOINT_NODEJS_SOURCE, path.join(props.codeDirectory, `${ENTRYPOINT_FILENAME}.js`));
Frank
Frank
props.codeDirectory
comes from experimental function codeFrank
const serviceToken = CustomResourceProvider.getOrCreate(this, resourceType, {
codeDirectory: path.join(__dirname, 'edge-function'),
runtime: CustomResourceProviderRuntime.NODEJS_12_X,
policyStatements: [{
Effect: 'Allow',
Resource: parameterArnPrefix,
Action: ['ssm:GetParameter'],
}],
});
Frank
__dirname
is resolved to the .build
directorythdxr
10/04/2021, 11:39 PMFrank
thdxr
10/05/2021, 12:29 AMthdxr
10/05/2021, 12:29 AMAdrián Mouly
10/05/2021, 1:01 AMAdrián Mouly
10/05/2021, 1:01 AMAdrián Mouly
10/05/2021, 1:01 AMthdxr
10/05/2021, 1:02 AMAdrián Mouly
10/05/2021, 1:02 AMthdxr
10/05/2021, 1:02 AMAdrián Mouly
10/05/2021, 1:02 AMthdxr
10/05/2021, 1:02 AMAdrián Mouly
10/05/2021, 1:02 AMCloudFront-Viewer-Country
.Adrián Mouly
10/05/2021, 1:02 AM