我正在尝试使用 codepipline 部署一些代码,但出现以下错误。我的CDK代码非常简单并且没有使用lambda函数。但是,这可能是某些默认设置的结果。
Resource handler returned message: "Error occurred while GetObject.
S3 Error Code: NoSuchKey. S3 Error Message: The specified key does not exist.
(Service: Lambda, Status Code: 400, Request ID: 3160ff16-1e4a-4a38-b609-34820a1d9a8f)"
(RequestToken: a8b5eecf-8c1d-d90f-e18f-390a05734944, HandlerErrorCode: InvalidRequest)
aws-cdk Github 页面中也报告了该错误,但问题已关闭,但没有得出全面的结论:https://github.com/aws/aws-cdk/issues/22198
其他信息:我还尝试通过“cdk部署”进行部署,它将资产复制到S3存储桶,但它不能解决此问题。
任何人都可以分享解决此问题的任何提示吗?
我的
aws-cdk-lib
版本是2.40.0
。
正如gshpychka所暗示的,过时的CodePipeline可能会导致这种情况。
CDK 将您的代码(“资产”)上传到 S3 存储桶 cdk-hnb659fds-assets-ACCOUNT-REGION。资产的名称是“HASH.zip”(称为S3Key)。
如果某些原因导致哈希发生更改,CDK 创建的管道的 FileAssetXX 操作将使用旧哈希,除非您重新部署管道的堆栈。
您正在部署的堆栈将从最新的源代码构建并获取新的哈希值,然后它将无法找到该哈希值。