AWS Beanstalk应用程序无法部署,因为awsclibundle部署程序中的Python版本太旧



我的AWS Elastic Beanstalk tomcat Java应用程序在过去六个月里运行得很好,昨天崩溃了,当我试图使用克隆重新部署时,它失败了

Instance:i-0872ed7568a9820f5]命令在实例上失败。回来代码:1输出:(TRUNCATED(。。。detected: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/..eextensions/copyindexes.config中的命令01_install_cli失败。对于更详细的信息,请使用控制台或eb CLI检查/var/log/eb-activity.log。

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

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文件的.eextensions文件夹,但我看不到版本号定义的

因此,我尝试使用较新的平台创建一个新的环境,因此认为amazoncli工具是作为平台的一部分安装的,而不是将Tomcat 7与Java 7一起使用我尝试了Tomcat8.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不是我写的脚本,它不是战争文件的一部分,它是亚马逊使用的内部脚本!

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

  • 将您的Elastic Beanstalk Linux应用程序迁移到Amazon Linux 2

最新更新