Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何通过CLI将zip文件上载和部署到AWS elastic beanstalk?_Amazon Web Services_Amazon S3_Amazon Elastic Beanstalk - Fatal编程技术网

Amazon web services 如何通过CLI将zip文件上载和部署到AWS elastic beanstalk?

Amazon web services 如何通过CLI将zip文件上载和部署到AWS elastic beanstalk?,amazon-web-services,amazon-s3,amazon-elastic-beanstalk,Amazon Web Services,Amazon S3,Amazon Elastic Beanstalk,我不想使用控制台。没有手动过程。我需要一个命令行版本,可以在连续部署脚本中编写 作为构建过程的一部分,我可以输出一个ZIP文件(可以在本地机器上,也可以在CI过程中,例如:通过bitbucket管道或AWS codedeploy VM实例) 我需要一个命令,如: aws eb部署我的应用程序。/server.zip 也就是说,首先上传我选择的zip文件,然后部署它(不需要一个命令) 官方的eb deploy似乎不支持这一点,我也没有找到任何其他方法来实现这一点 任何想法都将不胜感激:)我认为eb

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

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

我需要一个命令,如:

aws eb部署我的应用程序。/server.zip

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

官方的
eb deploy
似乎不支持这一点,我也没有找到任何其他方法来实现这一点


任何想法都将不胜感激:)

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

  • 将ZIP文件上传到S3
  • 创建应用程序版本
  • 更新环境
  • 例如

    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
    

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

    部署工件而不是项目文件夹 通过将以下行添加到项目文件夹中的
    .elasticbeanstalk/config.yml
    ,可以告诉EB CLI部署作为单独构建过程一部分生成的ZIP文件或WAR文件

    deploy:
     artifact: path/to/buildartifact.zip
    
    如果您在Git存储库中配置了EB CLI,但未>将工件提交到源代码,请使用
    --staged
    选项部署最新版本

    ~/eb$ eb deploy --staged
    

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

    好奇您为什么不想通过EB cli作为
    EB部署的一部分来管理整个生命周期(
    :)。。你能详细说明你的要求吗?(据我所知,应用程序版本只能通过控制台手动上传)我有一个自定义的人工制品生成过程,将多个JAR从几个子模块捆绑到一个eb deploy不支持的模块中OK,并且将依赖JAR作为代码库的一部分放在这里不起作用?这是在您运行
    eb deploy
    之前在CI/CD脚本中出现的内容。您可能需要检查
    .ebignore
    文件,以确保CLI不会忽略其他JAR。在稍后的部署过程中,您可以使用Beanstalk提供的生命周期挂钩,如
    命令:
    容器命令:
    (取决于基于docker/非docker的环境),在应用程序出现之前执行自定义魔术,这对我来说是可行的。以前使用EB-CLI定义归档文件时遇到过困难。nice,但是如果没有公共s3存储桶,该如何定义呢?源IP的公共存储桶有问题。@bjm88 S3存储桶不需要是公共的。只需确保设置了正确的访问/权限即可。例如,执行
    cp
    命令的IAM用户/角色必须对
    mybucket
    资源具有
    s3:PutObject
    权限。