本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
CodeCommit 源操作参考
在配置的 CodeCommit 存储库和分支上进行新提交时启动管道。
如果您使用控制台创建或编辑管道,则 CodePipeline 会创建一个 EventBridge 规则,该规则将在存储库中发生更改时启动您的管道。
注意
对于 Amazon ECR、Amazon S3 或 CodeCommit 源,您还可以使用输入转换条目创建源替换,以便revisionValue在 EventBridge 管道事件中使用 in,其中,源事件源自对象密钥、提交或映像 ID 的源事件变量。revisionValue有关更多信息,请参阅亚马逊 ECR 源操作和 EventBridge 资源、连接到启用事件源的 Amazon S3 源操作或CodeCommit 源操作和 EventBridge下的流程中包含的输入转换条目的可选步骤。
在通过 CodeCommit 操作连接管道之前,必须已经创建了 CodeCommit 存储库。
检测到代码更改后,您可以使用以下选项将代码传递给后续操作:
-
默认 — 将 CodeCommit 源操作配置为输出带有提交浅层副本的 ZIP 文件。
-
完整克隆:配置源操作,使之输出对仓库的 Git URL 引用,以供后续操作使用。
当前,只有下游 CodeBuild 操作才能使用 Git URL 引用来克隆存储库和关联的 Git 元数据。尝试将 Git URL 引用传递给非CodeBuild 操作会导致错误。
操作类型
-
类别:
Source -
拥有者:
AWS -
提供方:
CodeCommit -
版本:
1
配置参数
- RepositoryName
-
是否必需:是
要在其中检测源更改的存储库的名称。
- BranchName
-
是否必需:是
要在其中检测源更改的分支的名称。
- PollForSourceChanges
-
必需:否
PollForSourceChanges控制是否 CodePipeline 对 CodeCommit存储库进行源代码更改。我们建议您改用 CloudWatch 事件来检测源代码更改。有关配置 CloudWatch 事件的更多信息,请参阅迁移轮询管道(CodeCommit 源)(CLI)或迁移投票管道(CodeCommit 源)(CloudFormation 模板)。重要
如果您打算配置 CloudWatch 事件规则,则必须将设置为
PollForSourceChangesfalse以避免重复执行管道。此参数的有效值:
-
true:如果已设置,则 CodePipeline 轮询您的存储库是否有源代码更改。注意
如果省略
PollForSourceChanges,则 CodePipeline 默认对存储库进行源代码更改。如果包括PollForSourceChanges并将其设置为true,则此行为相同。 -
false:如果已设置,则 CodePipeline 不轮询您的存储库是否有源代码更改。如果您打算配置 CloudWatch 事件规则以检测源代码更改,请使用此设置。
-
- OutputArtifactFormat
-
必需:否
输出构件格式。值可以是
CODEBUILD_CLONE_REF或CODE_ZIP。如果未指定,则默认为CODE_ZIP。重要
CODEBUILD_CLONE_REF选项只能由 CodeBuild 下游操作使用。如果选择此选项,则需要向您的 CodeBuild 服务角色添加
codecommit:GitPull权限,如所示为 CodeCommit 源操作添加 CodeBuild GitClone 权限。您还需要向您的 CodePipeline服务角色添加codecommit:GetRepository权限,如所示为 CodePipeline 服务角色添加权限。如需查看教程以了解如何使用完整克隆选项,请参阅教程:使用带有 CodeCommit 管道源的完整克隆。
输入构件
-
构件数:
0 -
描述:输入构件不适用于此操作类型。
输出构件
-
构件数:
1 -
描述:此操作的输出构件是一个 ZIP 文件,其中包含在提交时,指定作为管道执行的源修订的已配置存储库和分支的内容。从存储库生成的构件是 CodeCommit 操作的输出对象。源代码提交 ID 在中 CodePipeline 显示为触发的管道执行的源版本。
输出变量
配置后,此操作会生成变量,该变量可由管道中下游操作的操作配置引用。此操作生成的变量可视为输出变量,即使操作没有命名空间也是如此。您可以使用命名空间配置操作,以使这些变量可用于下游操作的配置。
有关更多信息,请参阅 变量参考。
- CommitId
-
触发管道执行 CodeCommit 的提交 ID。提交 ID 是提交的完整 SHA。
- CommitMessage
-
与触发管道执行的提交相关联的描述消息(如果有)。
- RepositoryName
-
触发管道的提交所在 CodeCommit 存储库的名称。
- BranchName
-
进行源代码更改的 CodeCommit 存储库分支的名称。
- AuthorDate
-
授权提交的日期,采用时间戳格式。
- CommitterDate
-
进行提交的日期,采用时间戳格式。
服务角色权限: CodeCommit 操作
CodePipeline 运行操作时, CodePipeline 服务角色策略需要以下权限,这些权限适当地限定为管道资源 ARN,以便以最低权限保持访问权限。例如,将以下内容添加到策略语句中:
操作配置示例
默认输出构件格式的示例
完整克隆输出构件格式的示例
另请参阅
下列相关资源在您使用此操作的过程中会有所帮助。
-
教程:创建简单管道(CodeCommit 存储库)— 本教程提供了示例 AppSpec 文件以及示例 CodeDeploy 应用程序和部署组。使用本教程使用可部署到 Amazon EC2 实例的 CodeCommit 源创建管道。