使用AWS CDK部署CloudFormation模板遇EACCES权限拒绝错误求助
解决AWS CDK部署时的EACCES权限错误
问题描述
部署AWS CDK CloudFormation模板时触发权限拒绝错误,无法扫描指定路径下的prebuild-install文件。具体报错信息:
node:fs:1527 handleErrorFromBinding(ctx); ^ Error: EACCES: permission denied, scandir 'C:/Users/Phat/Desktop/workspace/resize-image-service/cdk.out/asset.a4d282274929658deaa9944f80a716703650e903f801727100f56ab94049e35a/nodejs/node_modules/.bin/prebuild-install' at Object.readdirSync (node:fs:1527:3) at GlobSync._readdir (\node_modules\aws-cdk\lib\index.js:431:848900) at GlobSync._readdirInGlobStar (\node_modules\aws-cdk\lib\index.js:431:848291) at GlobSync._readdir (\node_modules\aws-cdk\lib\index.js:431:848723) at GlobSync._processGlobStar (\node_modules\aws-cdk\lib\index.js:431:849803) at GlobSync._process (\node_modules\aws-cdk\lib\index.js:431:846756) at GlobSync._processGlobStar (\npm\node_modules\aws-cdk\lib\index.js:431:850312) at GlobSync._process (\node_modules\aws-cdk\lib\index.js:431:846756) at GlobSync._processGlobStar (\node_modules\aws-cdk\lib\index.js:431:850312) at GlobSync._process (\aws-cdk\lib\index.js:431:846756) { errno: -4092, syscall: 'scandir', code: 'EACCES', path: 'Desktop/workspace/resize-image-service/cdk.out/asset.a4d282274929658deaa9944f80a716703650e903f801727100f56ab94049e35a/nodejs/node_modules/.bin/prebuild-install' }
环境信息
- CDK CLI版本:2.102.0
- Node.js版本:v18.18.2
- 操作系统:Windows 10 Pro x64
- 开发语言:TypeScript
- TypeScript版本:4.9.5
解决方案
1. 以管理员身份运行终端
Windows下权限问题常因当前用户权限不足导致,右键终端(PowerShell/CMD)选择以管理员身份运行,重新执行部署命令:
cdk deploy
2. 修改cdk.out目录权限
- 定位到
C:/Users/Phat/Desktop/workspace/resize-image-service/cdk.out目录,右键选择属性 - 切换到安全标签页,点击编辑按钮,添加当前用户的完全控制权限
- 勾选完全控制的允许选项,依次点击应用和确定,再重新执行部署
3. 清理并重建cdk.out目录
cdk.out目录的缓存文件可能存在权限异常,先删除整个目录,再重新生成并部署:
# 删除cdk.out目录 rmdir /s /q cdk.out # 重新生成模板 cdk synth # 执行部署 cdk deploy
4. 重新安装全局AWS CDK
若全局CDK模块存在权限问题,以管理员身份重新安装指定版本:
npm uninstall -g aws-cdk npm install -g aws-cdk@2.102.0
5. 临时关闭实时防护软件
Windows Defender或第三方杀毒软件可能拦截CDK的文件访问操作,临时关闭实时防护功能,完成部署后再重新开启。
内容的提问来源于stack exchange,提问作者Trần Đức
相关产品推荐
相关产品推荐

