Amazon Codedeploy + Elastic Load Balancer - Windows 支持
Posted
技术标签:
【中文标题】Amazon Codedeploy + Elastic Load Balancer - Windows 支持【英文标题】:Amazon Codedeploy + Elastic Load Balancer - Windows support 【发布时间】:2016-02-05 22:48:27 【问题描述】:在通过 CodeDeploy 部署时,是否有任何 bat 脚本(适用于 Windows Server)来处理 Elastic Load Balancer?我只找到了适用于 linux 的脚本:
https://github.com/awslabs/aws-codedeploy-samples/tree/master/load-balancing/elb
不幸的是,他们甚至没有在文档中提到 Windows Server 支持:
http://docs.aws.amazon.com/codedeploy/latest/userguide/elastic-load-balancing-integ.html
【问题讨论】:
当然我可以使用 Cygwin 来运行这些脚本,但这似乎是一种顽皮的解决方法...... 我实际上正在开发一个端口。只是想知道为什么你认为 Cygin 会“淘气”? 最后,我得到了它与 Cygwin 的合作。但是,我也提交了一个问题寻求亚马逊支持——让我们看看他们的反应是什么。 Cygwin 的解决方案似乎不适合我,因为我正在尝试做的是相当简单、流行的案例并且需要额外的软件是荒谬的。从 git 部署 Microsoft Azure 要容易得多。 【参考方案1】:亚马逊的官方回答链接到这个话题,他们说“有人”正在使用 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 个月没有出现任何重大问题。
【讨论】:
以上是关于Amazon Codedeploy + Elastic Load Balancer - Windows 支持的主要内容,如果未能解决你的问题,请参考以下文章
如何设置AWS CodeDeploy和EC2 CodeDeploy安全环境