【问题标题】:Creating a simple pipeline (CodeCommit repository创建一个简单的管道(CodeCommit 存储库
【发布时间】:2021-10-26 22:45:14
【问题描述】:

我使用 jenkins 创建了一个简单的部署管道,我创建了 codedeploy、S3 Bucket、Autoscalable 组和 ami。文档中列出的所有内容。但它需要一个 appspec.yml。我查看了 appspec.yml 的文档。而且很混乱。

有没有办法生成 appspec.yml。我什至不确定它的作用是什么。我认为代码部署会将 zip 文件从 S3 存储桶中取出并将其部署到可扩展组。

有什么帮助吗?

【问题讨论】:

    标签: amazon-web-services aws-code-deploy aws-code-deploy-appspec


    【解决方案1】:

    有没有办法生成appspec.yml

    无法自动生成文件。它必须为您的特定应用程序定制设计,并且只有您知道您的应用程序是什么,它是如何工作的,它是如何配置的,它的依赖关系是什么等等。

    【讨论】:

    • 谢谢,是的,这就是问题所在。代码部署我认为是从一个 AWS 服务中获取一些东西的情况,例如从 S3 存储桶中获取一个 zip 文件,解压缩它并将其放在 ec2 中的某个位置。所以我认为他们都会遵循一个基本结构。
    • @AntonCavanaugh 该结构已在其他答案中已链接的文档中进行了解释。
    【解决方案2】:

    appspec.yml 是告诉 codedeploy 服务它应该对 EC2 服务器上的代码执行哪些任务的文件。所以它需要根据你的工作流程来构建。 documentationexamples 将帮助您实现您想要实现的目标。

    【讨论】:

    • 感谢您的回复,但文档对于将数据加载到 ec2 有点令人困惑,它只是说“它应该从您在 Amazon S3 或 GitHub 中的应用程序修订版安装到您的实例上的内容。”但是一个示例“-位置:scripts/install_dependencies.sh”是否意味着编写一个 shell 脚本,从 S3 Bucket 中取出一个 zip 文件,解压缩并将其放在 ec2 实例的某个地方。 CodeDeply 有一个基本的结构。但是没有关于如何从 S3 存储桶中取出一个 zip 并将其放入 Ec2 实例的文档,我认为代码部署会处理所有这些。
    • 是的,你的理解是正确的。您必须以 shell 脚本的形式定义任务。考虑到代码通常存在于 git repo 中,因此给出了站点上的示例。对于您的情况,如果您需要从 S3 获取文件,您可以安装 AWS cli,然后为 EC2 分配一个角色,这将允许您将资产从 S3 下载到实例中,然后将步骤放入 shell 脚本中将由 appspec.yml 调用
    • 谢谢。这就是我所做的。我想我会做的是当我让它工作时,会用任务更新这个问题。在文档中看起来 appspec.yml 是事后考虑的,而不是代码部署的一个非常重要的部分
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-29
    • 2021-08-01
    • 1970-01-01
    • 2015-06-05
    • 1970-01-01
    相关资源
    最近更新 更多