我想在启用了cloudwatch指标的阶段部署它 . 为此,我需要使用需要阶段名称的 aws_api_gateway_method_settings
. 如果不使用 aws_api_gateway_stage
创建一个阶段,则会抛出错误,说明阶段不存在 . 当我试图创建一个舞台时,它的说法已经存在 .
我试过的一个解决方案是使用 aws_api_gateway_deployment
创建两个阶段,使用具有两个不同名称的 aws_api_gateway_stage
创建另一个阶段 . 还有其他解决方案吗?
resource "aws_api_gateway_deployment" "test-deploy" {
depends_on = [ /*something goes here*/]
rest_api_id = "${aws_api_gateway_rest_api.test.id}"
stage_name = "${var.stage_name}"
variables = {
"function" = "${var.lambda_function_name}"
}
}
resource "aws_api_gateway_stage" "test" {
stage_name = "${var.stage_name}"
rest_api_id = "${aws_api_gateway_rest_api.test.id}"
deployment_id = "${aws_api_gateway_deployment.test-deploy.id}"
}
resource "aws_api_gateway_method_settings" "settings" {
rest_api_id = "${aws_api_gateway_rest_api.test.id}"
stage_name = "${aws_api_gateway_stage.test.stage_name}"
method_path = "*/*"
settings {
metrics_enabled = true
logging_level = "INFO"
}
}
例外:
aws_api_gateway_stage.test: Error creating API Gateway Stage: ConflictException: Stage already exists
1 回答
我发现我们不需要明确地创建一个阶段 .
aws_api_gateway_deployment
创建一个阶段,但需要设置depends_on
. 我在没有depends_on
的情况下尝试了这个,它抛出错误说stage not exists
.