适用于 PHP 的 AWS Elastic Beanstalk 通过 CLI 上传 ZIP 应用程序

Posted

技术标签:

【中文标题】适用于 PHP 的 AWS Elastic Beanstalk 通过 CLI 上传 ZIP 应用程序【英文标题】:AWS Elastic Beanstalk for PHP uploading a ZIP off app through CLI 【发布时间】:2012-10-10 12:28:38 【问题描述】:

我想知道是否可以通过 CLI 将我的整个应用程序的 zip 文件上传到 Elastic Beanstalk?目前我正在使用 git aws.push,但问题是我的应用程序具有我需要在部署后安装的供应商依赖项。如果我可以直接从 CLI 上传 zip,我可以让我的 jenkins 构建服务器安装所有供应商,压缩整个应用程序然后上传到 EBS。

【问题讨论】:

【参考方案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 支持,所以请密切关注。

【讨论】:

感谢您的回复,是的,我的意思是推到 s3,我可以做到这一点,但我无法让它在 ebs 控制台中显示为一个版本。我的部门都是作曲家安装的供应商,我在我的计算机服务器上创建了一个 grunt 任务,将所有内容压缩为一个包并推送到 s3,效果很好,但我只需要解决将其添加为版本问题。 @greg 你有没有找到通过 CLI 将 zip 上传到 S3 并显示为版本的解决方案?!

以上是关于适用于 PHP 的 AWS Elastic Beanstalk 通过 CLI 上传 ZIP 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

AWS APi Gateway 客户端证书,带有适用于 Elastic Beanstalk ELB 的 AWS 证书管理器

如何从适用于 Java 的 AWS 开发工具包克隆 Elastic Beanstalk 环境?

AWS Elastic Beanstalk - PHP 脚本在部署新版本后无法执行

AWS Elastic Beanstalk Tomcat 适用于 .war 但不适用于 .zip

适用于 Java 应用程序的 AWS Elastic Beanstalk 默认 CloudWatch 日志位置

AWS Elastic Beanstalk 中的工作人员“dyno”