通过CodeDeploy部署时,是否有任何蝙蝠脚本(适用于Windows Server)来处理弹性负载均衡器?我只找到了linux的脚本:
https://github.com/awslabs/aws-codedeploy-samples/tree/master/load-balancing/elb
不幸的是,他们甚至没有在文档中提到对WindowsServer的支持:
http://docs.aws.amazon.com/codedeploy/latest/userguide/elastic-load-balancing-integ.html
亚马逊的官方回复链接到了这个话题,他们说"有人"正在使用Cygwin,我也应该试试。。。
不幸的是,由于没有其他可能性,我安装了Cygwin,并在appspec.yml中放入:
version: 0.0
os: windows
files:
- source: xxx
destination: C:xxx
hooks:
ApplicationStop:
- location: deregister_from_elb.bat
timeout: 900
<next steps here>
ApplicationStart:
- location: register_with_elb.bat
timeout: 900
在disregister_from_elb.bat文件中,我使用Cygwin运行.sh,如下所示:
@echo off
SET mypath=%~dp0
SET mypath=%mypath:~3%
C:cygwin64binbash.exe -l -c "'/cygdrive/c/%mypath%deregister_from_elb.sh'"
您可以想象register_with_elb.bat的样子。
该解决方案现在可以在生产中使用,大约6个月内没有任何重大问题。