aws在空堆栈上返回jsii错误。复制的步骤是在hello世界级别,这使我认为我有一个版本错配的地方。我已经重新安装了aws cli,cdk和nodejs。对找什么有什么建议吗?
复制步骤:
mkdir myfolder
cdk init --language python
.env\Scripts\activate.ps1
python -m pip install -r requirements.txt
cdk synth返回错误和空堆栈:
(.env) p$[myfolder]> cdk synth d:\myfolder\.env\lib\site-packages\jsii\_embedded\jsii\jsii-runtime.js:13295
throw e;
^
Error: EOF: end of file, read
at Object.readSync (fs.js:592:3)
at SyncStdio.readLine (d:\myfolder\.env\lib\site-packages\jsii\_embedded\jsii\jsii-runtime.js:13278:33)
at InputOutput.read (d:\myfolder\.env\lib\site-packages\jsii\_embedded\jsii\jsii-runtime.js:13203:34)
at KernelHost.run (d:\myfolder\.env\lib\site-packages\jsii\_embedded\jsii\jsii-runtime.js:13021:32)
at Immediate.<anonymous> (d:\myfolder\.env\lib\site-packages\jsii\_embedded\jsii\jsii-runtime.js:13029:37)
at processImmediate (internal/timers.js:461:21) {
errno: -4095,
syscall: 'read',
code: 'EOF'
}
Resources:
CDKMetadata:
Type: AWS::CDK::Metadata
Properties:
Modules: aws-cdk=1.69.0,@aws-cdk/cloud-assembly-schema=1.69.0,@aws-cdk/core=1.69.0,@aws-cdk/cx-api=1.69.0,@aws-cdk/region-info=1.69.0,jsii-runtime=Python/3.7.4
Metadata:
aws:cdk:path: myfolder/CDKMetadata/Default
Condition: CDKMetadataAvailable环境
- **CLI Version :aws-cli/2.0.61 Python/3.7.7 Windows/10 exe/AMD64
- **cdk Version:1.69.0 (build 2b474b9)
- **Node.js Version:v14.15.0
- **OS :Windows 10
- **Language (Version):python 3.7.4 当我第一次在cdk上启动时看到了这个错误。但是,“cdk synth”显示了一个堆栈,所以我按下了。我甚至能够'cdk部署‘简单的堆栈。最终,由于代码变得稍微复杂一些,jsii错误会阻止堆栈的创建。我创建的代码会在我的机器上抛出错误,但不会在其他机器上出错。使用来自其他开发人员的cdk代码不会在我的机器上同步或部署堆栈。
到目前为止,我已经重新安装了aws,node.js和cdk.有什么想法是jsii错误产生的原因,或者是如何修复它们?
发布于 2020-11-09 20:38:37
对于Windows上的AWS,AWS组记录的jsii中至少有一个错误。在jsiiruntime内部(确切地说,是第13278行),aws组有一个带有指向nodejs错误报告的链接的注释。我向aws报告了我的问题,这似乎是有关联的。他们复制了这个bug,并在nodejs上创建了一个bug报告。此bug报告具有指向其他错误报告的链接。https://github.com/aws/aws-cdk/issues/11314
但我还是需要一个解决办法。经过多次尝试和错误之后,以下两个解决方案应该适用于Windows上的AWS。
解决方案1:在站点-包中用1.12或1.13发行版替换jsii1.14.x发行版。将1.14替换为1.12或1.13后,错误停止。得到一个发行版是个诡计。你必须从没有升级或运行pip的人那里得到一个--这就是我所做的。
解决方案2:将开发环境从Windows移动到linux或mac上
发布于 2020-11-21 13:53:00
博士扩大了工作范围。( asked错误报告中提出了一个问题)。
解决方案1:替换jsii 1.14.x发行版
区文件夹: jsii包含在两个文件夹中
jsii和jsii-1.14.1 info info
用旧安装中的文件夹替换这两个文件夹- 1.12或1.13。
发行版文件夹可以在以下一个或两个位置找到:
区域位置虚拟环境: jsii发行版将在站点-packages目录中找到。示例:
. .env\lib\python3.8\site-packages
其中虚拟环境名称= .env,python = 3.8
区域位置非虚拟:,如果您没有创建虚拟环境,应该是这个位置。请注意,同样,python版本是路径的一部分。
C:\Program \Python37 37\Lib\site-packages
注意:由于某些原因,它们没有安装在这里。但是,这可能会改变,所以请记住这一点。C:\Users\yourusername\AppData\Roaming\Python\Python37\site-packages
解决方案2:迁移到linux
在windows中,安装WSL 2。
安装Ubuntu或您最喜欢的linux版本。
安装python使用您最喜欢的Windows IDE从Windows!我使用代码。如果我没记错的话,需要安装一个扩展。
警告:在Windows系统上运行python、cdk等文件时,我遇到了问题(例如: /mnt/d/project)。只需将回购复制到“纯”linux文件系统( ex:~/project)即可。我在linux端安装了git,并将我的文件作为一台独立的机器来维护。
https://stackoverflow.com/questions/64694569
复制相似问题