Terraform无法将API网关更改部署到多个阶段中的一个阶段?

时间:2018-02-14 13:41:19

标签: aws-lambda aws-api-gateway terraform

使用此代码:

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 个答案:

答案 0 :(得分:0)

经过一番研究,我们最终采取了不同的策略。根据{{​​3}}和this等文章,我们将每个阶段的terraform拆分为文件夹。因此,如果要部署dev,则在dev文件夹中运行terraform。为避免代码重复,请使用this。它似乎运行良好,并允许我们部署不同版本的API。