一般性问题
问:什么是 AWS CodePipeline?
AWS CodePipeline 是一种持续交付服务,使您能够针对发布软件所需的步骤实施建模、可视化和自动化。借助 AWS CodePipeline,您可以设计包括构建代码、部署到预生产环境、测试应用程序以及将它发布到生产环境在内的整个发布流程。每次代码发生更改时,AWS CodePipeline 就会根据所定义的工作流程构建、测试并部署您的应用程序。您可以将合作伙伴工具和自己的自定义工具集成到发布流程的任何阶段,以形成一个端到端的持续交付解决方案。
问:为何我应该使用 AWS CodePipeline?
通过实现构建、测试和发布流程的自动化,AWS CodePipeline 让您能够针对所有新更改运行一系列一致的质量检查,从而提高软件更新的速度和质量。
问:什么是持续交付?
持续交付是一种软件开发实践。通过持续交付,系统可以自动构建和测试代码更改,并为将其发布到生产环境做好准备。AWS CodePipeline 是一项可帮助您实施持续交付的服务。在
此处了解有关持续交付的更多信息。
概念
下图表示了本节中讨论的概念。
问:什么是管道?
管道是一个表示软件更改如何经历一个发布过程的工作流程结构。您通过一系列阶段和操作定义该工作流程。
问:什么是修订?
修订指针对为管道定义的源位置做出的更改。它可以包括源代码、构建输出、配置或数据。管道可以同时流通多个修订版本。
问:阶段是什么?
阶段指一个或多个操作的组。管道可以具有两个或更多个阶段。
问:什么是操作?
操作指对修订版执行的任务。管道操作以特定顺序、以串行或并行方式发生,具体在阶段的配置中确定。有关更多信息,请参阅
编辑管道和
AWS CodePipeline 中的操作架构要求。
问:什么是项目?
运行操作时,它作用于一个文件或文件集。这些文件称为项目。这些项目可以由管道中的后期操作进行处理。例如,源操作将该代码的最新版本输出为源项目,而构建操作将读入它。编译后,构建操作将构建输出上传为另一个项目,后面的部署操作将读取该项目。
问:什么是过渡?
管道中的阶段由过渡进行连接,由 AWS CodePipeline 控制台中的箭头表示。在某个阶段中成功完成操作的修订版将自动发送到下一个阶段,如过渡箭头所示。过渡可以在各个阶段之间禁用或启用。
使用 AWS CodePipeline
问:如何开始使用 AWS CodePipeline?
您可以登录到
AWS Management Console,创建管道,然后开始使用该服务。如果您需要初步了解 AWS CodePipeline,请参阅
入门,其中含有分步教程。
问:如何启动管道?
创建管道后,它将自动触发运行以发布您的源代码的最新版本。自此,每次您对源位置作出更改时就会触发新运行。此外,您可以使用 管道控制台中的发布更改按钮通过管道重新运行最新的修订版。
创建管道后,它将自动触发运行以发布您的源代码的最新版本。自此,每次您对源位置作出更改时就会触发新运行。此外,您可以使用 管道控制台中的发布更改按钮通过管道重新运行最新的修订版。
问:如何停止管道?
要停止管道,您可以禁用从一个阶段到另一个阶段的过渡。一旦禁用,您的管道将继续通过操作运行修订版,但不会通过已禁用的过渡将修订版推进到随后阶段。有关更多详细信息,请参阅“在 AWS CodePipeline 中禁用或启用过渡”。
要停止管道,您可以禁用从一个阶段到另一个阶段的过渡。一旦禁用,您的管道将继续通过操作运行修订版,但不会通过已禁用的过渡将修订版推进到随后阶段。有关更多详细信息,请参阅“在 AWS CodePipeline 中禁用或启用过渡”。
问:能否编辑现有管道?
可以。您可以使用 AWS CodePipeline 控制台或 AWS CLI 添加或删除管道中的阶段,以及添加、编辑或删除某个阶段中的操作。
可以。您可以使用 AWS CodePipeline 控制台或 AWS CLI 添加或删除管道中的阶段,以及添加、编辑或删除某个阶段中的操作。
问:能否创建现有管道的副本?
可以。您可以使用 get-pipeline AWS CLI 命令来获取现有管道的 JSON 结构。然后,您可以使用 JSON 和 create-pipeline AWS CLI 命令来创建与现有管道具有相同结构的新管道。
可以。您可以使用 get-pipeline AWS CLI 命令来获取现有管道的 JSON 结构。然后,您可以使用 JSON 和 create-pipeline AWS CLI 命令来创建与现有管道具有相同结构的新管道。
问:操作是否可以并行运行?
可以。对于任何给定阶段,您都可以配置并行运行一个或多个操作。
可以。对于任何给定阶段,您都可以配置并行运行一个或多个操作。
问:我该如何练习持续交付无服务器应用程序和 AWS Lambda 函数?
将 AWS Serverless Application Model 模板及其相应文件添加到源代码存储库中后,即可发布无服务器应用程序的更新。您可以在管道中使用 AWS CodeBuild 将代码打包,以便进行部署。接着,您可以使用 AWS CloudFormation 操作创建一个 更改集,然后部署您的无服务器应用程序。您可以选择通过手动批准或自动测试等附加步骤来扩展工作流。单击 此处了解更多信息。
将 AWS Serverless Application Model 模板及其相应文件添加到源代码存储库中后,即可发布无服务器应用程序的更新。您可以在管道中使用 AWS CodeBuild 将代码打包,以便进行部署。接着,您可以使用 AWS CloudFormation 操作创建一个 更改集,然后部署您的无服务器应用程序。您可以选择通过手动批准或自动测试等附加步骤来扩展工作流。单击 此处了解更多信息。
问:我该如何通过发布工作流流程预置和管理 AWS 资源?
借助 AWS CodePipeline 和 AWS CloudFormation,您可以使用持续交付来自动构建和测试对 AWS CloudFormation 堆栈所做的更改,然后再将它们提升到生产堆栈。通过此发布流程,您可以快速可靠地对 AWS 基础设施进行更改。您可以通过手动批准、测试操作或调用 AWS Lambda 操作等附加操作来扩展工作流。有关更多信息,请参阅 通过 AWS CloudFormation 实现持续交付页面。
借助 AWS CodePipeline 和 AWS CloudFormation,您可以使用持续交付来自动构建和测试对 AWS CloudFormation 堆栈所做的更改,然后再将它们提升到生产堆栈。通过此发布流程,您可以快速可靠地对 AWS 基础设施进行更改。您可以通过手动批准、测试操作或调用 AWS Lambda 操作等附加操作来扩展工作流。有关更多信息,请参阅 通过 AWS CloudFormation 实现持续交付页面。
问:AWS CodePipeline 具有哪些产品集成?
AWS CodePipeline 集成了多项 AWS 服务,例如 AWS CodeCommit、Amazon S3、AWS CodeBuild、AWS CodeDeploy、AWS Elastic Beanstalk、AWS CloudFormation、AWS OpsWorks、Amazon ECS 和 AWS Lambda。此外,AWS CodePipeline 还集成有各种合作伙伴工具。有关更多信息,请参阅 产品集成页面。最后,您可以编写自己的自定义操作并将任何现有工具与 CodePipeline 集成。有关自定义操作的更多详细信息,请参阅 在 AWS CodePipeline 中创建并添加自定义操作页面。
AWS CodePipeline 集成了多项 AWS 服务,例如 AWS CodeCommit、Amazon S3、AWS CodeBuild、AWS CodeDeploy、AWS Elastic Beanstalk、AWS CloudFormation、AWS OpsWorks、Amazon ECS 和 AWS Lambda。此外,AWS CodePipeline 还集成有各种合作伙伴工具。有关更多信息,请参阅 产品集成页面。最后,您可以编写自己的自定义操作并将任何现有工具与 CodePipeline 集成。有关自定义操作的更多详细信息,请参阅 在 AWS CodePipeline 中创建并添加自定义操作页面。
问:我能否获取 AWS CodePipeline API 调用的历史记录?
可以。要获得出于安全性分析和操作故障排除目的而从您的账户发起的 AWS CodePipeline API 调用的历史记录,您只需在 AWS 管理控制台中打开 AWS CloudTrail 即可。有关更多信息,请参阅 通过使用 AWS CloudTrail 记录 AWS CodePipeline API 调用。
可以。要获得出于安全性分析和操作故障排除目的而从您的账户发起的 AWS CodePipeline API 调用的历史记录,您只需在 AWS 管理控制台中打开 AWS CloudTrail 即可。有关更多信息,请参阅 通过使用 AWS CloudTrail 记录 AWS CodePipeline API 调用。
问:使用 AWS CodePipeline 时有哪些服务限制?
有关服务限制的更多信息,请参阅 限制。
有关服务限制的更多信息,请参阅 限制。
问:如何接收 AWS CodePipeline 中各种事件的通知或警报?
您可以针对影响您的管道的事件创建通知。通知将以 Amazon SNS 通知的形式出现。每个通知将包括状态消息以及指向其事件生成该通知的资源的链接。通知没有额外成本;但您可能需要为通知使用的其他 AWS 服务付费,例如 Amazon SNS。要了解如何开始使用通知,请参阅 通知用户指南。此外,使用 AWS Chatbot 的客户可以将通知配置为发送到其 Slack 通道或 Amazon Chime 聊天室。有关更多详情,请单击 此处。
您可以针对影响您的管道的事件创建通知。通知将以 Amazon SNS 通知的形式出现。每个通知将包括状态消息以及指向其事件生成该通知的资源的链接。通知没有额外成本;但您可能需要为通知使用的其他 AWS 服务付费,例如 Amazon SNS。要了解如何开始使用通知,请参阅 通知用户指南。此外,使用 AWS Chatbot 的客户可以将通知配置为发送到其 Slack 通道或 Amazon Chime 聊天室。有关更多详情,请单击 此处。
合作伙伴
问:如果要与 AWS CodePipeline 集成,我需要做什么?
如果您有兴趣成为将您的开发人员服务与 AWS CodePipeline 集成的 AWS 合作伙伴,请联系 codepipeline-request@amazon.com。
安全性
问:是否可以使用 AWS Identity and Access Management (IAM) 管理对 AWS CodePipeline 的访问权限?
可以。AWS CodePipeline 支持资源级权限。您可以在管道上指定哪个用户可以执行什么操作。例如,如果您希望用户看到管道状态而不能修改管道,则您可以向他们提供对管道的只读访问权限。您还可以设置针对管道内的任何阶段或操作的权限。有关将 IAM 用于 AWS CodePipeline 的更多信息,请参阅访问权限参考。
问:可以让一个 AWS 账户中的 IAM 用户访问另一个 AWS 账户中的管道吗?
可以。您可以在拥有该管道的 AWS 账户中创建 IAM 角色以将对该管道和任何相关资源的访问权限委派到另一个账户中的 IAM 用户。有关启用这种跨账户访问的演练,请参阅演练:授权使用 IAM 角色在您拥有的多个 AWS 账户间进行跨账户访问和对管道配置跨账户访问。
区域
问:AWS CodePipeline 支持哪些区域?
请参阅区域性产品和服务,了解 CodePipeline 在不同区域的具体提供情况。
账单
问:AWS CodePipeline 如何计费?
有关 AWS CodePipeline 的费用详情,请参阅定价页面。
了解有关 AWS CodePipeline 定价的更多信息