CodeCommit ソースアクションリファレンス - AWS CodePipeline

CodeCommit ソースアクションリファレンス

定された CodeCommit リポジトリとブランチで新しいコミットが行われると、パイプラインがスタートします。

コンソールを使用してパイプラインを作成または編集する場合、CodePipeline はリポジトリで変更が生じた場合にパイプラインを開始する EventBridge ルールを作成します。

注記

Amazon ECR、Amazon S3、または CodeCommit ソースの場合、入力変換エントリを使用してソースオーバーライドを作成し、パイプラインイベントの EventBridge で revisionValue を使用することもできます。ここで、revisionValue はオブジェクトキー、コミット、またはイメージ ID のソースイベント変数から派生します。詳細については、Amazon ECR ソースアクションと EventBridge リソースイベントに対して有効にしたソースを使用して Amazon S3 ソースアクションに接続する、または CodeCommit ソースアクションと EventBridge の手順に含まれる入力変換エントリのオプション手順を参照してください。

CodeCommit アクションを使用してパイプラインを接続する前に、CodeCommit リポジトリを作成しておく必要があります。

コードの変更が検出された後は、後続のアクションにコードを渡すための次のオプションがあります。

  • [デフォルト] — CodeCommit ソースアクションが、コミットの浅いコピーを含む ZIP ファイルを出力するように設定します。

  • [フルクローン] — ソースアクションが、後続のアクションのためにリポジトリへの Git URL リファレンスを出力するように設定します。

    現在、Git URL リファレンスは、リポジトリと関連する Git メタデータをクローンするためにダウンストリーム CodeBuild アクションでのみ使用できます。Git URL リファレンスを CodeBuild 以外のアクションに渡そうとすると、エラーが発生します。

アクションタイプ

  • カテゴリ: Source

  • 所有者: AWS

  • プロバイダー: CodeCommit

  • バージョン: 1

設定パラメータ

RepositoryName

必須: はい

ソースの変更が検出されるリポジトリの名前。

BranchName

必須: はい

ソースの変更が検出されるブランチの名前。

PollForSourceChanges

必須: いいえ

PollForSourceChanges は、CodePipeline がソースの変更について CodeCommit リポジトリをポーリングするかどうかを制御します。代わりに CloudWatch Events を使用してソースの変更を検出することをお勧めします。CloudWatch Events の構成については、ポーリングパイプラインを移行する (CodeCommit ソース) (CLI) または ポーリングパイプラインを移行する (CodeCommit ソース) (CloudFormation テンプレート) を参照してください。

重要

CloudWatch Events ルールを設定する場合、パイプラインの重複実行を避けるために PollForSourceChangesfalse に設定する必要があります。

このパラメータの有効な値:

  • true: 設定されている場合、CodePipeline はソースの変更についてポーリングします。

    注記

    PollForSourceChanges を省略した場合、CodePipeline はデフォルトでソースの変更についてリポジトリをポーリングします。この動作は、PollForSourceChanges が含まれており、true に設定されている場合と同じです。

  • false: 設定されている場合、CodePipeline は、ソースの変更についてリポジトリをポーリングしません。CloudWatch Events ルールを設定してソース変更を検出する場合は、この設定を使用します。

OutputArtifactFormat

必須: いいえ

出力 アーティファクト フォーマット。値は CODEBUILD_CLONE_REF または CODE_ZIP のいずれかです。指定しない場合、デフォルトの CODE_ZIP が使用されます。

重要

CODEBUILD_CLONE_REF のオプションは、CodeBuild のダウンストリームアクションでのみ使用可能です。

このオプションを選択する場合、codecommit:GitPull に示すように、CodeBuild サービスロールに CodeBuild GitClone のアクセス権限を CodeCommit ソースアクションに追加します。 許可を追加する必要があります。また、codecommit:GetRepository に示すように、CodePipeline のサービス・ロールに CodePipeline サービスロールにアクセス許可を追加する 許可を追加する必要もあります。[フルクローン] オプションを使用する方法を示すチュートリアルについては、チュートリアル: CodeCommit パイプラインソースでフルクローンを使用する を参照してください。

入力アーティファクト

  • アーティファクトの数: 0

  • 説明: 入力アーティファクトは、このアクションタイプには適用されません。

出力アーティファクト

  • アーティファクトの数: 1

  • 説明: このアクションの出力アーティファクトは、パイプライン実行のソースリビジョンとして指定されたコミットで設定されたリポジトリとブランチの内容を含む ZIP ファイルです。リポジトリから生成されるアーティファクトは、CodeCommit アクションの出力アーティファクトです。ソースコードのコミット ID は、パイプライン実行のトリガーとなるソースリビジョンとして、CodePipeline に表示されます。

出力変数

このアクションを設定すると、パイプライン内のダウンストリームアクションのアクション設定によって参照できる変数が生成されます。このアクションは、アクションに名前空間がない場合でも、出力変数として表示できる変数を生成します。名前空間を使用してアクションを設定し、これらの変数をダウンストリームアクションの設定で使用できるようにします。

詳細については、「変数リファレンス」を参照してください。

CommitId

パイプライン実行のトリガーとなった CodeCommit のコミット ID。コミット ID は、コミットの完全な SHA です。

CommitMessage

パイプライン実行をトリガーしたコミットに関連付けられた説明メッセージ (存在する場合)。

RepositoryName

パイプラインのトリガーとなるコミットが行われた CodeCommit リポジトリの名前。

BranchName

ソース変更が行われた CodeCommit リポジトリのブランチ名。

AuthorDate

コミットが認証された日付 (タイムスタンプ形式)。

CommitterDate

コミットがコミットされた日付 (タイムスタンプ形式)。

サービスロールのアクセス許可: CodeCommit アクション

CodePipeline がアクションを実行する際、CodePipeline サービスロールポリシーには、最小特権でアクセスを維持するために、パイプラインリソース ARN に適切にスコープダウンされた次のアクセス許可が必要です。例えば、以下をポリシーステートメントに追加します。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codecommit:CancelUploadArchive", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetRepository", "codecommit:GetUploadArchiveStatus", "codecommit:UploadArchive" ], "Resource": [ "arn:aws:codecommit:*:111122223333:[[codecommitRepostories]]" ] } ] }

アクション設定の例

デフォルトの出力アーティファクト フォーマットの例

YAML
name: Source actionTypeId: category: Source owner: AWS provider: CodeCommit version: '1' runOrder: 1 configuration: BranchName: main PollForSourceChanges: 'false' RepositoryName: MyWebsite outputArtifacts: - name: Artifact_MyWebsiteStack inputArtifacts: [] region: us-west-2 namespace: SourceVariables
JSON
{ "name": "Source", "actionTypeId": { "category": "Source", "owner": "AWS", "provider": "CodeCommit", "version": "1" }, "runOrder": 1, "configuration": { "BranchName": "main", "PollForSourceChanges": "false", "RepositoryName": "MyWebsite" }, "outputArtifacts": [ { "name": "Artifact_MyWebsiteStack" } ], "inputArtifacts": [], "region": "us-west-2", "namespace": "SourceVariables" }

フル クローン出力アーティファクト フォーマットの例

YAML
name: Source actionTypeId: category: Source owner: AWS provider: CodeCommit version: '1' runOrder: 1 configuration: BranchName: main OutputArtifactFormat: CODEBUILD_CLONE_REF PollForSourceChanges: 'false' RepositoryName: MyWebsite outputArtifacts: - name: SourceArtifact inputArtifacts: [] region: us-west-2 namespace: SourceVariables
JSON
{ "name": "Source", "actionTypeId": { "category": "Source", "owner": "AWS", "provider": "CodeCommit", "version": "1" }, "runOrder": 1, "configuration": { "BranchName": "main", "OutputArtifactFormat": "CODEBUILD_CLONE_REF", "PollForSourceChanges": "false", "RepositoryName": "MyWebsite" }, "outputArtifacts": [ { "name": "SourceArtifact" } ], "inputArtifacts": [], "region": "us-west-2", "namespace": "SourceVariables" }

このアクションを利用する際に役立つ関連リソースは以下の通りです。