设置 CodeDeploy 时如下本教程,在Setup CodePipeline的最后一步下
如果我单击“失败”下的“详细信息”
如果我单击链接到执行详细信息
部署失败,因为没有找到您的实例
部署组。检查您的部署组设置以确保
您的 Amazon EC2 实例或 Auto Scaling 组的标签
正确识别您要部署到的实例,然后尝试
再次。
这很可能是由于位置问题造成的 - 有时使用弗吉尼亚北部,有时使用伦敦。
- IAM - 不需要区域选择。
- S3 - 不需要区域选择。
- LightSail 实例 - 伦敦,A 区 (eu-west-2a)
- CodeDeploy 应用程序 - 弗吉尼亚北部 (us-east-1)
- CodeDeploy 管道 - 伦敦,A 区 (eu-west-2a)
因此,我转到 CodeDeploy,删除了弗吉尼亚北部的应用程序,并在伦敦创建了一个部署组。然后,在伦敦建立了一条新管道。
这次部署也失败了,但原因不同
整体部署失败,因为单个实例太多
部署失败,可用的健康实例太少
部署,或者部署组中的某些实例
遇到问题。
为了解决这个问题,我删除了两个管道并创建了一个新管道。由于我必须改变角色,所以我使用了AWSCodePipelineServiceRole-eu-west-2-CodeDeployLightsailDemoPipeline
但这在创建管道时给我带来了麻烦
无法创建角色
AWSCodePipelineServiceRole-eu-west-2-CodeDeployLightsailDemoPipeline
所以,我把它改成了AWSCodePipelineServiceRole-eu-west-2-CodeDeployLightsailDemoP
。然后,这让我陷入了另一个问题
一项名为
AWSCodePipelineServiceRole-eu-west-2-CodeDeployLightsailDemoPipeline
已经存在。不允许出现重复的名称。
所以,我返回并将管道名称更改为CodeDeployLightsailDemoPi
和角色名称AWSCodePipelineServiceRole-eu-west-2-CodeDeployLightsailDemoPi
.
这让我陷入了同样的境地
整体部署失败,因为单个实例太多
部署失败,可用的健康实例太少
部署,或者部署组中的某些实例
遇到问题。
我决定等待 30 分钟并创建一个新管道并为其命名CodeDeployLightsailPipeline
以及角色名称AWSCodePipelineServiceRole-eu-west-2-CodeDeployLightsailPipelin
但同样的问题发生了。
这是部署 ID > 查看事件中显示的信息
根据Marcin,我应该找到应用程序规范.yml
version: 0.0
os: linux
files:
- source: /index.html
destination: /var/www/html/
hooks:
BeforeInstall:
- location: scripts/install_dependencies
timeout: 300
runas: root
- location: scripts/start_server
timeout: 300
runas: root
ApplicationStop:
- location: scripts/stop_server
timeout: 300
runas: root
其中,提到了destination: /var/www/html/
但在这个例子中没有这样的/var/www/html
path
所以,我在其中创建了这两个文件夹
并重新启动部署
但它像以前一样失败了。
如何使部署状态变为成功?
Edit
根据文档,此错误代码显示健康限制。所以,我现在正在阅读:
- 实例健康状况
- 排查实例问题
- 排查 EC2/本地部署问题