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

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

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

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

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

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

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

    注記

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

  • の コマンドアクションは CodeBuild リソース CodePipeline を使用するため、アクションによって実行されるビルドは、 のアカウントのビルド制限に属性付けられます CodeBuild。コマンドアクションによって実行されるビルドは、そのアカウントに設定されている同時ビルド制限にカウントされます。

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

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

    注記

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

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

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

  • このアクションでは、 CodePipeline はパイプラインサービスロールを引き受け、そのロールを使用して実行時にリソースへのアクセスを許可します。アクセス許可がアクションレベルまでスコープダウンされるように、サービスロールを設定することをお勧めします。

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

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

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

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

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

/aws/codepipeline/MyPipelineName

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

  • ログ:CreateLogGroup

  • ログ:CreateLogStream

  • ログ: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:*" }

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

アクションタイプ

  • カテゴリ:Compute

  • 所有者: AWS

  • プロバイダー: Commands

  • バージョン: 1

設定パラメータ

コマンド

必須:はい

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

注記

マルチライン形式はサポートされておらず、エラーメッセージが発生します。コマンドフィールドにコマンドを入力するには、1 行形式を使用する必要があります。

以下の詳細は、 コマンドアクションに使用されるデフォルトのコンピューティングを提供します。詳細については、「 ユーザーガイド」の「ビルド環境コンピューティングモードとタイプのリファレンス 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" }

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