Amazon web services EC2自动缩放实例在使用CodeDeploy时立即启动和终止
我正在实现AmazonEC2自动扩展和AWSCodeDeploy蓝绿色部署。我已将烘焙的AMI分配给自动缩放组 如果没有CodeDeploy,自动缩放就不会出现问题 用于蓝绿色部署的AWS CodeDeploy工作正常。我已在部署组中分配了自动缩放组 然而,为了测试蓝绿色部署,我手动终止了其中一个实例,以便自动伸缩可以启动更多的实例。但是,实例会突然启动和终止 我发现AWS CodeDeploy有一个错误: 部署失败,因为指定的文件已存在于以下位置:webserver/server.js 我使用的AWS CodeDeploy配置是OneAtTime和content选项:覆盖内容 我只有一个应用程序部署组 目前,我已将自动复制Amazon EC2自动缩放组更改为手动配置实例,从而从AWS CodeDeploy中删除了自动缩放组,这已停止终止实例。但是,自动缩放创建的新实例没有新代码。CodeDeploy是否用新代码更新或替换AMI 问题: 为什么我会收到部署失败的错误消息,因为指定的文件已存在于以下位置:webserver/server.js 通过自动缩放创建的EC2实例没有最新的部署代码 是否有更好的方法来执行蓝绿色部署和自动缩放。上述方法是否存在任何问题Amazon web services EC2自动缩放实例在使用CodeDeploy时立即启动和终止,amazon-web-services,autoscaling,aws-code-deploy,Amazon Web Services,Autoscaling,Aws Code Deploy,我正在实现AmazonEC2自动扩展和AWSCodeDeploy蓝绿色部署。我已将烘焙的AMI分配给自动缩放组 如果没有CodeDeploy,自动缩放就不会出现问题 用于蓝绿色部署的AWS CodeDeploy工作正常。我已在部署组中分配了自动缩放组 然而,为了测试蓝绿色部署,我手动终止了其中一个实例,以便自动伸缩可以启动更多的实例。但是,实例会突然启动和终止 我发现AWS CodeDeploy有一个错误: 部署失败,因为指定的文件已存在于以下位置:webserver/server.js 我使用
我已经阅读了AWS CodeDeploy教程,但遗漏了一些内容。您可以使用自定义脚本清理目标文件夹并从AppSpec挂钩部分运行它,例如,安装前的生命周期事件看起来是运行此脚本的好地方。 您可以创建一个名为BeforeInstall的appspec挂钩,它将清理需要部署的目录 例如:
version: 0.0
os: linux
files:
- source: /
destination: /var/www/html
hooks:
BeforeInstall:
- location: ./cleanup.sh
而cleanup.sh的内容与此类似:
#!/bin/bash -xe
# cleanup folder /var/www/html
rm -rf /var/www/html
有了这个钩子,在部署代码之前,BeforeInstall钩子将运行,并且该脚本将被执行以清理目录
关于appspec钩子的更多信息可以在这里找到:面对同样的问题,您有什么解决方案吗。