我想知道是否可以通过CLI将我的整个应用程序的zip文件上传到Elastic Beanstalk?目前我正在使用git aws.push,但问题是我的应用程序有部署后需要安装的供应商依赖项。如果我可以直接从CLI上传zip,我可以让我的jenkins构建服务器安装所有供应商,压缩整个应用程序然后上传到EBS。
答案 0 :(得分:1)
您将此标记为“Elastic Beanstalk”,因此我假设您尝试将应用推送到S3,而不是EBS。应用程序版本存储在S3存储桶中,然后Beanstalk部署脚本将.zip从存储桶下载到EBS卷,在/tmp
中提取,然后将代码复制到/var/www/html
。你实际上并没有直接上传任何东西到EBS卷(嗯,我的意思是,你不应该)。
如果您的依赖项是PHP库,只需将它们包含在您的应用程序源包中即可。但是,如果您的依赖项包含安装在/var/www/html
以外的位置的文件(如Apache模块或其他二进制文件),那么在部署期间,您无法(轻松)使用Elastic Beanstalk和PHP执行此操作。您必须SSH,安装依赖项,“刻录”实例的自定义AMI,然后在Beanstalk环境配置中指定自定义AMI。
这有点像一个丑陋的解决方法,因为你现在有责任维护这个自定义AMI,而使用亚马逊提供的图像库存意味着你可以依靠它们定期发布带有安全修复程序的新版本等。请记住尽管AWS产品开发团队以极快的速度发展。就在几周前,Beanstalk团队introduced Puppet-like configuration scripts进行了配置。这可能正是您所需要的,但不幸的是它只支持Java和Python环境。我希望他们尽快发布PHP支持,所以请密切关注它。