如何将 AWS S3 上的更改(最终在 AWS EFS 上)同步回 Github 存储库?
How do I sync changes on AWS S3 (ultimately on AWS EFS) back into a Github repository?
我使用 Github 操作将我的 git 存储库的子文件夹之一(包括 < 200 个非常小的 MD 和 YAML 文件)同步到 AWS S3。然后,我使用 AWS Lambda 进一步将此 S3 存储桶与 AWS EFS 同步。
如何将 S3(或更好 - EFS)存储桶与 added/changed/deleted 文件同步回我在 Github 上的 git 存储库?
- 我没能找到任何 Github 可以提供此功能的操作
- 当我使用 EC2 挂载我的 EFS 时,我想我可以 git 克隆 EFS 并创建一个符号 link。然后我可以跳过 S3 旁路步骤并调用 git pull/push.
- 我想我可以构建一个 Lambda 来启动一个 EC2 实例,该实例会自动从 S3 中提取这些文件并将提交推送到我的 git 存储库。
- 我可以尝试弄清楚如何使用 Lambda 和 /tmp 来制定提交
我还没想好实现这一目标的最佳方法。
你能把我推向正确的方向吗?
P.S。我对 git 不是很精通,整个实现有点超出我的能力范围。 :-)
如果您可以在安装 AWS EFS 后将 Git 存储库克隆到同一个 EC2 实例上,您可以执行以下操作:
cd /path/to/cloned/git/repository
git --work-tree=/path/to/mounted/EFS add .
这将检测来自 EFS 的 added/modified/deleted 更改并将这些更改导入您克隆的 Git 存储库。
从那里,您可以提交和推送。
@vonc,谢谢你的提示,它让我朝着正确的方向前进。
我最终这样做了,解决了我的最终目标,即通过GIT管理EFS。我完全可以跳过 S3 / Lambda。
第 1 步:sudo mount -t efs -o tls MYFILESYSTEMID:/ efs
第 2 步:cd efs
第 3 步:git clone --depth 1 --no-checkout --filter=blob:none git@github.com:user/repo
第 4 步:cd repo
第 5 步:git sparse-checkout set subdirectory
第 6 步:git read-tree -mu HEAD
从现在开始,我可以push/pull更改这个特定的子目录。
我使用 Github 操作将我的 git 存储库的子文件夹之一(包括 < 200 个非常小的 MD 和 YAML 文件)同步到 AWS S3。然后,我使用 AWS Lambda 进一步将此 S3 存储桶与 AWS EFS 同步。
如何将 S3(或更好 - EFS)存储桶与 added/changed/deleted 文件同步回我在 Github 上的 git 存储库?
- 我没能找到任何 Github 可以提供此功能的操作
- 当我使用 EC2 挂载我的 EFS 时,我想我可以 git 克隆 EFS 并创建一个符号 link。然后我可以跳过 S3 旁路步骤并调用 git pull/push.
- 我想我可以构建一个 Lambda 来启动一个 EC2 实例,该实例会自动从 S3 中提取这些文件并将提交推送到我的 git 存储库。
- 我可以尝试弄清楚如何使用 Lambda 和 /tmp 来制定提交
我还没想好实现这一目标的最佳方法。
你能把我推向正确的方向吗?
P.S。我对 git 不是很精通,整个实现有点超出我的能力范围。 :-)
如果您可以在安装 AWS EFS 后将 Git 存储库克隆到同一个 EC2 实例上,您可以执行以下操作:
cd /path/to/cloned/git/repository
git --work-tree=/path/to/mounted/EFS add .
这将检测来自 EFS 的 added/modified/deleted 更改并将这些更改导入您克隆的 Git 存储库。
从那里,您可以提交和推送。
@vonc,谢谢你的提示,它让我朝着正确的方向前进。
我最终这样做了,解决了我的最终目标,即通过GIT管理EFS。我完全可以跳过 S3 / Lambda。
第 1 步:sudo mount -t efs -o tls MYFILESYSTEMID:/ efs
第 2 步:cd efs
第 3 步:git clone --depth 1 --no-checkout --filter=blob:none git@github.com:user/repo
第 4 步:cd repo
第 5 步:git sparse-checkout set subdirectory
第 6 步:git read-tree -mu HEAD
从现在开始,我可以push/pull更改这个特定的子目录。