问题描述
我想通过使用文件在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文件尝试了此操作,但由于值需要为map(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"))