为部署组配置高级选项 - 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 警报。要查看警报列表,请打开位于 https://console.amazonaws.cn/cloudwatch/ 的 CloudWatch 控制台,然后选择警报

其他选项:

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

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

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

    注意

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

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

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

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

    • 部署失败时回滚。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 命令参考》