希望有一些想法如何解决这个问题!
我有一个在Elastic Beanstalk中运行的.NET Web应用程序,它需要通过ebextensions完成一些事情。它在创建实例后一致地工作,但在实例创建时,似乎存在问题。
在日志文件中,有以下内容:
2015-03-12 15:44:36,901 [INFO] Running config postbuild_0_MyConfig
2015-03-12 15:44:38,309 [ERROR] -----------------------BUILD FAILED!------------------------
2015-03-12 15:44:38,309 [ERROR] Unhandled exception during build: [Error 267] The directory name is invalid
Traceback (most recent call last):
File "cfn-init", line 123, in <module>
File "cfnbootstrap\construction.pyc", line 117, in build
File "cfnbootstrap\construction.pyc", line 502, in build
File "cfnbootstrap\construction.pyc", line 513, in run_config
File "cfnbootstrap\construction.pyc", line 125, in run_commands
File "cfnbootstrap\command_tool.pyc", line 104, in apply
File "cfnbootstrap\util.pyc", line 468, in call
File "cfnbootstrap\util.pyc", line 454, in call
File "subprocess.pyc", line 679, in __init__
File "subprocess.pyc", line 896, in _execute_child
WindowsError: [Error 267] The directory name is invalid
在失败之后,我将使用AWS控制台中的相同代码版本再次运行部署,我得到:
2015-03-12 16:00:42,526 [INFO] Running config postbuild_0_Umbraco
2015-03-12 16:00:44,558 [INFO] Command 01-changeperm succeeded
2015-03-12 16:00:44,558 [INFO] Waiting 60 seconds for reboot
2015-03-12 16:01:47,322 [INFO] Command 02-createvirtualdirectory succeeded
2015-03-12 16:01:47,338 [INFO] Waiting 60 seconds for reboot
这是预期的。
我认为由于配置文件本身一定会失败,因为个别命令本身的问题会导致不同的错误。
这是我的.config文件,它被部署到.ebextensions文件夹中,以及引用的脚本:
container_commands:
01-changeperm:
command: "permissions.bat > ../eblog.log"
cwd: "C:/inetpub/wwwroot/.ebextensions"
02-createvirtualdirectory:
command: "powershell.exe -noprofile -executionpolicy bypass -file ./virtualdir.ps1 > ../vd.log"
cwd: "C:/inetpub/wwwroot/.ebextensions"
希望有人可以帮助我,因为我不知所措!如果有人想要更多信息,请问!
提前致谢。
答案 0 :(得分:2)
由于部署了webdeploy软件包的方式,在Windows上执行配置略有不同。
因此,您不能指望磁盘上存在的.ebextensions文件夹(或捆绑包中的任何文件)中的任何文件(这不是实际执行脚本的位置)。
.ebextensions配置中的命令在你的任何位被放置在磁盘上之前执行(甚至是container_commands)。
出于这个原因,您可能需要内联您的bat文件和ps1脚本,或者将它们放在S3中,然后使用file:directives将它们放下。