每当我的 S3 存储桶中发生文件更改时,我都会使用 AWS CodePipeline 部署到 EC2 实例。目前,仅当我对 S3 存储桶内特定 zip 文件夹内的文件进行更改时,代码管道才会自动启动部署 (
SampleApp_Linux.zip
)。
使用 AWS CDK 时这很不方便,因为我必须解压缩对象,对文件进行更改,然后在推送更改之前再次压缩它。我也无法在代码存储库的压缩文件夹中看到我的文件。
我想知道是否有一种方法可以让 CodePipeline 在 S3 存储桶中的任何文件发生更改时自动启动部署,而不仅仅是 zip 文件夹内的文件(即对
myDummyFiles
文件夹的更改)?
随附的是我的 CodePipeline SourceAction 和 S3 存储桶的屏幕截图。
这里有一个选项:配置您的管道源以在代码存储库发生更改时运行。接下来,将
BucketDeployment
构造添加到管道中。在每次管道运行时,BucketDeployment
都会捆绑您的 SampleApp_Linux
代码并将其保存到 S3 存储桶中。
BucketDeployment 自动构造(使用自定义资源)将从
source
路径创建代码工件并将其复制到 destinationBucket
。 extract: false
设置告诉 CDK 不要在 S3 目的地解压缩工件。
new BucketDeployment(this, "LinuxAppDeployment", {
sources: [Source.asset(path.join(__dirname, "./path/to/SampleApp_Linux"))],
destinationBucket: bucket,
extract: false,
});