AWS CodePipeline execute failed in deploying Nodejs app in Elastic Beanstalk - amazon-web-services

I know its a repetitive question but I didn't see any solution out there.
I deployed Nodejs app in Elastic Beanstalk through AWS CodePipeline. It was running perfect but after AWS announces a newer version of Linux OS, it's health became degraded and the deployment after this will also fail by CodePipeline.
So I decided to upgrade the Linux version but after that, the problem is didn't resolve and it shows me this error.
I checked eb-engine.log and I came to know that one of the nodejs package is didn't install by NPM.
2022/02/06 10:24:24.575676 [ERROR] An error occurred during execution
of command [app-deploy] - [Use NPM to install dependencies]. Stop
running the command. Error: Command /bin/sh -c npm --production
install failed with error exit status 1. Stderr:sharp: Installation
error: EACCES: permission denied, mkdir '/root/.npm/_libvips' npm WARN
newbackend#1.0.0 No description npm WARN newbackend#1.0.0 No
repository field.
npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! sharp#0.30.0
install: (node install/libvips && node install/dll-copy && prebuild-install) || (node install/can-compile && node-gyp rebuild && node install/dll-copy) npm ERR! Exit status 1 npm ERR! npm ERR!
Failed at the sharp#0.30.0 install script. npm ERR! This is probably
not a problem with npm. There is likely additional logging output
above.
npm ERR! A complete log of this run can be found in: npm ERR!
/root/.npm/_logs/2022-02-06T10_24_24_562Z-debug.log
2022/02/06 10:24:24.575682 [INFO] Executing cleanup logic 2022/02/06
10:24:24.575792 [INFO] CommandService Response:
{"status":"FAILURE","api_version":"1.0","results":[{"status":"FAILURE","msg":"Engine
execution has encountered an
error.","returncode":1,"events":[{"msg":"Instance deployment: You
didn't specify a Node.js version in the 'package.json' file in your
source bundle. The deployment didn't install a specific Node.js
version.","timestamp":1644143057,"severity":"INFO"},{"msg":"Instance
deployment: 'npm' failed to install dependencies that you defined in
'package.json'. For details, see 'eb-engine.log'. The deployment
failed.","timestamp":1644143064,"severity":"ERROR"},{"msg":"Instance
deployment failed. For details, see
'eb-engine.log'.","timestamp":1644143064,"severity":"ERROR"}]}]}
2022/02/06 10:24:24.575979 [INFO] Platform Engine finished execution
on command: app-deploy
{
"name": "newbackend",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"start": "node server.js"
},
"author": "",
"license": "ISC",
"dependencies": {
"aws-sdk": "^2.1069.0",
"cors": "^2.8.5",
"cryptr": "^6.0.2",
"dotenv": "^10.0.0",
"express": "^4.17.2",
"express-validator": "^6.14.0",
"influx": "^5.9.2",
"jsonwebtoken": "^8.5.1",
"moment": "^2.29.1",
"mongoose": "^6.2.0",
"morgan": "^1.10.0",
"multer": "^1.4.4",
"sharp": "^0.30.0",
"validator": "^13.7.0"
}
}
This is my package.json file. It is a simple nodejs app that serves as an API. Now the problem is with the installation of sharp package. If something is missing, please correct me.
I know there is a problem with NPM install but I don't know how to resolve this on AWS CodePipeline.
Any help will be appreciated.
Thanks

Related

getting error whenever try to deploy backend with cdk via gitlab , in local it will works as expected

I am trying to deploy backend serverless resources with CDK in AWS cloud but getting errors while deploying things via GitLab build.
trying with a local visual studio it works fine.
error is below :
$ npm run deploy-backend
> ui-dashboard-infra#0.0.0 deploy-backend /builds/project/control-panel/infra
> cdk deploy --app 'ts-node stacks/backend' --all --require-approval never
Bundling asset dashboard-A/restFunctionFallbackus-east-1/Code/Stage...
/builds/project/control-panel/infra/node_modules/#aws-cdk/core/lib/asset-staging.ts:398
throw new Error(`Failed to bundle asset ${this.node.path}, bundle output is located at ${bundleErrorDir}: ${err}`);
^
Error: Failed to bundle asset dashboard-A/restFunctionFallbackus-east-1/Code/Stage, bundle output is located at /builds/project/control-panel/infra/cdk.out/bundling-temp-4607286efdd890681baca6f8a5d9b9b32929fa84e9947500fbe203e5b5d06a0f-error: Error: spawnSync bash ENOENT
at AssetStaging.bundle (/builds/project/control-panel/infra/node_modules/#aws-cdk/core/lib/asset-staging.ts:398:13)
at AssetStaging.stageByBundling (/builds/project/control-panel/infra/node_modules/#aws-cdk/core/lib/asset-staging.ts:246:10)
at stageThisAsset (/builds/project/control-panel/infra/node_modules/#aws-cdk/core/lib/asset-staging.ts:137:35)
at Cache.obtain (/builds/project/control-panel/infra/node_modules/#aws-cdk/core/lib/private/cache.ts:24:13)
at new AssetStaging (/builds/project/control-panel/infra/node_modules/#aws-cdk/core/lib/asset-staging.ts:162:44)
at new Asset (/builds/project/control-panel/infra/node_modules/#aws-cdk/aws-s3-assets/lib/asset.ts:68:21)
at AssetCode.bind (/builds/project/control-panel/infra/node_modules/#aws-cdk/aws-lambda/lib/code.ts:180:20)
Subprocess exited with error 1
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! ui-dashboard-infra#0.0.0 deploy-backend: `cdk deploy --app 'ts-node stacks/backend' --all --require-approval never`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the ui-dashboard-infra#0.0.0 deploy-backend script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2021-08-10T08_29_17_449Z-debug.log
I have faced a similar kind of issue, and the problem is that there is a bug in cdk versions prior to the once released before 25th Feb 2021.
For that, please make sure either you are using the latest version of cdk, or you DO NOT HAVE ANY WHITE SPACES IN YOUR FILE PATHNAME (any directory name having space or your username that has a space might cause this problem). Once I removed the white spaces from the pathname, everything started to work as expected.
I got the same error as you. In my case, the issue was that I had esbuild installed as a dependency in the CDK folder, but not in the folder of my Lambda function.
I was able to fix the issue by installing esbuild as a dev dependency in my Lambda function folder. If you don't want to do that, you can also install it globally in your pipeline by adding the command npm i -g esbuild to your pipeline (consider pinning it to a particular version ie. npm i -g esbuild#x.y.z).
No idea why it was working locally without esbuild installed in the function folder, but then broke when doing the same thing in a Gitlab pipeline… I didn't have esbuild installed globally on my local machine or anything.

node-gyp rebuild error on docker hyperledger indy

I am using hyperledger indy for my thesis. Indy runs on docker. But whenever I try to build my docker-compose, npm install command in agentDockerfile throws node-gyp rebuild error.I am installing node v10.Can anyone please help?
My agentDockerfile
FROM bcgovimages/von-image:py36-1.6-8
USER root
# Install nodejs
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash -
RUN apt-get install -y \
nodejs \
build-essential
USER indy
WORKDIR $HOME
RUN mkdir nodejs
WORKDIR nodejs
ENV LD_LIBRARY_PATH=$HOME/.local/lib:/usr/local/lib:/usr/lib
# Get the dependencies loaded first - this makes rebuilds faster
COPY --chown=indy:indy package.json .
RUN npm install
# Copy rest of the app
COPY --chown=indy:indy . .
RUN chmod uga+x scripts/* bin/*
CMD [ "npm", "start" ]
EXPOSE 8000
error:
> indy-sdk#1.6.1 install /home/indy/nodejs/node_modules/indy-sdk
> node-gyp rebuild
gyp WARN install got an error, rolling back install
gyp ERR! configure error
gyp ERR! stack Error: connect ETIMEDOUT 104.20.22.46:443
gyp ERR! stack at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1191:14)
gyp ERR! System Linux 5.10.0-kali3-amd64
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/indy/nodejs/node_modules/indy-sdk
gyp ERR! node -v v8.17.0
gyp ERR! node-gyp -v v5.0.5
gyp ERR! not ok
npm WARN The package just-extend is included as both a dev and production dependency.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! indy-sdk#1.6.1 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the indy-sdk#1.6.1 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/indy/.npm/_logs/2021-07-04T09_53_53_155Z-debug.log
ERROR: Service 'alice' failed to build: The command '/bin/sh -c npm install' returned a non-zero code: 1
Package.json:
{
"name": "indy-agent",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www",
"test": "mocha test/**/*.js"
},
"dependencies": {
"cookie-parser": "~1.4.3",
"debug": "~2.6.9",
"ejs": "~2.5.7",
"express": "~4.16.0",
"express-session": "^1.15.6",
"home-dir": "^1.0.0",
"http-errors": "~1.6.2",
"indy-sdk": "1.6.1",
"json-stringify-pretty-compact": "^1.2.0",
"morgan": "~1.9.1",
"request": "^2.87.0",
"request-promise": "^4.2.2",
"request-promise-native": "^1.0.5",
"session-file-store": "^1.2.0"
},
"devDependencies": {
"chai": "^4.1.2",
"mocha": "^5.1.1",
"sinon": "^5.0.7",
"just-extend": ">=4.0.0"
}
}
I am using Ubuntu 20.04

Truffle/npm error "Expected parameter 'from' not passed to function"

I am playing with Truffle and while building, I am getting the following error. I searched internet but found nothing useful.
While running the "truffle.cmd deploy" command.
C:\Users\user_name\AppData\Roaming\npm\node_modules\truffle\build\webpack:\~\truffle-expect\index.js:3
expected_keys.forEach(function(key) { ^ Error: Expected parameter 'from' not passed to function.
at C:\Users\user_name\AppData\Roaming\npm\node_modules\truffle\build\webpack:\~\truffle-expect\index.js:5:1
at Array.forEach ()
at Object.options (C:\Users\user_name\AppData\Roaming\npm\node_modules\truffle\build\webpack:\~\truffle-expect\index.js:3:1)
at Object.run (C:\Users\user_name\AppData\Roaming\npm\node_modules\truffle\build\webpack:\~\truffle-migrate\index.js:122:1)
at C:\Users\user_name\AppData\Roaming\npm\node_modules\truffle\build\webpack:\~\truffle-core\lib\commands\migrate.js:79:1
at C:\Users\user_name\AppData\Roaming\npm\node_modules\truffle\build\webpack:\~\truffle-migrate\index.js:291:1
at C:\Users\user_name\AppData\Roaming\npm\node_modules\truffle\build\webpack:\~\truffle-migrate\index.js:115:1
at done (C:\Users\user_name\AppData\Roaming\npm\node_modules\truffle\build\webpack:\~\truffle-migrate\~\node-dir\lib\paths.js:61:1)
at C:\Users\user_name\AppData\Roaming\npm\node_modules\truffle\build\webpack:\~\truffle-migrate\~\node-dir\lib\paths.js:118:1
at FSReqWrap.oncomplete (fs.js:153:5) npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! tip-and-win#1.0.0 start: start cmd /K
ganache-cli --deterministic && truffle.cmd deploy && cd app && npm
install && npm run start npm ERR! Exit status 1 npm ERR! npm ERR!
Failed at the tip-and-win#1.0.0 start script. npm ERR! This is
probably not a problem with npm. There is likely additional logging
output above. npm WARN Local package.json exists, but node_modules
missing, did you mean to install?
Your current provider did not have any account. so, first you need to create an account on your rpc network by personal.newAccount(); after that run truffle migrate.
Hope this will help you to resolve this issue.

Hyperledger composer test code

I was following the instructions on IBM hyperledger composer developer guide, but when I did compiling, it failed and appeared this error.
> mocha -t 0 --recursive && cucumber-js
Sample
1) "before each" hook for "Alice can read all of the assets"
0 passing (912ms)
1 failing
1) Sample "before each" hook for "Alice can read all of the assets":
SyntaxError: Failed to parse /Users/calvinlin007/Documents/hyperledger-composer/my-network/lib/sample.js: The keyword 'const' is reserved (17:0)
at new Script (node_modules/composer-common/lib/introspect/script.js:55:27)
at ScriptManager.createScript (node_modules/composer-common/lib/scriptmanager.js:61:16)
at Object.process (node_modules/composer-common/lib/businessnetworkdefinition.js:507:69)
at Function.processFile (node_modules/composer-common/lib/businessnetworkdefinition.js:578:27)
at items.forEach (node_modules/composer-common/lib/businessnetworkdefinition.js:563:39)
at Array.forEach (native)
at Function.processDirectory (node_modules/composer-common/lib/businessnetworkdefinition.js:562:15)
at Function.fromDirectory (node_modules/composer-common/lib/businessnetworkdefinition.js:498:35)
at adminConnection.createProfile.then.then (test/sample.js:66:50)
npm ERR! Darwin 16.7.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "test-inner"
npm ERR! node v6.11.3
npm ERR! npm v3.10.10
npm ERR! code ELIFECYCLE
npm ERR! my-network#0.1.6 test-inner: `mocha -t 0 --recursive && cucumber-js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the my-network#0.1.6 test-inner script 'mocha -t 0 --recursive && cucumber-js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the my-network package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! mocha -t 0 --recursive && cucumber-js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs my-network
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls my-network
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /Users/calvinlin007/Documents/hyperledger-composer/my-network/npm-debug.log
npm ERR! Test failed. See above for more details.
This is my .eslintrc.yml configuration
env:
es6: true
node: true
mocha: true
extends: 'eslint:recommended'
parserOptions:
ecmaVersion: 2015
sourceType:
- script
Cuz I have searched the problem and it should be EMCAScript version,
but I tried changing it and it didn't work.
I've checked my macOS is 10.12. and here's my package.json
{
"engines": {
"composer": "^0.11.0 || ^0.12.0 || ^0.13.0"
},
"name": "my-network",
"version": "0.1.6",
"description": "My Commodity Trading network",
"networkImage": "https://hyperledger.github.io/composer-sample-networks/packages/basic-sample-network/networkimage.svg",
"networkImageanimated": "https://hyperledger.github.io/composer-sample-networks/packages/basic-sample-network/networkimageanimated.svg",
"scripts": {
"prepublish": "mkdirp ./dist ; composer archive create --sourceType dir --sourceName . -a ./dist/my-network.bna",
"pretest": "npm run lint",
"lint": "eslint .",
"postlint": "npm run licchk",
"licchk": "license-check",
"postlicchk": "npm run doc",
"doc": "jsdoc --pedantic --recurse -c jsdoc.json",
"test-inner": "mocha -t 0 --recursive && cucumber-js",
"test-cover": "nyc npm run test-inner",
"test": "npm run test-inner"
},
"repository": {
"type": "git",
"url": "https://github.com/hyperledger/composer-sample-networks.git"
},
"keywords": [
"sample",
"composer",
"composer-network"
],
"author": "Hyperledger Composer",
"license": "Apache-2.0",
"devDependencies": {
"browserfs": "^1.2.0",
"chai": "^3.5.0",
"chai-as-promised": "^6.0.0",
"composer-admin": "^0.11.0",
"composer-cli": "^0.11.0",
"composer-client": "^0.11.0",
"composer-connector-embedded": "^0.11.0",
"composer-cucumber-steps": "^0.11.0",
"cucumber": "^2.2.0",
"eslint": "^3.6.1",
"istanbul": "^0.4.5",
"jsdoc": "^3.4.1",
"license-check": "^1.1.5",
"mkdirp": "^0.5.1",
"mocha": "^3.2.0",
"moment": "^2.17.1",
"nyc": "^11.0.2"
},
"license-check-config": {
"src": [
"**/*.js",
"!./coverage/**/*",
"!./node_modules/**/*",
"!./out/**/*",
"!./scripts/**/*"
],
"path": "header.txt",
"blocking": true,
"logInfo": false,
"logError": true
},
"nyc": {
"exclude": [
"coverage/**",
"features/**",
"out/**",
"test/**"
],
"reporter": [
"text-summary",
"html"
],
"all": true,
"check-coverage": true,
"statements": 100,
"branches": 100,
"functions": 100,
"lines": 100
}
}
Does anyone know how to solve this problem ## ?
on your first problem - the sample.js test script - you have copied the Unit Test script contents into lib/sample.js and that is why you have your problems - ie 'const' error - that file is the Transaction Processor functions script. You should (as per the Developer Tutorial) paste the Unit test script into the file located at test/sample.js. I think perhaps the fact that the filenames (in both 'lib' and 'test' subdirectories) are the same, has caused some confusion - think I will get that changed to improve user experience. The other Angular error (mentioned earlier) still stands.
On your second posting (Angular module errors). A local Composer playground install has dependencies on Angular (note the Developer guide uses the online playground). Check out package.json for that list of angular dependencies. Doesn't look like your playground installed correctly, if its showing missing dependencies (#angular/core etc) Suggest to clear down docker ps -aq | xargs docker rm -f and docker images -aq | xargs docker rmi -f (warning: clears down all docker containers in your dev environment) then install it (as a non-privileged user) using the one-liner - ie npm uninstall -g composer-playground - installs playground in a docker container using the command curl -sSL https://hyperledger.github.io/composer/install-hlfv1.sh | bash .
This is what npm list command returns
Calvinde-MacBook-Air:my-network calvinlin007$ npm list -g --depth=0
/usr/local/lib
├── composer-cli#0.12.2
├── composer-playground#0.12.2
├── composer-rest-server#0.12.2
├── generator-hyperledger-composer#0.12.2
├── npm#3.10.10
└── yo#2.0.0
npm ERR! peer dep missing: #angular/core#^4.0.3, required by #ng-bootstrap/ng-bootstrap#1.0.0-beta.2
npm ERR! peer dep missing: #angular/core#>=4.0.0, required by ngx-clipboard#8.0.4
npm ERR! peer dep missing: #angular/common#^4.0.3, required by #ng-bootstrap/ng-bootstrap#1.0.0-beta.2
npm ERR! peer dep missing: #angular/common#>=4.0.0, required by ngx-clipboard#8.0.4
npm ERR! peer dep missing: #angular/forms#^4.0.3, required by #ng-bootstrap/ng-bootstrap#1.0.0-beta.2
npm ERR! peer dep missing: #angular/platform-browser#>=4.0.0, required by ngx-clipboard#8.0.4
npm ERR! peer dep missing: core-js#>=2.4.1, required by ngx-clipboard#8.0.4
npm ERR! peer dep missing: #angular/core#>=2.4.1, required by ngx-window-token#0.0.2
npm ERR! peer dep missing: #angular/common#>=2.4.1, required by ngx-window-token#0.0.2
npm ERR! peer dep missing: #angular/platform-browser#>=2.4.1, required by ngx-window-token#0.0.2
npm ERR! peer dep missing: core-js#>=2.4.1, required by ngx-window-token#0.0.2

Zurb Foundation For Emails gulp --production Fails

I've been using Zurb Foundation for Emails successfully for quite some time. Suddenly the build process is failing.
I updated to Node 7.7.2 and NPM 4.1.2, deleted the node_modules directory and ran npm install to reinstall the dependencies, but it didn't solve the issue.
$ npm run build
foundation-emails-template#1.0.0 build /Users/[REDACTED]
gulp --production
[12:46:56] Requiring external module babel-register
[12:46:57] Using gulpfile ~/[REDACTED]/gulpfile.babel.js
[12:46:57] Starting 'default'...
[12:46:57] Starting 'build'...
[12:46:57] Starting 'clean'...
[12:46:57] Finished 'clean' after 11 ms
[12:46:57] Starting 'pages'...
[12:46:59] Finished 'pages' after 1.32 s
[12:46:59] Starting 'sass'...
[12:47:05] 'sass' errored after 6.91 s
[12:47:05] Error in plugin 'gulp-uncss'
Message:
Unexpected EOF
Details:
domainEmitter: [object Object]
domain: [object Object]
domainThrown: false
[12:47:05] 'build' errored after 8.25 s
[12:47:05] 'default' errored after 8.25 s
npm ERR! Darwin 15.6.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "build"
npm ERR! node v7.7.2
npm ERR! npm v4.1.2
npm ERR! code ELIFECYCLE
npm ERR! foundation-emails-template#1.0.0 build: `gulp --production`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the foundation-emails-template#1.0.0 build script 'gulp --production'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the foundation-emails-template package,
npm ERR! not with npm itself.
Or if I try to run gulp --production by itself:
$ gulp --production
[12:29:38] Requiring external module babel-core/register
[12:29:39] Using gulpfile ~/[REDACTED]/gulpfile.babel.js
/usr/local/lib/node_modules/gulp/bin/gulp.js:129
gulpInst.start.apply(gulpInst, toRun);
^
TypeError: Cannot read property 'apply' of undefined
at /usr/local/lib/node_modules/gulp/bin/gulp.js:129:19
at _combinedTickCallback (internal/process/next_tick.js:73:7)
at process._tickDomainCallback (internal/process/next_tick.js:128:9)
npm start works as expected; I just can't inline the styles.
Any ideas? TIA.
It's because the node environment had changed.
Run this in your console:
npm rebuild node-sass
npm rebuild gulp-uncss
It should fix the issue.
I got the same error and was caused by a code-specific issue so make sure all your code is valid. In my case I was missing a closing " on a class.