我试图在AWS云中使用CDK部署后端无服务器资源,但是在通过GitLab构建部署时会出现错误。尝试在当地的视觉工作室,它的工作很好。
错误如下:
$ 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发布于 2022-04-02 19:14:24
我也遇到过类似的问题,问题是在2021年2月25日之前发布的cdk版本中有一个bug。
为此,请确保您使用的是最新版本的cdk,或者您的文件PATHNAME中没有任何空白(任何具有空格的目录名或具有空格的用户名都可能导致此问题)。当我从路径名中移除空白后,一切就开始正常工作了。
发布于 2022-08-04 05:53:08
我和你犯了同样的错误。在我的例子中,问题是我将esbuild作为一个依赖项安装在CDK文件夹中,而不是在我的Lambda函数的文件夹中。
通过在我的Lambda函数文件夹中将esbuild 安装为一个依赖项,I能够解决这个问题。如果您不想这样做,您也可以通过将命令npm i -g esbuild添加到管道中来将其全局安装到管道中(考虑将其固定在特定版本的ie中)。npm i -g esbuild@x.y.z)。
不知道为什么在没有安装在函数文件夹中的esbuild的情况下,它在本地工作,但是在Gitlab管道…中执行相同的操作时却崩溃了。我并没有在我的本地机器上安装在全球范围内。
https://stackoverflow.com/questions/68723644
复制相似问题