0

我有一个来自 Github 的 CodePipeline 项目,它根据文件更改更新图层。我们不想在每次提交时自动更新层,因为它们不一定会改变。由于没有与要更新的 lambda 图层的内置比较,因此确定是否应更新图层的负担落在了用户身上。我尝试了几种不同的选择:

  1. 散列层文件的本地表示并将其与 AWS 上最新的 lambda 层进行比较。如果哈希值不同,您就知道您有文件更改,并且应该更新。
  2. 查看您的 git 文件更改(即使用 PythonGit)并查看您的任何层是否已更改文件。如果是这样,您应该更新您的图层。

2 是 CodePipeline 中的一个问题,特别是因为从 github 获取 repo 时,Download Zip使用的是功能,而不是 git clone,因此删除了 .git 文件夹。您可以通过重命名它来取回它,但它会变得混乱。

我很想听听其他人是如何处理这个问题的。

4

1 回答 1

1

您可以将一些版本/哈希/等写入 Lambda 层的描述。您可以将此描述与您的 git 中的版本进行比较。

听起来有点毛骨悚然,所以我更喜欢每次提交 master 时都构建 layer(例如),并自动删除以前的版本(保存最后 N 个版本以备潜在回滚)。

就我的目的而言,这不是那么开销,但这取决于您的问题。

于 2019-11-13T17:05:24.850 回答