程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在创建 CodePipeline 之前在 CloudFormation 中创建 ECS 任务大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何在创建 CodePipeline 之前在 CloudFormation 中创建 ECS 任务?

开发过程中遇到如何在创建 CodePipeline 之前在 CloudFormation 中创建 ECS 任务的问题如何解决?下面主要结合日常开发的经验,给出你关于如何在创建 CodePipeline 之前在 CloudFormation 中创建 ECS 任务的解决方法建议,希望对你解决如何在创建 CodePipeline 之前在 CloudFormation 中创建 ECS 任务有所启发或帮助;

我正在尝试在 Cloudformation 中定义我的 ECS 堆栈,包括 CI/CD 管道和 ECR 存储库。但是,您遇到了一个难题:

  1. 要创建 ECS 任务定义 (AWS::ECS::TaskDeFinition),您必须首先创建一个填充的 ECR 存储库 (AWS::ECR::repository),以便您可以指定 Image 属性。
  2. 要填充此存储库,您必须先创建将在创建时自动运行的 CodePipeline (AWS::CodePipeline::Pipeline)。
  3. 要创建管道,您必须首先创建 ECS 任务定义/集群,因为管道需要部署到它上面(回到第 1 步)。

我能看到的解决方案是:

  • 不要在 Cloudformation 中创建 ECR 存储库并将其作为参数传递给堆栈。
  • 在任务定义中定义一个虚拟映像以进行首次部署,然后创建将创建真实 ECR 存储库并部署真实映像的管道。
  • 在单独的堆栈中创建 CodeBuild 项目和 ECR 存储库,使用 lambda 函数触发 CodeBuild 项目(我认为它不像管道那样在创建时自动运行),创建 ECS 集群,然后创建管道。这似乎比应有的更复杂。

有没有更好的方法来解决这个问题?

解决方法

我的做法是先使用 ECR 存储库,但仍使用 CloudFormation。所以我有两个模板。一种用于 ECR 回购。其余的第二个。 ECR 存储库作为参数传递给第二个模板。但是您也可以在第二步中将其 export 的 Uri 设为 ImportValue。 Uri 的创建方式如下:

  Uri:
    Value: !Sub "${AWS::AccountID}.dkr.ecr.${AWS::region}.amazonaws.com/${MyECR}"

您还需要在 repo 中为任务定义一些初始图像。您可以通过为这个初始构建分离 CodeBuild 项目(不需要 CodePipeline)来实现自动化。

大佬总结

以上是大佬教程为你收集整理的如何在创建 CodePipeline 之前在 CloudFormation 中创建 ECS 任务全部内容,希望文章能够帮你解决如何在创建 CodePipeline 之前在 CloudFormation 中创建 ECS 任务所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。