terraform - 从文件中定义 aws api 网关请求参数?
Posted
技术标签:
【中文标题】terraform - 从文件中定义 aws api 网关请求参数?【英文标题】:terraform - define aws api gateway request parameters from file? 【发布时间】:2021-01-22 08:37:52 【问题描述】:我想通过使用文件来参数化 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) 类型的变量,并传递了一个对于简单的情况是可以的,但在更复杂的情况下会变得混乱。有没有更好的办法?
【问题讨论】:
【参考方案1】:您可以将 request_parameters
表示为 json,然后使用 jsondecode。
例如:
有一个文件request_parameters.json
,内容为:
"method.request.querystring.Name": true
然后在您的aws_api_gateway_method
资源中:
request_parameters = jsondecode(file("request_parameters.json"))
【讨论】:
以上是关于terraform - 从文件中定义 aws api 网关请求参数?的主要内容,如果未能解决你的问题,请参考以下文章
用于 ECS 任务/容器的 Terraform AWS CloudWatch 日志组
使用 Terraform 将文件上传到 AWS Secrets Manager