CodeBuild を使用するパイプラインの作成 (AWS CLI) - AWS CodeBuild

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

CodeBuild を使用するパイプラインの作成 (AWS CLI)

ソースコードの構築 CodeBuild に を使用するパイプラインを作成するには、次の手順に従います。

を使用して、構築されたソースコードをデプロイするか、ソースコードのみをテストするパイプライン AWS CLI を作成するには、「パイプラインの編集 (AWS CLI)」の手順と、AWS CodePipeline 「 ユーザーガイド」のCodePipelineパイプライン構造リファレンスを適応させることができます。

  1. でビルドプロジェクトを作成または識別します CodeBuild。詳細については、「ビルドプロジェクトの作成」を参照してください。

    重要

    ビルドプロジェクトは、ビルド出力アーティファクト設定を定義する必要があります ( CodePipeline は上書きします)。詳細については、「artifacts」で ビルドプロジェクトの作成 (AWS CLI) の説明を参照してください。

  2. このトピックで説明されているIAMエンティティのいずれかに対応する AWS アクセスキーと AWS シークレットアクセスキー AWS CLI で を設定していることを確認します。詳細については、AWS Command Line Interface ユーザーガイドAWS Command Line Interfaceのセットアップを参照してください。

  3. パイプラインの構造を表すJSONフォーマットされたファイルを作成します。ファイルに create-pipeline.json のような名前を付けます。例えば、このJSON形式の構造は、S3 入力バケットを参照するソースアクションと、 を使用するビルドアクションを持つパイプラインを作成します CodeBuild。

    { "pipeline": { "roleArn": "arn:aws:iam::<account-id>:role/<AWS-CodePipeline-service-role-name>", "stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "Source", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "MyApp" } ], "configuration": { "S3Bucket": "<bucket-name>", "S3ObjectKey": "<source-code-file-name.zip>" }, "runOrder": 1 } ] }, { "name": "Build", "actions": [ { "inputArtifacts": [ { "name": "MyApp" } ], "name": "Build", "actionTypeId": { "category": "Build", "owner": "AWS", "version": "1", "provider": "CodeBuild" }, "outputArtifacts": [ { "name": "default" } ], "configuration": { "ProjectName": "<build-project-name>" }, "runOrder": 1 } ] } ], "artifactStore": { "type": "S3", "location": "<CodePipeline-internal-bucket-name>" }, "name": "<my-pipeline-name>", "version": 1 } }

    このJSON形式のデータでは、次のようになります。

    • の値は、前提条件の一部として作成または識別した CodePipeline サービスロールARNの と一致するroleArn必要があります。

    • S3BucketS3ObjectKeyconfiguration の値は、ソースコードの保存先が S3 バケットであることを前提としています。他のソースコードリポジトリタイプの設定については、「 ユーザーガイド」のCodePipeline 「パイプライン構造リファレンス」を参照してください。 AWS CodePipeline

    • の値は、この手順の前半で作成した CodeBuild ビルドプロジェクトの名前ProjectNameです。

    • location の値は、このパイプラインで使用する S3 バケットの名前です。詳細については、 AWS CodePipeline ユーザーガイドの「 のアーティファクトストアとして使用する S3 バケットのポリシーを作成する CodePipeline」を参照してください。

    • name の値は、このパイプラインの名前です。すべてのパイプラインの名前はアカウントに対して一意である必要があります。

    このデータはソースアクションとビルドアクションのみを説明しますが、テスト、ビルド出力アーティファクトのデプロイ、 AWS Lambda 関数の呼び出しなどに関連するアクティビティのアクションを追加できます。詳細については、AWS CodePipeline ユーザーガイドAWS CodePipeline のパイプライン構造リファレンスを参照してください。

  4. JSON ファイルを含むフォルダに切り替え、ファイル名を指定して create-pipeline コマンドを実行します CodePipeline。

    aws codepipeline create-pipeline --cli-input-json file://create-pipeline.json
    注記

    CodeBuild がサポートされている AWS リージョンでパイプラインを作成する必要があります。詳細については、「Amazon Web Services 全般のリファレンス」の「AWS CodeBuild」を参照してください。

    フォーマットJSONされたデータが出力に表示され、パイプライン CodePipeline が作成されます。

  5. パイプラインのステータスに関する情報を取得するには、 コマンドを実行し CodePipeline get-pipeline-state、パイプラインの名前を指定します。

    aws codepipeline get-pipeline-state --name <my-pipeline-name>

    出力で、ビルドが成功したことを確認する情報を探します。省略記号 (...) は、簡潔にするために省略されたデータを表すために使用されます。

    { ... "stageStates": [ ... { "actionStates": [ { "actionName": "CodeBuild", "latestExecution": { "status": "SUCCEEDED", ... }, ... } ] } ] }

    このコマンドをあまりに早く実行すると、ビルドアクションに関する情報が表示されないことがあります。パイプラインがビルドアクションの実行を終了するまで、このコマンドを複数回実行する必要があります。

  6. ビルドが成功したら、次の手順に従ってビルド出力アーティファクトを取得します。で Amazon S3 コンソールを開きますhttps://console.aws.amazon.com/s3/

    注記

    コンソールの関連するビルドの詳細ページで CodeBuildビルドアーティファクトリンクを選択して、ビルド出力アーティファクトを取得することもできます。このページを表示するには、この手順の残りのステップを省略して、「ビルドの詳細の表示 (コンソール)」を参照してください。

  7. バケットのリストで、パイプラインで使用されるバケットを開きます。バケット名は、codepipeline-<region-ID>-<random-number> の形式に従う必要があります。ファイルからバケット名を取得するcreate-pipeline.jsonか、 CodePipeline get-pipeline コマンドを実行してバケット名を取得できます。

    aws codepipeline get-pipeline --name <pipeline-name>

    出力では、pipeline オブジェクトには artifactStore オブジェクトが含まれ、それには、バケットの名前と location の値が含まれます。

  8. パイプラインの名前と一致するフォルダを開きます (例:<pipeline-name>)。

  9. そのフォルダで、default という名前のフォルダを開きます。

  10. ファイルの内容を展開します。そのフォルダに複数のファイルがある場合は、[Last Modified] タイムスタンプが最新であるファイルの内容を抽出します。(システムのZIPユーティリティでファイルを使用できるように、拡張.zip子を指定する必要がある場合があります)。ビルド出力アーティファクトは、展開されたファイルの内容に含まれます。