gpt4 book ai didi

amazon-web-services - Terraform:如何在根目录下创建 api 网关 POST 方法?

转载 作者:行者123 更新时间:2023-12-03 23:11:51 26 4
gpt4 key购买 nike

我正在尝试使用 terraform 在根 api 网关 URL(例如 https://somehash.execute-api.us-east-1.amazonaws.com/dev 将包含舞台)创建 POST 方法。以下是我们关注的 terraform 计划的一部分:

resource "aws_api_gateway_rest_api" "api" {
name = "submit-dev-gateway-api"
}

resource "aws_api_gateway_resource" "resource" {
rest_api_id = "${aws_api_gateway_rest_api.api.id}"
parent_id = "${aws_api_gateway_rest_api.api.root_resource_id}"
path_part = "submit"
}

resource "aws_api_gateway_method" "post_form" {
rest_api_id = "${aws_api_gateway_rest_api.api.id}"
resource_id = "${aws_api_gateway_resource.resource.id}"
http_method = "POST"
authorization = "NONE"
}
...

我尝试将 path_part 更改为“/”,但没有用。没有 aws_api_gateway_resource,我无法创建 aws_api_gateway_method 资源。我可以在没有 terraform 的情况下在 root 手动创建一个 POST,如下所示:
manual

当我使用上面的 terraform 计划时,我得到了这个:
terraform

如何使用 terraform 在 root 处创建 POST?

最佳答案

“根资源”是在创建 API Gateway REST API 的过程中自动创建的。在 Terraform 中,该根资源的 id 公开为 REST API 资源实例的 the root_resource_id attribute

因为该资源是作为 API 的一部分隐式创建的,所以我们不需要单独的资源。相反,我们可以直接将方法(和其他必要的下游对象)附加到现有的根资源上:

resource "aws_api_gateway_rest_api" "api" {
name = "submit-dev-gateway-api"
}

resource "aws_api_gateway_method" "post_form" {
rest_api_id = aws_api_gateway_rest_api.api.id
resource_id = aws_api_gateway_rest_api.api.root_resource_id
http_method = "POST"
authorization = "NONE"
}

关于amazon-web-services - Terraform:如何在根目录下创建 api 网关 POST 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61072514/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com