Terraform 地形0.11的环通列表
我有一个terraform文件,它将资源和方法部署到AWS中现有的APIGW。目前我的逻辑只创建一个方法(POST)。我想在TF中更新我的逻辑,这样如果用户想要为他们的资源创建多个方法,他们就可以 我环顾了一下网络,不确定我的逻辑是否正确,因为当我运行terraform作业时,我得到了以下错误 aws_api_gateway_integration.integration:未为变量“aws_api_gateway_method.newexecution”找到资源“aws_api_gateway_method.newexecution.http_method” 下面是在我的terraform apply命令中发送的内容: 地形计划-var=gatewayID=XXXX-var=parentID=XXXX-var=lambda\u name=lambda-var=path\u name=resourcename-var=awsAccount=123456-var=resource\u method=[“发布”、“获取”] 下面是我的terraform文件和variable.tf文件Terraform 地形0.11的环通列表,terraform,terraform-provider-aws,Terraform,Terraform Provider Aws,我有一个terraform文件,它将资源和方法部署到AWS中现有的APIGW。目前我的逻辑只创建一个方法(POST)。我想在TF中更新我的逻辑,这样如果用户想要为他们的资源创建多个方法,他们就可以 我环顾了一下网络,不确定我的逻辑是否正确,因为当我运行terraform作业时,我得到了以下错误 aws_api_gateway_integration.integration:未为变量“aws_api_gateway_method.newexecution”找到资源“aws_api_gateway_
resource "aws_api_gateway_resource" "NewResource" {
rest_api_id = "${var.gatewayID}"
parent_id = "${var.parentID}"
path_part = "${var.path_name}"
}
resource "aws_api_gateway_method" "newexecution" {
count = "${length(var.resource_method)}"
rest_api_id = "${var.gatewayID}"
resource_id = "${aws_api_gateway_resource.NewResource.id}"
http_method = "${var.resource_method[count.index]}"
authorization = "NONE"
depends_on = ["aws_api_gateway_resource.NewResource"]
}
variable "region" {
default = "us-east-1"
}
variable "lambda_name" {
type = "string"
}
variable "path_name" {
type = "string"
}
variable "awsAccount" {
type = "string"
}
variable "gatewayID" {
type = "string"
}
variable "parentID" {
type = "string"
}
variable "resource_method" {
type = "list"
}
有没有关于如何修复此问题的建议,以便Terraform将创建一个新资源并添加一篇文章并访问该资源?这在Terraform 0.11(使用Terraform 0.11.7)中不可行吗?因为在Terraform版本11中有循环 元素就是函数 **使用**
http\u方法=“${element(var.resource\u方法,count.index)}”
您的代码将被删除
resource "aws_api_gateway_method" "newexecution" {
count = "${length(var.resource_method)}"
rest_api_id = "${var.gatewayID}"
resource_id = "${aws_api_gateway_resource.NewResource.id}"
http_method = "${element(var.resource_method, count.index)}
authorization = "NONE"
depends_on = ["aws_api_gateway_resource.NewResource"]
}
元素将从索引0开始,一旦索引超过列表的长度,它将再次从0开始
例如:
element(["a", "b", "c"], 3)
a
element(["a", "b", "c"], 7)
b
你能试试这个
http\u方法=“${element(var.resource\u方法,count.index)}”
?
element(["a", "b", "c"], 1)
b
element(["a", "b", "c"], 3)
a
element(["a", "b", "c"], 3)
a
element(["a", "b", "c"], 7)
b