为部署组配置高级选项 - AWS CodeDeploy

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

为部署组配置高级选项

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

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

Amazon SNS 通知触发器:您可以将触发器添加到一个 CodeDeploy 部署组,以接收与该部署组中的部署相关的事件的通知。对于您加入到该触发器操作中的 Amazon SNS 主题,通知将发送到已订阅该 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 组创建一个警报。对于AWS对于 Lambda 和 Amazon ECS 部署,您可以在 Lambda 函数中为错误创建警报。

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

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

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

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

    您必须严格按照 CloudWatch 中创建的名称输入 CloudWatch 警报。要查看警报列表,请在以下网址打开 CloudWatch 控制台:https://console.aws.amazon.com/cloudwatch/,然后选择。警报.

其他选项:

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

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

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

    注意

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

有关更多信息,请参阅 在 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 或AWS Command Line Interface(CLI)。

要通过 API 配置过期实例的自动更新,请包括outdatedInstancesStrategy中的请求参数UpdateDeploymentGroup要么CreateDeploymentGroupaction. 有关详细信息,请参阅AWS CodeDeployAPI 参考.

通过配置自动更新AWS CLI使用以下命令之一:

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

或者...

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

... 其中,争论将替换为部署所需的参数,以及更新 | IGNORE被替换为UPDATE启用自动更新,或者IGNORE禁用它们。

例如:

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

有关详细信息AWS CLI命令,请参阅AWS CLI命令参考.