如何通过Terraform导出AWS API Gateway的OpenAPI规范?
用Terraform导出AWS API Gateway v2的OpenAPI文档
关于apigatewayv2_export数据源的说明
首先明确:apigatewayv2_export数据源本身不会自动生成本地文件,它的作用是从AWS获取OpenAPI文档的内容(以字符串形式存放在body属性里),你之前可能误解了body的含义——它不是API的ID,是返回的OpenAPI文档文本内容。
具体实现步骤
1. 配置apigatewayv2_export数据源
定义数据源,指定目标API ID、导出格式与对应阶段:
data "apigatewayv2_export" "my_api_openapi" { api_id = "your-api-gateway-id" # 替换为你的API网关ID export_type = "openapi3" # 导出格式,可选openapi3/openapi3_yaml stage_name = "prod" # 替换为要导出的API阶段名称 }
2. 将导出内容写入本地文件
利用Terraform的local_file资源,把数据源返回的body内容写入本地指定路径:
resource "local_file" "openapi_spec" { content = data.apigatewayv2_export.my_api_openapi.body filename = "./openapi-spec.json" # 自定义输出路径和文件名,yaml格式可改为.yaml }
3. 执行Terraform命令
运行以下命令完成导出:
terraform init terraform apply
执行完成后,你指定的路径下就会生成对应的OpenAPI文档文件。
常见注意事项
- 确保Terraform AWS Provider版本≥3.0.0,否则可能不支持
apigatewayv2_export数据源 - 要导出的API阶段必须已完成部署,否则会返回错误
- 若需要YAML格式,将
export_type设为openapi3_yaml即可
内容的提问来源于stack exchange,提问作者Marc
相关产品推荐
相关产品推荐

