【发布时间】:2022-01-18 05:02:25
【问题描述】:
【问题讨论】:
-
嗯,错误消息说您上传了一个空的 zip 文件。
标签: amazon-web-services aws-lambda aws-cdk aws-cloud9
【问题讨论】:
标签: amazon-web-services aws-lambda aws-cdk aws-cloud9
这个问题可能是由https://github.com/aws/aws-cdk/issues/12536 引起的。你应该试试:
cdk.out
cdk-hnb659fds-assets-<ACCOUNT NUMBER>-<REGION>)CDK 不会重新上传资产,除非它发生了变化。这就是为什么需要删除它并可能在升级 node.js 后强制进行更改。
如果一切都失败了,试试the script我写的下载资产,通过重新压缩修复它,然后再次上传。它期望在您的项目的根目录中运行,因为它会查找 cdk.out。
#!/bin/bash
set -ex
ASSEMBLY_DIRECTORY=`jq -r '.artifacts[] | select(.type == "cdk:cloud-assembly") | .properties.directoryName' cdk.out/manifest.json`
ASSET_MANIFESTS=`jq -r '.artifacts[] | select(.type == "cdk:asset-manifest") | .properties.file' cdk.out/$ASSEMBLY_DIRECTORY/manifest.json`
cd cdk.out/$ASSEMBLY_DIRECTORY
ASSETS=`jq -r '.files[].destinations[] | "s3://" + .bucketName + "/" + .objectKey' $ASSET_MANIFESTS | grep zip`
TMP=`mktemp -d`
cd $TMP
for ASSET in $ASSETS
do
if aws s3 ls $ASSET; then
aws s3 cp $ASSET pkg.zip
mkdir s
cd s
if ! unzip ../pkg.zip; then echo bad zip; fi
rm ../pkg.zip
zip -r ../pkg.zip * .gitempty
aws s3 cp ../pkg.zip $ASSET
cd ..
rm -rf s
fi
done
rm -rf $TMP
您可以通过下载资产 zip 文件来确认您遇到了与我相同的问题。尝试使用unzip 提取它。如果它抱怨校验和或 CRC,你也有同样的问题。
【讨论】: