为部署组配置高级选项 - Amazon CodeDeploy
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

为部署组配置高级选项

在创建或更新部署组时,可以配置大量选项以更好地控制和监督部署组的部署。

使用此页面上的信息可帮助您在以下主题中使用部署组时配置高级选项:

Amazon SNS 通知触发器:您可以向 CodeDeploy 部署组添加触发器,以接收与该部署组中的部署相关的事件的通知。对于您加入到该触发器操作中的 Amazon SNS 主题,通知将发送到已订阅该主题的接收人。

您必须已经设置了此触发器将指向的 Amazon SNS 主题,并且 CodeDeploy必须有权从此部署组向该主题发布内容。如果您尚未完成这些设置步骤,可稍后向部署组添加触发器。

如果您需要立即创建触发器以接收有关此应用程序的部署组中的部署事件的通知,请选择 Create trigger

如果您要部署到 Amazon EC2 实例,则可以为实例创建通知并接收有关实例的通知。

有关更多信息,请参阅 Monitoring Deployments with Amazon SNS Event Notifications

Amazon CloudWatch 警报:您可以创建一个 CloudWatch 警报,在您指定的时间段内监视单个指标,并根据该指标在多个时间段内相对于给定阈值的值执行一项或多项操作。对于 Amazon EC2 部署,您可以为 CodeDeploy 操作中使用的实例或 Amazon EC2 Auto Scaling 组创建警报。对于 Amazon Lambda 和 Amazon ECS 部署,您可以为 Lambda 函数中的错误创建警报。

您可以将部署配置为在 Amazon CloudWatch 警报检测到指标已低于或超过定义的阈值时停止。

必须 CloudWatch 先在中创建警报,然后才能将其添加到部署组。

  1. 要向部署组添加警报监视,请在 Alarms(警报)中,选择 Add alarm(添加警报)

  2. 输入您已经设置的用于监控此部署的 CloudWatch 警报的名称。

    您必须完全按照中创建的 CloudWatch 警报输入警报 CloudWatch。要查看警报列表,请在上打开 CloudWatch 控制台https://console.amazonaws.cn/cloudwatch/,然后选择 ALAR M

其他选项:

  • 如果您希望继续部署而不考虑已添加的警报,请选择 Ignore alarm configuration

    当您希望暂时停用对部署组的警报监视而无需稍后重新添加相同警报时,此选项很有用。

  • (可选)如果您希望在无法从 Amazon 检索警报状态的情况下继续部署 CloudWatch,请选择 “即使警报状态不可用,也要继续部署”。 CodeDeploy

    注意

    此选项对应于 CodeDeploy API ignorePollAlarmFailure 中的AlarmConfiguration对象中。

有关更多信息,请参阅 使用 CloudWatch 警报监控部署 CodeDeploy

自动回滚:您可以对部署组或部署进行配置,使之在部署失败或达到您指定的监控阈值时自动回滚。在这种情况下,将会部署上一个已知良好的应用程序版本。您可以在使用控制台创建应用程序、创建部署组或更新部署组时配置部署组的可选设置。创建新部署时,您还可以选择覆盖已为部署组指定的自动回滚配置。

  • 您可通过选择下面一个或两个选项,允许部署在发生错误时回滚到已知正常的最近修订:

    • 部署失败时回滚。 CodeDeploy 会将上次已知良好的修订版重新部署为新部署。

    • Roll back when alarm thresholds are met。如果您在上一步中向此应用程序添加了警报,则 CodeDeploy 将在激活一个或多个指定警报时重新部署最后一个已知良好的版本。

    注意

    要暂时忽略回滚配置,请选择 Disable rollbacks。当您希望暂时禁止自动回滚而无需稍后重新设置相同配置时,此选项很有用。

    有关更多信息,请参阅 使用重新部署和回滚部署 CodeDeploy

自动更新过期实例:在某些情况下, CodeDeploy 可能会将应用程序的过时版本部署到您的 Amazon EC2 实例。例如,如果您的 EC2 实例在 CodeDeploy 部署过程中启动到 Auto Scaling 组 (ASG),则这些实例将收到您的应用程序的旧版本,而不是最新版本。要使这些实例保持最新状态,请 CodeDeploy 自动启动后续部署(在第一次部署之后立即启动)以更新所有过时的实例。如果您想更改此默认行为,以便将过时的 EC2 实例保留在较旧的版本中,则可以通过 CodeDeploy API 或 Amazon Command Line Interface (CLI) 进行更改。

要通过 API 配置过期实例的自动更新,请在 UpdateDeploymentGroupCreateDeploymentGroup 操作中包含 outdatedInstancesStrategy 请求参数。有关详细信息,请参阅《Amazon CodeDeploy API 参考》

要通过配置自动更新 Amazon CLI,请使用以下命令之一:

aws deploy update-deployment-group arguments --outdated-instances-strategy UPDATE|IGNORE

或者...

aws deploy create-deployment-group arguments --outdated-instances-strategy UPDATE|IGNORE

... 其中 arguments 将替换为部署所需的参数, UPDATE|IGNORE 将替换为 UPDATE 以启用自动更新,或替换为 IGNORE 以禁用自动更新。

例如:

aws deploy update-deployment-group --application-name "MyApp" --current-deployment-group-name "MyDG" --region us-east-1 --outdated-instances-strategy IGNORE

有关这些 Amazon CLI 命令的详细信息,请参阅《Amazon CLI 命令参考》。