【问题标题】:AWS Beanstalk application cant deploy because Python version within awscli-bundle deployer too oldAWS Beanstalk 应用程序无法部署,因为 awscli-bundle 部署程序中的 Python 版本太旧
【发布时间】:2021-09-25 18:59:46
【问题描述】:

我的 AWS Elastic Beanstalk tomcat Java 应用程序在过去六个月一直运行得非常愉快,昨天崩溃了,当我尝试使用克隆重新部署时它失败了

实例:i-0872ed7568a9820f5] 实例上的命令失败。返回 代码:1 输出:(截断)...检测到:Python 2.7 继续使用 此安装程序必须使用 Python 3.6 或更高版本。了解更多信息 请参阅以下博客文章: https://aws.amazon.com/blogs/developer/announcing-end-of-support-for-python-2-7-in-aws-sdk-for-python-and-aws-cli-v1/。 .ebextensions/copyindexes.config 中的命令 01_install_cli 失败。为了 更多详细信息,请使用控制台或 EB CLI 检查 /var/log/eb-activity.log。

我检查了 eb_activity.log,似乎问题出在使用的 awscli-bundle 版本上,但我不明白我在哪里定义它。

Archive:  awscli-bundle.zip
  inflating: awscli-bundle/install
  inflating: awscli-bundle/packages/jmespath-0.10.0.tar.gz
  inflating: awscli-bundle/packages/pyasn1-0.4.8.tar.gz
  inflating: awscli-bundle/packages/docutils-0.15.2.tar.gz
  inflating: awscli-bundle/packages/s3transfer-0.5.0.tar.gz
  inflating: awscli-bundle/packages/virtualenv-16.7.8.tar.gz
  inflating: awscli-bundle/packages/awscli-1.20.1.tar.gz
  inflating: awscli-bundle/packages/six-1.16.0.tar.gz
  inflating: awscli-bundle/packages/rsa-4.7.2.tar.gz
  inflating: awscli-bundle/packages/colorama-0.4.3.tar.gz
  inflating: awscli-bundle/packages/PyYAML-5.4.1.tar.gz
  inflating: awscli-bundle/packages/urllib3-1.26.6.tar.gz
  inflating: awscli-bundle/packages/botocore-1.21.1.tar.gz
  inflating: awscli-bundle/packages/python-dateutil-2.8.2.tar.gz
  inflating: awscli-bundle/packages/setup/setuptools_scm-3.3.3.tar.gz
  inflating: awscli-bundle/packages/setup/wheel-0.33.6.tar.gz
  Unsupported Python version detected: Python 2.7
  To continue using this installer you must use Python 3.6 or later.
  For more information see the following blog post: https://aws.amazon.com/blogs/developer/announcing-end-of-support-for-python-2-7-in-aws-sdk-for-python-and-aws-cli-v1/
  
   (ElasticBeanstalk::ExternalInvocationError)

我查看了 .war 文件的 .ebextensions 文件夹,但看不到定义的版本号

所以我尝试使用较新的平台创建一个新环境,因此认为亚马逊 cli 工具是作为平台的一部分安装的,而不是使用 Tomcat 7 和 Java 7 我尝试了 Tomcat 8.5 Corretto 8 在 64 位 Amazon Linux 2/4.2.2 上运行

现在我在 cfn-init.log 中得到一个不同的错误

2021-07-17 07:26:02,021 [INFO] -----------------------Starting build-----------------------
2021-07-17 07:26:02,028 [INFO] Running configSets: _OnInstanceBoot
2021-07-17 07:26:02,031 [INFO] Running configSet _OnInstanceBoot
2021-07-17 07:26:02,033 [INFO] Running config AWSEBBaseConfig
2021-07-17 07:26:02,228 [INFO] Command clearbackupfiles succeeded
2021-07-17 07:26:02,234 [INFO] Running config AWSEBCfnHupEndpointOverride
2021-07-17 07:26:02,237 [INFO] Command clearbackupfiles succeeded
2021-07-17 07:26:02,238 [INFO] ConfigSets completed
2021-07-17 07:26:02,238 [INFO] -----------------------Build complete-----------------------
2021-07-17 07:26:37,586 [INFO] -----------------------Starting build-----------------------
2021-07-17 07:26:37,592 [INFO] Running configSets: Infra-EmbeddedPreBuild
2021-07-17 07:26:37,596 [INFO] Running configSet Infra-EmbeddedPreBuild
2021-07-17 07:26:37,599 [INFO] Running config prebuild_0_jthinkws
2021-07-17 07:26:39,257 [ERROR] Command 01_install_cli (wget https://s3.amazonaws.com/aws-cli/awscli-bundle.zip; unzip awscli-bundle.zip;  ./awscli-bundle/install -b ~/bin/aws) failed
2021-07-17 07:26:39,257 [ERROR] Error encountered during build of prebuild_0_jthinkws: Command 01_install_cli failed
Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/cfnbootstrap/construction.py", line 573, in run_config
    CloudFormationCarpenter(config, self._auth_config).build(worklog)
  File "/usr/lib/python3.7/site-packages/cfnbootstrap/construction.py", line 273, in build
    self._config.commands)
  File "/usr/lib/python3.7/site-packages/cfnbootstrap/command_tool.py", line 127, in apply
    raise ToolError(u"Command %s failed" % name)
cfnbootstrap.construction_errors.ToolError: Command 01_install_cli failed
2021-07-17 07:26:39,260 [ERROR] -----------------------BUILD FAILED!------------------------
2021-07-17 07:26:39,260 [ERROR] Unhandled exception during build: Command 01_install_cli failed
Traceback (most recent call last):
  File "/opt/aws/bin/cfn-init", line 176, in <module>
    worklog.build(metadata, configSets)
  File "/usr/lib/python3.7/site-packages/cfnbootstrap/construction.py", line 135, in build
    Contractor(metadata).build(configSets, self)
  File "/usr/lib/python3.7/site-packages/cfnbootstrap/construction.py", line 561, in build
    self.run_config(config, worklog)
  File "/usr/lib/python3.7/site-packages/cfnbootstrap/construction.py", line 573, in run_config
    CloudFormationCarpenter(config, self._auth_config).build(worklog)
  File "/usr/lib/python3.7/site-packages/cfnbootstrap/construction.py", line 273, in build
    self._config.commands)
  File "/usr/lib/python3.7/site-packages/cfnbootstrap/command_tool.py", line 127, in apply
    raise ToolError(u"Command %s failed" % name)
cfnbootstrap.construction_errors.ToolError: Command 01_install_cli failed

我不明白我要如何解决这个问题,因为 01_install_cli 不是我编写的脚本,它不是战争文件的一部分,它是亚马逊使用的内部脚本! p>

【问题讨论】:

    标签: java amazon-web-services amazon-elastic-beanstalk aws-cli


    【解决方案1】:

    没有从基于Amazon Linux 1 的EB 平台到Amazon Linux 2 的自动迁移。您必须在新的 EB 平台中手动执行此操作,如 AWS 文档中所述:

    【讨论】:

    • 谢谢,好的,但我没有尝试从 Linux 1 迁移到 Linux 2 我是否必须这样做,即我现有的版本无法像以前那样重新部署。其次,您在哪里将 Amazon Linux 1 配置为 Amazon Linux 2,或者您是说所有 Amazon pklatform 实例现在都是 Linux 2
    • @PaulTaylor 你没有尝试是什么意思。你写道你做到了:“所以我尝试使用更新的平台创建一个新环境,因此认为亚马逊 cli 工具是作为平台的一部分安装的,而不是使用带有 Java 7 的 Tomcat 7 我尝试了在 64 位亚马逊上运行的带有 Corretto 8 的 Tomcat 8.5 Linux 2/4.2.2"。 only supported version 基于 Amazon Linux 2。
    • 好吧,我发现这有点令人困惑,但我的意思是两件事。首先,为什么不能只克隆我现有的直到昨天才起作用的环境,或者克隆并将平台版本从 2.7.6 更新到 3.4.8。由于这些选项都没有工作,我尝试使用不同的平台分支(Tomcat 8.5 Coretto),但由于上述错误而失败,而且失败似乎发生在甚至部署我的代码之前,所以我不明白我是如何可以解决吗?
    • 嗨 @Marcin 我找到了问题的根源,但不知道如何解决 stackoverflow.com/questions/68418789/… 任何帮助表示赞赏,因为这是我的生产应用程序。
    猜你喜欢
    • 2021-12-16
    • 2020-07-26
    • 1970-01-01
    • 2020-04-09
    • 2017-03-25
    • 1970-01-01
    • 2020-04-29
    • 2021-03-01
    • 2019-03-07
    相关资源
    最近更新 更多