如何通过API或稳定方案将Terraform模块源/版本映射至仓库及引用?
Terraform模块源到仓库地址的映射方案
直接使用Terraform官方维护的公共模块注册表API是最稳定的解决方案,能精准实现模块源/版本到仓库地址的映射,且返回内容可轻松适配go-getter的拉取需求。
API调用方式
针对你给出的模块terraform-aws-modules/s3-bucket/aws和版本3.8.2,构造如下API请求:
GET /v1/modules/terraform-aws-modules/s3-bucket/aws/3.8.2
返回的JSON响应中,source字段对应模块的Git仓库地址,version.tag字段是该版本对应的标签(比如v3.8.2)。
适配go-getter
将Git仓库地址和版本标签拼接为go-getter兼容的格式即可:
<Git仓库地址>?ref=<版本标签>
以示例模块为例,拼接后的地址为:
https://github.com/terraform-aws-modules/terraform-aws-s3-bucket.git?ref=v3.8.2
go-getter可直接识别该格式,拉取对应版本的代码文件。
扩展查询能力
若需要获取模块的所有可用版本,可调用以下接口:
GET /v1/modules/terraform-aws-modules/s3-bucket/aws/versions
返回结果会包含该模块的全部版本标签及对应元数据。
内容的提问来源于stack exchange,提问作者BeetleJuice
相关产品推荐
相关产品推荐

