为了能够通过Terraform触发来自sqs事件的lambda,我们在terraform部署文件中定义了cloudformation堆栈
`resource "aws_cloudformation_stack" "sqstolambda" {
name = "some_name"
on_failure = "DELETE"
parameters {
SQSArn = "${var.queue_arn}"
functionName = "${module.sqsevent_lambda.function_name}"
}
template_body = <<STACK
{
"Parameters" : {
"SQSArn" : {
"Type" : "String",
"Description" : "Arn of SQS"
},
"functionName" : {
"Type" : "String",
"Description" : "ARN or name of lambda"
}
},
"Resources" : {
"sqsLamdaEventMapping": {
"Type" : "AWS::Lambda::EventSourceMapping",
"Properties" : {
"BatchSize": 10,
"EventSourceArn" : { "Ref" : "SQSArn" },
"FunctionName" : { "Ref" : "functionName" }
}
}
}
}
STACK
}
堆栈工作正常,但是,在开发过程中有时创建失败,并且堆栈最终以ROLLBACK_COMPLETE状态结束,地形不会改变。
这就是为什么我们在地形资源中添加了on_failure =“ DELETE”的原因。 documentation还提供了“ disasble_rollback”选项。我想知道两者之间的区别是什么?在这件事上我找不到合适的文档。