[英]How to recreate manually deleted resources from the CDK/CloudFormation
[英]CDK/Cloudformation - Unable to deploy stack because of Lambda Version deleted manually
我有一个带有 Lambda 的 CDK 堆栈,它的版本和别名指向最新版本。 在我的 CDK 代码中,我遵循这种方法:
随着时间的推移,我发布了太多版本,因此由于 Lambda 存储限制,我删除了初始版本。 但初始版本的物理 ID 仍然在 CloudFormation 堆栈中引用。 Cloudformation 堆栈在第一次尝试时创建资源成功
如上图所示,我没有版本 7。 现在,我在版本 22我的 Lambda 的当前版本
当我 go 并部署我的代码时,出现以下错误,因为 Lambda 的版本 7 不再存在
任何想法,如何在不删除 Lambda 并重新创建它的情况下解决这个问题?
我的 CDK 代码:
final Function function = Function.Builder.create(construct, InfraConstants.WEBHOOK_RECEIVER_LAMBDA)
.runtime(Runtime.JAVA_11)
.handler("com.org.test")
.memorySize(1024)
.timeout(Duration.seconds(100))
.functionName(InfraConstants.WEBHOOK_RECEIVER_LAMBDA)
.code(Code.fromAsset("src/main/resources/sample-java.jar"))
.tracing(Tracing.PASS_THROUGH)
.layers(layers)
.environment(LambdaUtils.getEnvVariablesWebhookReceiver())
.build();
LambdaUtils.enableSnapStart(function);
return function;
public Version createVersion(Construct construct, String versionId, IFunction lambdaFunction) {
return Version.Builder.create(construct, versionId)
.lambda(lambdaFunction)
.build();
}
public Alias createAlias(Construct construct, String aliasId, Version version, String alias){
return Alias.Builder.create(construct, aliasId)
.aliasName(alias)
.version(version)
.build();
}
重新部署 lambda 的最简单方法是更改资源的 CloudFormation ID。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.