我想知道是否可以通过 CLI 将我的整个应用程序的 zip 上传到 Elastic Beanstalk?目前我正在使用 git aws.push,但问题是我的应用程序具有我需要在部署后安装的供应商依赖项。如果我可以直接从 CLI 上传 zip,我可以让我的 jenkins 构建服务器安装所有供应商,压缩整个应用程序,然后上传到 EBS。
最佳答案
您将此标记为“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 支持,所以请密切关注它。
关于php - 适用于 PHP 的 AWS Elastic Beanstalk 通过 CLI 上传 ZIP 应用程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12981904/