通过 AWS Elastic Beanstalk 部署应用程序时出错

Posted

技术标签:

【中文标题】通过 AWS Elastic Beanstalk 部署应用程序时出错【英文标题】:Error During Deployment of an Application via AWS Elastic Beanstalk 【发布时间】:2021-02-11 02:19:24 【问题描述】:

我在为我的应用程序部署最新代码时遇到异常错误。

这是一个旧应用程序,在出现此错误之前我已经部署了许多版本。

即使重新部署最后一个工作版本也会失败并出现同样的错误。

当前版本对一些 twig 文件进行了更改,并将 composer.json 和 composer.lock 文件更新为最新的 DB 版本。

php 7.1 Symfony 3.3 aws ec2、s3、rds

这是 EB UI 错误:

应用程序部署在 2020-10-28T16:34:04Z 失败,退出状态为 1 并且错误:.ebextensions/composer.config 中的 EBExtension 失败。 “utf8”编解码器无法解码位置 317 中的字节 0x80:无效的起始字节。

以下是日志错误:

EB 活动日志 使用 DocumentRoot 的配置值:/web [2020-10-28T19:06:03.996Z] 信息 [3029] - [应用程序部署 app-4419-201024_163347@118/StartupStage0/AppDeployPreHook/10_composer_install.sh]:开始活动... [2020-10-28T19:06:04.606Z] INFO [3029] - [应用程序部署 app-4419-201024_163347@118/StartupStage0/AppDeployPreHook/10_composer_install.sh]:活动执行失败,因为:+。 /opt/elasticbeanstalk/support/envvars

EB 命令日志 [2020-10-28T12:30:06.372Z] 信息 [3547] - [应用程序部署 app-ed2c-201028_081818@111/StartupStage0/EbExtensionPreBuild/Infra-EmbeddedPreBuild/prebuild_1_site_prod]:已完成活动。 [2020-10-28T12:30:06.378Z] 信息 [3547] - [应用程序部署 app-ed2c-201028_081818@111/StartupStage0/EbExtensionPreBuild/Infra-EmbeddedPreBuild/prebuild_2_site_prod]:开始活动... [2020-10-28T12:30:06.379Z] 信息 [3547] - [应用程序部署 app-ed2c-201028_081818@111/StartupStage0/EbExtensionPreBuild/Infra-EmbeddedPreBuild/prebuild_2_site_prod/Command 01updateComposer]:开始活动... [2020-10-28T12:30:06.768Z] 信息 [3547] - [应用程序部署 app-ed2c-201028_081818@111/StartupStage0/EbExtensionPreBuild/Infra-EmbeddedPreBuild/prebuild_2_site_prod/Command 01updateComposer]:活动执行失败,因为:'utf8 ' 编解码器无法解码位置 317 中的字节 0x80:无效的起始字节 (ElasticBeanstalk::ExternalInvocationError)

[2020-10-28T12:30:06.768Z] 信息 [3547] - [应用程序部署 app-ed2c-201028_081818@111/StartupStage0/EbExtensionPreBuild/Infra-EmbeddedPreBuild/prebuild_2_site_prod/Command 01updateComposer]:活动失败。 [2020-10-28T12:30:06.768Z] 信息 [3547] - [应用程序部署 app-ed2c-201028_081818@111/StartupStage0/EbExtensionPreBuild/Infra-EmbeddedPreBuild/prebuild_2_site_prod]:活动失败。 [2020-10-28T12:30:06.768Z] 信息 [3547] - [应用程序部署 app-ed2c-201028_081818@111/StartupStage0/EbExtensionPreBuild/Infra-EmbeddedPreBuild]:活动失败。 [2020-10-28T12:30:06.797Z] 信息 [3547] - [应用程序部署 app-ed2c-201028_081818@111/StartupStage0/EbExtensionPreBuild]:活动失败。 [2020-10-28T12:30:06.797Z] 信息 [3547] - [应用程序部署 app-ed2c-201028_081818@111/StartupStage0]:活动失败。 [2020-10-28T12:30:06.797Z] 信息 [3547] - [应用程序部署 app-ed2c-201028_081818@111]:已完成活动。结果: 应用部署 - 命令 CMD-SelfStartup 失败

请帮忙。

【问题讨论】:

【参考方案1】:

此问题是由 AWS 使用 Composer 2(最新版本)引起的。

我在我们的部署配置中添加了“self-update 1.10.10”,以使 AWS 使用较旧的 Composer 版本(见下文)。

命令: 01更新作曲家: 命令:export COMPOSER_HOME=/root && /usr/bin/composer.phar 自更新1.10.10

【讨论】:

以上是关于通过 AWS Elastic Beanstalk 部署应用程序时出错的主要内容,如果未能解决你的问题,请参考以下文章

HTTPS Elastic Beanstalk (AWS) 到 Android

通过 AWS Elastic Beanstalk 部署应用程序时出错

通过 AWS Elastic Beanstalk 部署 Django 应用程序会破坏 CSS 路径

通过 AWS Elastic Beanstalk 成功部署 Django,但出现 500 错误

通过 aws.push 部署到 Elastic Beanstalk 时保留某些现有文件

通过ebextensions在aws elastic beanstalk中用nginx替换apache