You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To each templated-app I add the npm module errorhandler which depends upon bundled ./public/* files to initialise.
uname -a
# Darwin Macbook2022.local 23.5.0 Darwin Kernel Version 23.5.0: Wed May 1 20:19:05 PDT 2024; root:xnu-10063.121.3~5/RELEASE_ARM64_T8112 arm64
sam --version
# SAM CLI, version 1.118.0
APP_TEMPLATE=hello-world-typescript
APP_SOURCE=app.ts
# Deploy and invoke - default template
sam init --app-template "${APP_TEMPLATE}" --name sam-app --package-type Zip --runtime nodejs20.x --no-tracing --no-application-insights --no-structured-logging
cd sam-app
sam build
sam deploy --no-confirm-changeset
curl $(aws cloudformation describe-stacks --stack-name sam-app --query 'Stacks[0].Outputs[?OutputKey==`HelloWorldApi`].OutputValue' --output text)# {"message":"hello world"}%
sam logs
# no error messages# Install errorhandler library - an npm library with included ./public/* filescd ./hello-world
npm install
npm i errorhandler
npm i --save-dev @types/errorhandler
echo"import errorhandler from 'errorhandler';"> temp.app
echo"errorhandler();">> temp.app
cat "${APP_SOURCE}">> temp.app
mv -f temp.app "${APP_SOURCE}"
npm run testcd ..
# Deploy and invoke - with errorhandler library installed
sam build
find .aws-sam -name public
# .aws-sam/deps/7cd4d57c-fe7c-49ed-ac9f-838c83e8e788/node_modules/errorhandler/public
sam deploy --no-confirm-changeset
curl $(aws cloudformation describe-stacks --stack-name sam-app --query 'Stacks[0].Outputs[?OutputKey==` HelloWorldApi`].OutputValue' --output text)# {"message": "Internal server error"}%
sam logs
# see error below
sam delete --no-prompts
cd ..
rm -rf sam-app
Observed result:
# Deploy and invoke - default template
% curl ....
{"message":"hello world"}%
% sam logs
# no error messages
# Deploy and invoke - with errorhandler library installed
% curl
{"message": "Internal server error"}%
% sam logs
...
2024/06/07/[$LATEST]28ff1ed338e644a8a83d55aaf2d8ae91 2024-06-07T02:09:14.194000 INIT_START Runtime Version: nodejs:20.v23 Runtime Version ARN: arn:aws:lambda:ap-southeast-2::runtime:92c5bcb1529200756eb64a0d90d4ab606fdaf21421321da6c202187b88833f52
2024/06/07/[$LATEST]28ff1ed338e644a8a83d55aaf2d8ae91 2024-06-07T02:09:14.313000 2024-06-07T02:09:14.313Z undefined ERROR Uncaught Exception {"errorType":"Error","errorMessage":"ENOENT: no such file or directory, open '/var/task/public/style.css'","code":"ENOENT","errno":-2,"syscall":"open","path":"/var/task/public/style.css","stack":["Error: ENOENT: no such file or directory, open '/var/task/public/style.css'"," at Object.readFileSync (node:fs:448:20)"," at <anonymous> (/private/var/folders/78/lz3qk5tn1cb7vc1b2l77nvy80000gn/T/tmpo3qdql_y/node_modules/errorhandler/index.js:30:21)"," at /var/task/app.js:1:221"," at Object.<anonymous> (/private/var/folders/78/lz3qk5tn1cb7vc1b2l77nvy80000gn/T/tmpo3qdql_y/app.ts:1:26)"," at Module._compile (node:internal/modules/cjs/loader:1358:14)"," at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)"," at Module.load (node:internal/modules/cjs/loader:1208:32)"," at Module._load (node:internal/modules/cjs/loader:1024:12)"," at Module.require (node:internal/modules/cjs/loader:1233:19)"," at require (node:internal/modules/helpers:179:18)"]}
2024/06/07/[$LATEST]28ff1ed338e644a8a83d55aaf2d8ae91 2024-06-07T02:09:14.339000 INIT_REPORT Init Duration: 145.47 ms Phase: init Status: error Error Type: Runtime.Unknown
Expected result:
Repeating the above steps with the default javascript app-template (no typescript/esbuild) works as expected:
APP_TEMPLATE=hello-world
APP_SOURCE=app.mjs
# Deploy and invoke - default template
sam init --app-template "${APP_TEMPLATE}" --name sam-app --package-type Zip --runtime nodejs20.x --no-tracing --no-application-insights --no-structured-logging
...
% curl ...
{"message":"hello world"}%
% sam logs
# no error messages# Deploy and invoke - with errorhandler library installed
...
% curl ...
{"message":"hello world"}%
% sam logs
# no error messages
Additional environment details (Ex: Windows, Mac, Amazon Linux etc)
OS: uname -a : Darwin Macbook2022.local 23.5.0 Darwin Kernel Version 23.5.0: Wed May 1 20:19:05 PDT 2024; root:xnu-10063.121.3~5/RELEASE_ARM64_T8112 arm64
Description:
Some npm packages, or lambda source modules, include bundled files.
When using
Metadata.BuildMethod: esbuild
these bundled files are not included in the deployment packageWhen using default javascript (without esbuild) these bundled files are correctly included.
Steps to reproduce:
The bug is revealed when using the following nodejs20.x sam-app-templates:
To each templated-app I add the npm module errorhandler which depends upon bundled
./public/*
files to initialise.Observed result:
Expected result:
Repeating the above steps with the default javascript app-template (no typescript/esbuild) works as expected:
Additional environment details (Ex: Windows, Mac, Amazon Linux etc)
Darwin Macbook2022.local 23.5.0 Darwin Kernel Version 23.5.0: Wed May 1 20:19:05 PDT 2024; root:xnu-10063.121.3~5/RELEASE_ARM64_T8112 arm64
sam --version
: SAM CLI, version 1.118.0The text was updated successfully, but these errors were encountered: