首先,这是特定于 CDK 的 - 我知道围绕这个主题有很多问题/答案,但没有一个是特定于 CDK 的。
鉴于最佳实践规定 Fargate 部署不应在 ECR 存储库中查找“最新”标签,那么在使用 ECR 作为源时如何设置 CDK 管道呢?
在多存储库应用程序中,每个服务都位于其自己的存储库中(这些存储库将有自己的 CDK CodeBuild 部署来设置构建并推送到 ECR),基础设施 CDK 管道如何知道新镜像被推送到ECR 存储库并能够将该新映像部署到 ECS Fargate 服务吗?
由于任务定义必须指定图像标签(否则它将查找可能不存在的“最新”),这似乎是不可能的。
作为一个具体的例子,假设我有以下 2 个存储库:
cdk定义 CodeBuild 项目的目录,因此当检测到推送到 master 时,将构建服务并将映像推送到 ECR预期的工作流程如下:
我知道目前 CodeDeploy 不支持 ECS 部署存在限制,因为 CFN 不支持 ECS 部署,但 CodePipelineActions 似乎能够设置一个 EcrSourceAction ,它可能能够实现此目的,但我一直无法得到这个工作至今。
这是否可能,或者我是否一直在等待 CFN 支持 ECS CodeDeploy 功能?