Amazon Codedeploy + 弹性负载均衡器 - Windows 支持

Amazon Codedeploy + Elastic Load Balancer - Windows support

在通过 CodeDeploy 部署时,是否有任何 bat 脚本(用于 Windows 服务器)来处理 Elastic Load Balancer?我只找到 linux:

的脚本

https://github.com/awslabs/aws-codedeploy-samples/tree/master/load-balancing/elb

不幸的是,他们甚至没有在文档中提及 Windows 服务器支持:

http://docs.aws.amazon.com/codedeploy/latest/userguide/elastic-load-balancing-integ.html

Amazon 的官方回答链接回了这个主题,他们说 "someone" 正在使用 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

deregister_from_elb.bat文件中,我用Cygwin运行.sh文件,如下:

@echo off

SET mypath=%~dp0
SET mypath=%mypath:~3%

C:\cygwin64\bin\bash.exe -l -c "'/cygdrive/c/%mypath%deregister_from_elb.sh'"

你可以想象一下register_with_elb.bat的样子。

此解决方案现在可以在生产环境中运行,大约 6 个月没有出现任何重大问题。