terraform - 从文件定义 aws api 网关请求参数?
terraform - define aws api gateway request parameters from file?
我想使用文件
参数化 aws-api_gateway_method 中的 request_parameters 值
所以改变:
resource "aws_api_gateway_method" "get" {
rest_api_id = var.api-id
resource_id = aws_api_gateway_resource.resource.id
http_method = "GET"
request_validator_id = aws_api_gateway_request_validator.validator.id
request_parameters = {
"method.request.querystring.Name" = true
}
}
进入
resource "aws_api_gateway_method" "get" {
rest_api_id = var.api-id
resource_id = aws_api_gateway_resource.resource.id
http_method = "GET"
request_validator_id = aws_api_gateway_request_validator.validator.id
request_parameters = file(var.request-parameters-file)
}
我尝试使用 .txt 文件,但出现错误,因为该值需要是一个映射 (bool)。很公平,但我如何参数化此字段以使我能够使用模块中的资源?
我使用了一个类型为 map(bool) 的变量并传递了它,它在简单情况下没问题,但在更复杂的情况下会变得混乱。有没有更好的方法?
您可以将 request_parameters
表示为 json,然后使用 jsondecode。
例如:
有一个文件 request_parameters.json
,其内容为:
{"method.request.querystring.Name": true }
然后在您的 aws_api_gateway_method
资源中:
request_parameters = jsondecode(file("request_parameters.json"))
我想使用文件
参数化 aws-api_gateway_method 中的 request_parameters 值所以改变:
resource "aws_api_gateway_method" "get" {
rest_api_id = var.api-id
resource_id = aws_api_gateway_resource.resource.id
http_method = "GET"
request_validator_id = aws_api_gateway_request_validator.validator.id
request_parameters = {
"method.request.querystring.Name" = true
}
}
进入
resource "aws_api_gateway_method" "get" {
rest_api_id = var.api-id
resource_id = aws_api_gateway_resource.resource.id
http_method = "GET"
request_validator_id = aws_api_gateway_request_validator.validator.id
request_parameters = file(var.request-parameters-file)
}
我尝试使用 .txt 文件,但出现错误,因为该值需要是一个映射 (bool)。很公平,但我如何参数化此字段以使我能够使用模块中的资源?
我使用了一个类型为 map(bool) 的变量并传递了它,它在简单情况下没问题,但在更复杂的情况下会变得混乱。有没有更好的方法?
您可以将 request_parameters
表示为 json,然后使用 jsondecode。
例如:
有一个文件 request_parameters.json
,其内容为:
{"method.request.querystring.Name": true }
然后在您的 aws_api_gateway_method
资源中:
request_parameters = jsondecode(file("request_parameters.json"))