Gan*_*aju 6 amazon-web-services amazon-cloudwatch terraform aws-api-gateway
我想在启用了 cloudwatch 指标的阶段部署它。为此,我需要使用aws_api_gateway_method_settingswhich need stage name。如果不使用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"
}
}
Run Code Online (Sandbox Code Playgroud)
例外:
aws_api_gateway_stage.test: Error creating API Gateway Stage: ConflictException: Stage already exists
Run Code Online (Sandbox Code Playgroud)
我发现我们不需要明确创建一个阶段。aws_api_gateway_deployment创建一个舞台,但需要设置depends_on。我之前尝试过这个,没有depends_on抛出一个错误说stage not exists。
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_method_settings" "settings" {
depends_on = ["aws_api_gateway_deployment.test-deploy"]
rest_api_id = "${aws_api_gateway_rest_api.test.id}"
stage_name = "${var.stage_name}"
method_path = "*/*"
settings {
metrics_enabled = true
logging_level = "INFO"
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4230 次 |
| 最近记录: |