buildspec、appspec 和滚动我自己的 AMI 之间有什么区别?

d8a*_*nja 7 packer aws-code-deploy aws-codepipeline aws-codestar cicd

除了结构之外,我对buildspec.yml和文件之间的区别感到相当困惑。appspec.yml我的构建规范中的阶段命令似乎对部署环境没有太大影响,并且在运行过程(例如安装)时使用哪个 appspec 挂钩之间也存在类似的模糊性。只要该过程发生在需要它的阶段之前,我就看不到阶段之间的差异。(我已阅读规范参考文档;他们大多确认这些阶段的标题是出于其目的,但并不是真正的目的。)

举个例子,为什么每次我必须进行部署时,我不直接使用 Packer 烘焙自己的 AMI,然后启动一个新主机并附加 AMI?

San*_*osh 5

干得好。

buildspec.yml

该文件用于从管道创建的源工件进行构建。同样,这仅对于需要构建的应用程序(例如 Angular、React 等)来说是必需的。如果您有 NodeJS 应用程序,则不需要此文件。

appspec.yml

如果您尝试将应用程序部署到 EC2 实例,则需要此文件。为 EC2 实例创建的部署组将在您的根目录中查找此文件,其中包含文件在 ec2 实例中被 overtite 后需要遵循的一系列指令。例如:如果您有 NodeJS 应用程序,那么它需要重新运行命令运行应用程序。

想要添加一些更多的不同吗?请给出意见。