【问题标题】:How to upload and deploy zip file to AWS elastic beanstalk via CLI?如何通过 CLI 将 zip 文件上传和部署到 AWS elastic beanstalk?
【发布时间】:2020-05-25 02:29:52
【问题描述】:

我不想使用控制台。没有手动过程。我需要一个命令行版本,可以在我的持续部署脚本中编写代码。

作为构建过程的一部分,我可以输出一个 ZIP 文件(无论是在我的本地机器上还是在 CI 过程中,例如:通过 bitbucket 管道或 AWS codedeploy VM 实例)。

我想要一个类似的命令:

aws eb deploy my-app ./server.zip

也就是说,首先上传我选择的 zip 文件,然后部署它(不必是一个命令)。

官方eb deploy好像不支持这个,我也没有找到其他方法来做这个。

任何想法将不胜感激:)

【问题讨论】:

  • 很好奇为什么你不想通过 EB cli 作为eb deploy 的一部分来管理整个生命周期:) .. 你能详细说明你的要求吗? (据我所知,应用版本只能通过控制台手动上传)
  • 我有一个自定义工件生成过程,将多个子模块中的多个 JAR 捆绑到一个 eb deploy 不支持的 JAR 中
  • 好的,将依赖的 jars 作为代码存储库的一部分在这里不起作用?这是在您运行eb deploy 之前进入 CI/CD 脚本的内容。您可能需要检查 .ebignore 文件以确保 CLI 不会忽略其他 jar。在部署过程的后期,您可以使用 Beanstalk 提供的生命周期挂钩,如 commands:container_commands:(取决于基于 docker/non-docker 的环境)在应用程序启动之前执行自定义魔术

标签: amazon-web-services amazon-s3 amazon-elastic-beanstalk


【解决方案1】:

我也在寻找这个答案。我找到了一些 AWS 文档,可让您使用 Elastic Beanstalk CLI 配置上传 zip。

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-configuration.html#eb-cli3-artifact

部署工件而不是项目文件夹

您可以通过将以下行添加到项目文件夹中的.elasticbeanstalk/config.yml 来告诉 EB CLI 部署您在单独构建过程中生成的 ZIP 文件或 WAR 文件。

deploy:
 artifact: path/to/buildartifact.zip

如果您在 Git 存储库中配置 EB CLI,但没有 > 将工件提交到源,请使用 --staged 选项部署最新版本。

~/eb$ eb deploy --staged

我测试过,它确实对我有用!

【讨论】:

    【解决方案2】:

    我认为eb CLI 不支持上传 ZIP 和更新环境,但您可以使用 AWS CLI 命令的组合。

    1. 将 ZIP 上传到 S3
    2. 创建应用程序版本
    3. 更新环境

    例子,

    aws s3 cp deploy.zip s3://mybucket/deploy.zip
    aws elasticbeanstalk create-application-version --application-name my-app --version-label 12345 --source-bundle S3Bucket="mybucket",S3Key="deploy.zip"
    aws elasticbeanstalk update-environment --application-name my-app --environment-name MyApp-env --version-label 12345
    

    【讨论】:

    • 这对我有用。以前用 EB-CLI 来定义存档文件。
    • 很好,但是没有公共 s3 存储桶怎么办?带有源 IP 的公共存储桶是个问题。
    • @bjm88 S3 存储桶不需要公开。只需确保设置了正确的访问/权限即可。例如,执行cp 命令的 IAM 用户/角色必须拥有mybucket 资源的s3:PutObject 权限。
    猜你喜欢
    • 2018-12-21
    • 2015-09-18
    • 2019-02-14
    • 2012-10-10
    • 2020-03-24
    • 2015-04-05
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    相关资源
    最近更新 更多