bash - 如何使用 Terraform 将文件夹/文件从 Git 存储库上传到 S3 存储桶?
问题描述
主要关注的是如何创建到这些文件夹的映射,因为文件夹和 terraform 模块位于不同的存储库中。
resource "aws_s3_bucket_object "upload" {
bucket = "bucketname"
key = "how_to_procede"
source = "how_to_procede"
}
解决方案
不幸的是,GitHub Terraform 提供程序没有提供任何数据源来获取存储库中的文件列表或检索单个文件。
因此,如果存储库是私有的,唯一可行的方法是将存储库克隆到运行 Terraform 的机器上,然后使用fileset函数获取存储库中的文件列表,然后使用该列表for_each
在aws_s3_bucket_object
上传每个文件的资源。您需要在外部 shell 命令中进行克隆;您可以使用诸如此的模块来完成此操作。
如果存储库是公开的,并且您提前知道要将哪些文件发送到 S3,那么您可以使用HTTP 提供程序从其 GitHub URL 下载文件,解析响应正文以提取文件内容,然后指定资源content
领域中的那些内容aws_s3_bucket_object
。
推荐阅读
- android - 为图像设置透明背景
- ms-word - 如何从其他word文档填充word文档中的字段/表单?
- ios - 将图像保存到文档目录后更新布尔变量在 Swift 中无法按预期工作
- javascript - 无法从类中调用静态方法,显示类型错误:方法不是函数 javascripts
- android - 选择 Spinner 项目后更新 Android 中的 RecyclerView?
- swift - 自定义标记在放大地图时消失,并在缩小地图时出现聚类
- python - Multiple metrics for neural network model with cross validation
- sql - 如何按排序值获取数据顺序
- php - 对于 laravel 策略,Authorize 或 can 方法总是返回 false
- clojure - 如何使用发布的数据生成 html 页面并创建页面访问的 url?