使用此代码:
resource "aws_api_gateway_deployment" "example_deployment" {
depends_on = [
"aws_api_gateway_method.example_api_method",
"aws_api_gateway_integration.example_api_method_integration"
]
rest_api_id = "${aws_api_gateway_rest_api.example_api.id}"
stage_name = "${var.stage_name}"
}
我可以将API网关更改部署到我指定的任何阶段 . 但是,这将覆盖任何现有阶段 . 也就是说,如果我首先部署到一个名为'dev'的阶段,然后部署到'prod',它将擦除'dev' .
如何实现多阶段部署?这样我就可以先部署到dev或staging,如果一切看起来都不错,那么就部署到prod阶段 .
1 回答
经过一些研究,我们最终采取了不同的策略 . 根据this和this这样的文章,我们将每个阶段的terraform拆分为文件夹 . 因此,如果要部署dev,则在dev文件夹中运行terraform . 要避免代码重复,请使用modules . 它似乎运行良好,并允许我们部署不同版本的API .