YAML 例外:不可接受的字符 (0x0)



将新版本上传(带zip)到Elastic Beanstalk后,Elastic Beanstalk上会出现此错误!使用文件.eextensions/singlehttps.config为单个实例服务器设置https。

如果您正在进行亚马逊AWS研讨会LAB:https://github.com/awslabs/eb-node-express-signup

即。上传和部署您的Elastic Beanstalk应用

并且得到这个问题错误:

*错误无法部署应用程序。

*错误应用程序版本1.1.0中的配置文件__MACOSX/.eextensions/.setup.config包含无效的YAML或JSON。YAML异常:无效的YAML:不可接受的字符"�;"(0x0)特殊字符不允许出现在位置0的"中,JSON异常:无效的JSON:位置0处的意外字符(�;)。更新配置文件。

*INFO环境更新正在启动。

解决方案

这是因为MACOS包括一些额外的隐藏文件夹,您需要从ZIP文件中排除这些文件夹。要做到这一点,请在您的zip上的终端中运行此命令:

$ zip -d nameofyourzipfile.zip __MACOSX/*

现在重新上传,你应该会得到一条成功的消息:

INFO环境更新已成功完成。信息新的应用程序版本已部署到正在运行的EC2实例。

希望这能解决你的问题!

Elastic Beanstalk系统中出现此问题的原因实际上是在Mac osx平台中创建的zip
如果您使用eb-deploy命令而不是通过压缩应用程序来上传新版本,那么问题就不会出现
希望这能帮助到别人,因为它已经困扰了我这么长时间了!!

当你在MACOSX上压缩文件夹时,它会在你的文件夹旁边添加自己的隐藏文件。

如果您想制作一个没有那些不可见的Mac资源文件(如"MACOSX"或".Filename"和.ds存储文件)的zip,请使用zip命令中的"-X"选项

$ zip -r -X archive_name.zip folder_to_compress

如果这是一个预先存在的zip文件,你可以使用这里其他人提到的命令

$ zip -d nameofyourzipfile.zip __MACOSX/*

在Mac上解决问题

由于它打开了zip文件,当您压缩它时,Elastic Beanstalk会给出上面提到的错误。若您在前面的注释中运行命令来删除与MACOSX相关的内容,它仍然会给我一个关于找不到其中一个文件的错误。

解决方法是,在下载之前,将zip文件重命名为其他扩展名,并在Mac上更改为zip。当您将此文件上传到Elastic Beanstalk时,它将正常工作。

最新更新