コマンドアクションリファレンス - AWS CodePipeline

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

コマンドアクションリファレンス

コマンドアクションを使用すると、仮想コンピューティングインスタンスでシェルコマンドを実行できます。アクションを実行すると、アクション設定で指定したコマンドが別のコンテナで実行されます。CodeBuild アクションへの入力アーティファクトとして指定されたすべてのアーティファクトは、コマンドを実行するコンテナ内で使用できます。このアクションでは、CodeBuild プロジェクトを最初に作成せずにコマンドを指定できます。詳細については、「AWS CodePipeline API リファレンス」の「ActionDeclaration」と「OutputArtifact」を参照してください。

重要

このアクションではCodePipeline マネージド CodeBuild コンピューティングを使用して、ビルド環境でコマンドを実行します。コマンドアクションを実行すると、 AWS CodeBuildで別途料金が発生します。

注記

コマンドアクションは、V2 タイプのパイプラインでのみ使用できます。

コマンドアクションに関する考慮事項

コマンドアクションには以下の考慮事項が適用されます。

  • コマンドアクションは CodeBuild アクションと同様の CodeBuild リソースを使用しますが、ビルドプロジェクトを関連付けたり作成したりする必要はなく、仮想コンピューティングインスタンス内でシェル環境コマンドが許可されます。

    注記

    コマンドアクションを実行すると、 AWS CodeBuildで別途料金が発生します。

  • CodePipeline のコマンドアクションは CodeBuild リソースを使用するため、アクションで実行するビルドには、アカウントに対する CodeBuild のビルド制限が適用されます。コマンドアクションで実行したビルドは、アカウントに設定されている同時ビルド制限にカウントされます。

  • コマンドアクションを使用したビルドのタイムアウトは、CodeBuild ビルドに基づいて 55 分です。

  • コンピューティングインスタンスは、CodeBuild の分離されたビルド環境を使用します。

    注記

    分離されたビルド環境はアカウントレベルで使用されるため、インスタンスは別のパイプライン実行に再利用される場合があります。

  • 複数行形式を除くすべての形式がサポートされています。コマンドを入力するときは、単一行形式を使用する必要があります。

  • コマンドアクションは、クロスアカウントアクションやクロスリージョンアクションではサポートされていません。

  • このアクションでは、CodePipeline がパイプラインサービスロールを引き受け、このロールを使用してランタイムにリソースへのアクセスを許可します。アクセス許可の範囲をアクションレベルまで絞り込むように、サービスロールを設定することをお勧めします。

  • CodePipeline サービスロールに追加されるアクセス許可の詳細については、「CodePipeline サービスロールにアクセス許可を追加する」を参照してください。

  • コンソールでログを表示するために必要なアクセス許可の詳細については、「CodePipeline コンソールでコンピューティングログを表示するために必要なアクセス許可」を参照してください。

  • CodePipeline の他のアクションとは異なり、アクション設定ではフィールドを設定せず、アクション設定の外部でアクション設定フィールドを設定します。

サービスロールのポリシーのアクセス許可

CodePipeline は、アクションを実行するときに、次のようにパイプライン名を使用してロググループを作成します。これにより、パイプライン名を使用してアクセス許可の範囲をリソースのログ記録に絞り込むことができます。

/aws/codepipeline/MyPipelineName

既存のサービスロールを使用している場合、コマンドアクションを使用するには、サービスロールに以下のアクセス許可を追加する必要があります。

  • logs:CreateLogGroup

  • logs:CreateLogStream

  • logs:PutLogEvents

サービスロールポリシーステートメントで、次の例に示すように、アクセス許可の範囲をパイプラインレベルに絞り込みます。

{ "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:YOUR_AWS_ACCOUNT_ID:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME", "arn:aws:logs:*:YOUR_AWS_ACCOUNT_ID:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME:*" ] }

アクションの詳細ダイアログページを使用してコンソールでログを表示するには、ログを表示するアクセス許可をコンソールロールに追加する必要があります。詳細については、「CodePipeline コンソールでコンピューティングログを表示するために必要なアクセス許可」でコンソールのアクセス許可ポリシーの例を参照してください。

アクションタイプ

  • カテゴリ:Compute

  • 所有者: AWS

  • プロバイダー: Commands

  • バージョン: 1

設定パラメータ

コマンド

必須: はい

Commands アクションで実行するシェルコマンドを指定できます。コンソールでは、各コマンドを個別の行に入力します。CLI では、コマンドを個別の文字列として入力します。

注記

複数行形式はサポートされていないため、エラーメッセージが表示されます。[コマンド] フィールドにコマンドを入力するには、単一行形式を使用する必要があります。

以下の詳細により、コマンドアクションに使用するデフォルトのコンピューティングを指定します。詳細については、「CodeBuild ユーザーガイド」の「ビルド環境のコンピューティングモードおよびタイプ」リファレンスを参照してください。

  • CodeBuild イメージ: aws/codebuild/amazonlinux2-x86_64-standard:5.0

  • コンピューティングタイプ: Linux Small

  • 環境の computeType 値: BUILD_GENERAL1_SMALL

  • 環境タイプの値: LINUX_CONTAINER

outputVariables

必須: いいえ

エクスポートする環境内の変数の名前を指定します。CodeBuild 環境変数のリファレンスについては、「CodeBuild ユーザーガイド」の「ビルド環境の環境変数」を参照してください。

ファイル

必須: いいえ

エクスポートするファイルは、アクションの出力アーティファクトとして指定できます。

サポートされているファイル形式は、CodeBuild ファイルパターンと同じです。例えば、すべてのファイルの場合は「**/」と入力します。詳細については、「CodeBuild ユーザーガイド」の「CodeBuild のビルド仕様リファレンス」を参照してください。

コマンドアクションを使用した新しいパイプラインの [アクションを編集] ページ

入力アーティファクト

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

出力アーティファクト

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

アクションの宣言 (例)

YAML
name: Commands_action actionTypeId: category: Compute owner: AWS provider: Commands version: '1' runOrder: 1 configuration: {} commands: - ls - echo hello - 'echo pipeline Execution Id is #{codepipeline.PipelineExecutionId}' outputArtifacts: - name: BuildArtifact files: - **/ inputArtifacts: - name: SourceArtifact outputVariables: - AWS_DEFAULT_REGION region: us-east-1 namespace: compute
JSON
{ "name": "Commands_action", "actionTypeId": { "category": "Compute", "owner": "AWS", "provider": "Commands", "version": "1" }, "runOrder": 1, "configuration": {}, "commands": [ "ls", "echo hello", "echo pipeline Execution Id is #{codepipeline.PipelineExecutionId}" ], "outputArtifacts": [ { "name": "BuildArtifact", "files": [ "**/" ] } ], "inputArtifacts": [ { "name": "SourceArtifact" } ], "outputVariables": [ "AWS_DEFAULT_REGION" ], "region": "us-east-1", "namespace": "compute" }

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