与其他 AWS 服务集成 - AWS CodeDeploy

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

与其他 AWS 服务集成

CodeDeploy 与下列 AWS 服务集成:

Amazon CloudWatch ()

Amazon CloudWatch 是一项针对 AWS 云资源以及您在 AWS 运行的应用程序的监控服务。Amazon CloudWatch 可用于收集和跟踪指标,收集和监控日志文件以及设置警报。CodeDeploy 支持以下 CloudWatch 工具:

  • CloudWatch 警报:用于监控您的部署,并在指定的监控指标超出或低于您在 CloudWatch 警报规则中指定的阈值时停止部署。要使用警报监控,请先在 CloudWatch 中设置警报,然后在 CodeDeploy 中将其添加到当警报激活时应停止部署的应用程序或部署组中。

    了解更多:

  • Amazon CloudWatch Events:用于在您的 CodeDeploy 操作中检测实例或部署状态的更改并采取相应的操作。然后 CloudWatch Events 将在部署或实例进入您在规则中指定的状态时,根据您创建的规则调用一个或多个目标操作。

    了解更多:

  • Amazon CloudWatch Logs:用于监控由 CodeDeploy 代理创建的三种类型的日志,而不必逐一登录到实例。

    了解更多:

Amazon EC2 Auto Scaling

CodeDeploy 支持 Amazon EC2 Auto Scaling。此 AWS 服务可以根据您指定的标准自动启动 Amazon EC2 实例,例如:

  • 超出指定的 CPU 利用率的限制。

  • 磁盘读取或写入数。

  • 在指定时间间隔内的入站或出站网络流量。

您可根据需要扩展一组 Amazon EC2 实例,然后使用 CodeDeploy 自动将应用程序修订部署到这些实例。当不再需要这些 Amazon EC2 实例时,Amazon EC2 Auto Scaling 将终止它们。

了解更多:

Amazon Elastic Container Service

您可以使用 CodeDeploy 将 Amazon ECS 容器化应用程序部署为任务集。CodeDeploy 通过安装应用程序的更新版本作为新的替换任务集来执行蓝绿部署。CodeDeploy 将生产流量从原始应用程序任务集重新路由到替换任务集。成功部署后,将会终止原始任务集。有关 Amazon ECS 的更多信息,请参阅 Amazon Elastic Container Service

您可以通过选择 Canary、线性或一次性部署配置,管理部署过程中流量转移到更新后的任务集的方式。有关 Amazon ECS 部署的更多信息,请参阅 Amazon ECS 计算平台上的部署

AWS CloudTrail

CodeDeploy 与 AWS CloudTrail 集成。该服务在您的 AWS 账户中捕获由 CodeDeploy 或代表它发出的 API 调用,并将日志文件传输到您指定的 Amazon S3 存储桶。CloudTrail 可捕获来自 CodeDeploy 控制台、通过 AWS CLI 发送的 CodeDeploy 命令或直接来自 CodeDeploy API 的 API 调用。通过使用 CloudTrail 收集的信息,您可以确定以下内容:

  • 向 CodeDeploy 提出了什么请求。

  • 已从中发出请求的源 IP 地址。

  • 谁发出了请求。

  • 发出请求的时间。

了解更多:

AWS Cloud9

AWS Cloud9 是一个在线的、基于云的集成开发环境(IDE),可用于编写、运行、调试和部署代码(只需使用已连接 Internet 的计算机中的浏览器)。AWS Cloud9 包含代码编辑器、调试程序、终端和基本工具(如 AWS CLI 和 Git)。

  • 您可以使用 AWS Cloud9 IDE 运行、调试和构建 GitHub 存储库中的代码。可以使用 IDE 环境窗口和编辑器选项卡查看、更改和保存代码。准备就绪后,可以在 AWS Cloud9 终端会话中使用 Git 将代码更改推送到您的 GitHub 存储库,然后使用 AWS CodeDeploy 来部署更新。有关将 AWS Cloud9 与 GitHub 结合使用的更多信息,请参阅适用于 AWS Cloud9 的 GitHub 示例

  • 可使用 AWS Cloud9 IDE 更新 AWS Lambda 函数。然后,可以使用 AWS CodeDeploy 创建一个部署,该部署将流量转移到 AWS Lambda 函数的新版本。有关更多信息,请参阅在 AWS Cloud9 集成式开发环境(IDE)中使用 AWS Lambda 函数

有关 AWS Cloud9 的更多信息,请参阅什么是 AWS Cloud9AWS Cloud9 入门

AWS CodePipeline

AWS CodePipeline 是一种持续交付服务,可用于建模、可视化和自动执行在持续交付过程中发布软件所需的步骤。可以使用 AWS CodePipeline 定义您自己的发布过程,以便服务在每次发生代码更改时构建、测试和部署代码。例如,一个应用程序可以有三个部署组:Beta、Gamma 和 Prod。您可以设置管道,以便每次源代码发生更改时,将更新逐一部署到每个部署组。

您可以将 AWS CodePipeline 配置为使用 CodeDeploy 来:

  • 将代码部署到 Amazon EC2 实例和/或本地实例。

  • 无服务器 AWS Lambda 函数版本。

您可以创建 CodeDeploy 应用程序、部署和部署组,以便在创建管道之前的某个阶段的部署操作中使用,也可以在创建管道向导中使用。

了解更多:

AWS 无服务器应用程序模型

AWS 无服务器应用程序模型(AWS SAM)是定义无服务器应用程序的模型。它能够扩展 CloudFormation,以提供简化方式来定义无服务器应用程序所需的 AWS Lambda 函数、Amazon API Gateway API 和 Amazon DynamoDB 表。如果您已使用 AWS SAM,则可以添加部署首选项,以便开始使用 CodeDeploy 管理 AWS Lambda 应用程序部署期间的流量转移方式。

有关更多信息,请参阅 AWS 无服务器应用程序模型

Elastic Load Balancing

CodeDeploy 支持 Elastic Load Balancing,后者是一项可将传入的应用程序流量自动分配到多个 Amazon EC2 实例的服务。

对于 CodeDeploy 部署,负载均衡器还能阻止流量路由到未就绪的实例,目前正在部署的实例,或环境不再需要的实例。

了解更多: