如何解决 Amazon EC2 实例上 CodeDeploy 部署失败这一问题?

1 分钟阅读
0

我在 Amazon Elastic Compute Cloud (Amazon EC2) 实例上部署 AWS CodeDeploy 失败了。

概述

您可以使用 AWS Systems ManagerAWSSupport-TroubleshootCodeDeploy 自动化运行手册来解决部署失败问题。 运行手册可帮助您确定部署由于以下原因而失败的时间:

  • CodeDeploy 代理未安装或未在实例上运行。
  • 缺少所需的实例配置文件。
  • 实例配置文件没有正确的 Amazon Simple Storage Service (Amazon S3) 权限。
  • 由 CodeDeploy 管理的一个生命周期挂钩存在问题,例如 AllowTrafficBlockTraffic
  • 一个由客户管理的生命周期挂钩存在问题。
  • 部署期间自动扩缩组缩减事件出现了问题。
  • AppSpec 文件丢失或格式不正确。

解决方法

重要信息: 在 CodeDeploy 应用程序所在的同一AWS地区使用AWSSupport-TroubleshootCodeDeploy 运行手册。

  1. 打开 AWS Systems Manager 控制台

  2. 在导航窗格的变更管理部分中,选择自动化

  3. 选择执行自动化

  4. 亚马逊所有选项卡的自动化文档搜索框中,输入AWSSupport-TroubleshootCodeDeploy。然后,选择搜索图标,或按键盘上的回车键。

  5. AWSSupport-TroubleshootCodeDeploy 卡上选择单选按钮。

**注意:**确保选择单选按钮,而不是超链接的自动化名称。

  1. 文档详细信息部分中,选择下一步

  2. 输入参数部分中,对于DeploymentId,输入失败的部署 ID。

  3. 对于InstanceID,输入部署失败的实例 ID。

  4. 对于 AutomationAssumeRole,输入允许系统管理员自动化执行操作的角色的 Amazon 资源名称 (ARN)

**注意:**如果未指定 AWS 身份和访问管理 (IAM) 角色,则Systems Manager 自动化将使用运行手册的 IAM 用户角色的权限。有关为 Systems Manager Automation 创建代入角色的更多信息,请参阅任务 1: 为自动化创建服务角色

**重要信息:****AutomationAssumeRole **或用户角色都必须拥有以下操作权限:codedeploy:GetDeploymentcodedeploy:GetDeploymentTargetec2:DescribeInstances

  1. 选择执行

运行手册的输出提供了故障排除步骤和有关如何解决导致部署失败问题的建议。

相关信息

CodeDeploy故障排除

解决 EC2/本地部署问题

AWS 官方
AWS 官方已更新 2 年前