の開始方法 CodeBuild - AWS CodeBuild

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

の開始方法 CodeBuild

以下のチュートリアルでは、 AWS CodeBuild を使用して、サンプルソースコード入力ファイルのコレクションをソースコードのデプロイ可能なバージョンに構築します。

どちらのチュートリアルでも入力と結果は同じですが、一方は AWS CodeBuild コンソールを使用し、もう一方は を使用します AWS CLI。

重要

このチュートリアルを完了するために AWS ルートアカウントを使用することはお勧めしません。

コンソール AWS CodeBuild を使用した の開始方法

このチュートリアルでは、 AWS CodeBuild を使用して、サンプルソースコード入力ファイルのコレクション (ビルド入力アーティファクトまたはビルド入力 ) をソースコードのデプロイ可能バージョン (ビルド出力アーティファクトまたはビルド出力 ) に構築します。具体的には、一般的な構築ツールである Apache Maven を使用して、一連の Java クラスファイルを Java Archive (JAR) ファイルに構築 CodeBuild するように に指示します。このチュートリアルを完了するために、Apache Maven または Java に精通している必要はありません。

コンソール、 CodeBuild 、 AWS CodePipeline、 AWS CLIまたは CodeBuild を使用して を AWS 操作できますSDKs。このチュートリアルでは、 CodeBuild コンソールの使用方法を示します。の使用の詳細については CodePipeline、「」を参照してください CodeBuild で を使用する CodePipeline

重要

このチュートリアルのステップでは、 AWS アカウントに課金される可能性のあるリソース (S3 バケットなど) を作成する必要があります。これには、Amazon S3 に関連する AWS リソース CodeBuild とアクション AWS KMS、および CloudWatch ログに対する料金が含まれます。詳細については、AWS CodeBuild 「 の料金」、Amazon S3 の料金」、AWS Key Management Service 「 の料金」、および「Amazon の CloudWatch 料金」を参照してください。

ステップ 1: ソースコードを作成する

(一部: コンソール AWS CodeBuild を使用した の開始方法

このステップでは、出力バケットに CodeBuild ビルドするソースコードを作成します。このソースコードは、2 つの Java クラスファイルと Apache Maven プロジェクトオブジェクトモデル (POM) ファイルで構成されます。

  1. ローカルコンピュータまたはインスタンスの空のディレクトリに、このディレクトリ構造を作成します。

    (root directory name) `-- src |-- main | `-- java `-- test `-- java
  2. 任意のテキストエディタを使用して、このファイルを作成し、MessageUtil.java という名前を付けて、src/main/java ディレクトリに保存します。

    public class MessageUtil { private String message; public MessageUtil(String message) { this.message = message; } public String printMessage() { System.out.println(message); return message; } public String salutationMessage() { message = "Hi!" + message; System.out.println(message); return message; } }

    このクラスファイルは、渡された文字列を出力として作成します。MessageUtil コンストラクタは、文字列を設定します。printMessage メソッドは出力を作成します。salutationMessage メソッドが Hi! を出力した後に文字列が続きます。

  3. このファイルを作成し、TestMessageUtil.java という名前を付けて、/src/test/java ディレクトリに保存します。

    import org.junit.Test; import org.junit.Ignore; import static org.junit.Assert.assertEquals; public class TestMessageUtil { String message = "Robert"; MessageUtil messageUtil = new MessageUtil(message); @Test public void testPrintMessage() { System.out.println("Inside testPrintMessage()"); assertEquals(message,messageUtil.printMessage()); } @Test public void testSalutationMessage() { System.out.println("Inside testSalutationMessage()"); message = "Hi!" + "Robert"; assertEquals(message,messageUtil.salutationMessage()); } }

    このクラスファイルは message クラスの MessageUtil 変数を Robert に設定します。その後、文字列 message および Robert が出力に表示されているかどうかを調べることによって、Hi!Robert 変数が正常に設定されたかどうかを調べます。

  4. このファイルを作成し、pom.xml という名前を付けて、ルート (最上位) ディレクトリに保存します。

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>messageUtil</artifactId> <version>1.0</version> <packaging>jar</packaging> <name>Message Utility Java Sample App</name> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> </plugin> </plugins> </build> </project>

    Apache Maven では、このファイルの指示に従って、MessageUtil.java および TestMessageUtil.java ファイルを messageUtil-1.0.jar という名前のファイルに変換し、指定されたテストを実行します。

この時点で、ディレクトリ構造は次のようになります。

(root directory name) |-- pom.xml `-- src |-- main | `-- java | `-- MessageUtil.java `-- test `-- java `-- TestMessageUtil.java

ステップ 2: buildspec ファイルを作成する

(前のステップ: ステップ 1: ソースコードを作成する)

このステップでは、ビルド仕様ファイルを作成します。buildspec は、 がビルドの実行YAML CodeBuild に使用する形式のビルドコマンドおよび関連設定のコレクションです。ビルド仕様がないと、ビルド入力をビルド出力に正常に変換したり、ビルド環境でビルド出力アーティファクトを見つけて出力バケットにアップロードしたり CodeBuild することはできません。

このファイルを作成し、buildspec.yml という名前を付けて、ルート (最上位) ディレクトリに保存します。

version: 0.2 phases: install: runtime-versions: java: corretto11 pre_build: commands: - echo Nothing to do in the pre_build phase... build: commands: - echo Build started on `date` - mvn install post_build: commands: - echo Build completed on `date` artifacts: files: - target/messageUtil-1.0.jar
重要

ビルド仕様宣言は有効な でなければならないためYAML、ビルド仕様宣言の間隔が重要です。ビルド仕様宣言のスペース数が YAML と一致しない場合、ビルドは即座に失敗する場合があります。YAML バリデータを使用して、ビルド仕様宣言が有効な かどうかをテストできますYAML。

注記

ソースコードにビルド仕様ファイルを含める代わりに、ビルドプロジェクトを作成するときに個別にビルドコマンドを宣言することができます。これは、毎回ソースコードのリポジトリを更新せずに、異なるビルドコマンドでソースコードをビルドする場合に役立ちます。詳細については、「buildspec の構文」を参照してください。

このビルド仕様宣言の詳細は次の通りです。

  • version は、使用されているビルド仕様スタンダードのバージョンを表します。このビルド仕様宣言では、最新バージョン 0.2 が使用されます。

  • phases は、 コマンドを実行する CodeBuild ように に指示できるビルドフェーズを表します。これらのビルドフェーズは installpre_buildbuildpost_build として、ここにリストされています。これらのビルドフェーズ名のスペルを変更することはできず、追加のビルドフェーズ名を作成することもできません。

    この例では、 buildフェーズ中に が mvn install コマンド CodeBuild を実行します。このコマンドは、コンパイルされた Java クラスファイルをビルド出力アーティファクトにコンパイル、テスト、パッケージ化するように Apache Maven に指示します。完全にするために、この例では、いくつかの echo コマンドが各ビルドフェーズに配置されています。このチュートリアルの後半で詳細なビルド情報を表示すると、これらのechoコマンドの出力は、 がコマンドを実行する方法 CodeBuildと順序をよりよく理解するのに役立ちます。(この例にはすべてのビルドフェーズが含まれていますが、コマンドを実行しないビルドフェーズは含める必要がありません)。ビルドフェーズごとに、 は指定された各コマンドを、リストされた順序で最初から最後まで 1 つずつ CodeBuild 実行します。

  • artifacts は、 が CodeBuild出力バケットにアップロードするビルド出力アーティファクトのセットを表します。 は、ビルド出力に含めるファイルfilesを表します。 CodeBuild は、ビルド環境のtarget相対ディレクトリにある 1 つのmessageUtil-1.0.jarファイルをアップロードします。ファイル名 messageUtil-1.0.jar およびディレクトリ名 target は、この例でのみ Apache Maven がビルド出力アーティファクトを作成して格納する方法に基づいています。独自のビルドでは、これらのファイル名とディレクトリは異なります。

詳細については、「ビルド仕様 (buildspec) に関するリファレンス」を参照してください。

この時点で、ディレクトリ構造は次のようになります。

(root directory name) |-- pom.xml |-- buildspec.yml `-- src |-- main | `-- java | `-- MessageUtil.java `-- test `-- java `-- TestMessageUtil.java

ステップ 3: 2 つの S3 バケットを作成する

(前のステップ: ステップ 2: buildspec ファイルを作成する)

このチュートリアル用として 1 つのバケットを使用することもできますが、2 つのバケットを使用する方が、ビルド入力の送信元およびビルド出力の送信先の確認が簡単になります。

  • これらのバケットのいずれか(入力バケット)にビルド入力が保存されます。このチュートリアルでは、この入力バケットの名前は です。ここでcodebuild-region-ID-account-ID-input-bucketregion-ID はバケットの AWS リージョンであり、account-ID はアカウント AWS ID です。

  • もう 1 つのバケット(出力バケット)にはビルド出力が保存されます。このチュートリアルでは、この出力バケットの名前は codebuild-region-ID-account-ID-output-bucket です。

これらのバケットに別の名前を選択した場合は、このチュートリアル全体で、その名前を使用してください。

これら 2 つのバケットは、ビルドと同じ AWS リージョンに存在する必要があります。例えば、米国東部 (オハイオ) リージョンでビルドを実行する CodeBuild ように に指示する場合、これらのバケットは米国東部 (オハイオ) リージョンにも存在する必要があります。

詳細については、Amazon Simple Storage Service コンソールユーザーガイド「バケットの作成」を参照してください。

注記

は、 CodeCommit、 GitHub、および Bitbucket リポジトリに保存されているビルド入力 CodeBuild もサポートしていますが、このチュートリアルではそれらの使用方法は説明していません。詳細については、「ビルドを計画する」を参照してください。

ステップ 4: ソースコードと buildspec ファイルをアップロードする

(前のステップ: ステップ 3: 2 つの S3 バケットを作成する)

このステップでは、入力バケットにソースコードとビルド仕様ファイルを追加します。

オペレーティングシステムの zip ユーティリティを使用して、MessageUtil.zipMessageUtil.javaTestMessageUtil.java、および pom.xml を含む buildspec.yml という名前のファイルを作成します。

MessageUtil.zip ファイルのディレクトリ構造は、次のようになっている必要があります。

MessageUtil.zip |-- pom.xml |-- buildspec.yml `-- src |-- main | `-- java | `-- MessageUtil.java `-- test `-- java `-- TestMessageUtil.java
重要

(root directory name) ディレクトリを含めないでください。(root directory name) ディレクトリ内のディレクトリとファイルのみを含めます。

MessageUtil.zip ファイルを codebuild-region-ID-account-ID-input-bucket という名前の入力バケットにアップロードします。

重要

CodeCommit GitHub、、および Bitbucket リポジトリの場合、慣例により、 という名前のビルド仕様ファイルを各リポジトリのルート (最上位レベル) buildspec.yml に保存するか、ビルドプロジェクト定義の一部としてビルド仕様宣言を含める必要があります。リポジトリのソースコードとビルド仕様ZIPファイルを含むファイルを作成しないでください。

S3 バケットに保存されているビルド入力のみの場合、ソースコードと、慣例によりルート (最上位レベル) buildspec.yml に という名前のビルド仕様ファイルを含むZIPファイルを作成するか、ビルドプロジェクト定義の一部としてビルド仕様宣言を含める必要があります。

ビルド仕様ファイルに別の名前を使用するか、ルート以外の場所でビルド仕様を参照する場合は、ビルドプロジェクト定義の一部としてビルド仕様の上書きを指定できます。詳細については、「buildspec ファイル名とストレージの場所」を参照してください。

ステップ 5: ビルドプロジェクトを作成する

(前のステップ: ステップ 4: ソースコードと buildspec ファイルをアップロードする)

このステップでは、 AWS CodeBuild を使用してビルドを実行するビルドプロジェクトを作成します。ビルドプロジェクトには、ビルドの実行方法に関する情報が含まれています。これには、ソースコードの取得先、使用するビルド環境、実行するビルドコマンド、ビルド出力の格納先が含まれます。ビルド環境は、 がビルドの実行 CodeBuild に使用するオペレーティングシステム、プログラミング言語ランタイム、およびツールの組み合わせを表します。ビルド環境は Docker イメージとして表されます。詳細については、Docker Docs ウェブサイトの Docker overview を参照してください。

このビルド環境では、Java Development Kit (JDK) と Apache Maven のバージョンを含む Docker イメージを使用する CodeBuild ように に指示します。

ビルドプロジェクトを作成するには
  1. にサインイン AWS Management Console し、https://console.aws.amazon.com/codesuite/codebuild/home で AWS CodeBuild コンソールを開きます。

  2. AWS リージョンセレクタを使用して、 CodeBuild がサポートされている AWS リージョンを選択します。詳細については、「Amazon Web Services 全般のリファレンス」の「AWS CodeBuild エンドポイントとクォータ」を参照してください。

  3. CodeBuild 情報ページが表示されたら、ビルドプロジェクトの作成 を選択します。それ以外の場合は、ナビゲーションペインでビルドを展開し、[ビルドプロジェクト] を選択し、次に [Create build project (ビルドプロジェクトの作成)] を選択します。

  4. [Create build project (ビルドプロジェクトの作成)] ページで、[Project configuration (プロジェクト設定)] の [プロジェクト名] にこのビルドプロジェクトの名前を入力します (この例では、codebuild-demo-project)。ビルドプロジェクト名は、 AWS アカウントごとに一意である必要があります。別の名前を選択した場合は、このチュートリアル全体でその名前を使用してください。

    注記

    [Create build project (ビルドプロジェクトの作成)] ページに「このオペレーションを実行する権限がありません」というようなエラーメッセージが表示される場合があります。これは、ビルドプロジェクトを作成するアクセス許可を持たないユーザー AWS Management Console として にサインインしたことが原因と考えられます。これを修正するには、 からサインアウトし AWS Management Console、次のいずれかのIAMエンティティに属する認証情報で再度サインインします。

    • AWS アカウントの管理者ユーザー。詳細については、「 ユーザーガイド」の「最初の AWS アカウント ルートユーザーとグループの作成」を参照してください。

    • AWS アカウント内のユーザーでAmazonS3ReadOnlyAccess、そのユーザーまたはユーザーが属する IAMグループにアタッチされた AWSCodeBuildAdminAccess、、および IAMFullAccess管理ポリシーを持つユーザー。これらのアクセス許可を持つユーザーまたはグループが AWS アカウントになく、これらのアクセス許可をユーザーまたはグループに追加できない場合は、 AWS アカウント管理者にお問い合わせください。詳細については、「AWS の マネージド (事前定義) ポリシー AWS CodeBuild」を参照してください。

    どちらのオプションにも、このチュートリアルを完了できるように、ビルドプロジェクトの作成を許可する管理者権限が含まれています。常に必要最小限のアクセス許可を使用してタスクを達成してください。詳細については、「AWS CodeBuild アクセス許可リファレンス」を参照してください。

  5. [Source] (ソース) で、[Source provider] (ソースプロバイダー) として [Amazon S3] を選択します。

  6. バケット で codebuild- を選択します。region-ID-account-ID-input-bucket

  7. [S3 オブジェクトキー] に「MessageUtil.zip」と入力します。

  8. [環境] の [環境イメージ] で、[Managed image (マネージド型イメージ)] を選択したままにしておきます。

  9. [オペレーティングシステム] で、[Amazon Linux 2] を選択します。

  10. [ランタイム] で、[Standard (標準)] を選択します。

  11. [イメージ] で、[aws/codebuild/amazonlinux2-x86_64-standard:4.0] を選択します。

  12. [サービスロール] で、[New service role (新しいサービスロール)] は選択したままにして、[Role name (ロール名)] は変更しません。

  13. [Buildspec] で、[Use a buildspec file (buildspec ファイルを使用)] を選択したままにしておきます。

  14. [Artifacts] (アーティファクト) で、[Type] (タイプ) として [Amazon S3] を選択します。

  15. バケット名 codebuild- を選択します。region-ID-account-ID-output-bucket

  16. ​[名前] と [パス] を空白のままにします。

  17. [Create build project (ビルドプロジェクトの作成)] を選択します。

ステップ 6: ビルドを実行する

(前のステップ: ステップ 5: ビルドプロジェクトを作成する)

このステップでは、ビルドプロジェクトの設定を使用してビルドを実行する AWS CodeBuild ように に指示します。

ビルドを実行するには
  1. https://console.aws.amazon.com/codesuite/codebuild/home で AWS CodeBuild コンソールを開きます。

  2. ナビゲーションペインで、[ビルドプロジェクト] を選択します。

  3. ビルドプロジェクトのリストで、 を選択しcodebuild-demo-projectビルドの開始 を選択します。ビルドがすぐに開始されます。

ステップ 7: ビルド情報の要約を表示する

(前のステップ: ステップ 6: ビルドを実行する)

このステップでは、ビルドのステータスに関する要約情報を表示します。

要約されたビルド情報を表示するには

  1. の場合codebuild-demo-project:<build-ID> ページは表示されません。ナビゲーションバーで、ビルド履歴 を選択します。次に、ビルドプロジェクトのリストで、プロジェクト で、 のビルド実行リンクを選択しますcodebuild-demo-project。一致するリンクは 1 つだけです。(このチュートリアルを完了したことがある場合は、[完了済み] 列で最新の値のリンクを選択します。)

  2. [Build status] (ビルドステータス) ページの [Phase details] (フェーズ詳細) に以下のビルドフェーズが表示され、[Status] (ステータス) 列に [Succeeded] (成功) と示されます。

    • SUBMITTED

    • QUEUED

    • PROVISIONING

    • DOWNLOAD_SOURCE

    • INSTALL

    • PRE_BUILD

    • BUILD

    • POST_BUILD

    • UPLOAD_ARTIFACTS

    • FINALIZING

    • COMPLETED

    [ビルドステータス] で、[Succeeded (成功)] が表示されます。

    代わりに [進行中] と表示される場合は、更新ボタンを選択します。

  3. 各ビルドフェーズの横に表示される [所要時間] 値は、ビルドフェーズの所要時間を示します。[終了時間] 値は、ビルドフェーズの完了日時を示します。

ステップ 8: 詳細なビルド情報を表示する

(前のステップ: ステップ 7: ビルド情報の要約を表示する)

このステップでは、 CloudWatch ログでビルドに関する詳細情報を表示します。

注記

機密情報を保護するために、 CodeBuild ログでは以下が非表示になっています。

詳細なビルド情報を表示するには
  1. ビルドの詳細ページが前のステップから引き続き表示された状態で、ビルドログの最後の 10,000 行が [Build logs] に表示されます。Logs でビルドログ全体を表示するには、 CloudWatch ログ全体を表示するリンクを選択します。

  2. CloudWatch Logs ログストリームでは、ログイベントを参照できます。デフォルトでは、ログイベントの最後のセットだけが表示されます。以前のログイベントを表示するには、リストの先頭にスクロールします。

  3. このチュートリアルでは、ほとんどのログイベントに、ビルド依存関係ファイル CodeBuild のダウンロードとビルド環境へのインストールに関する詳細な情報が含まれていますが、これはおそらく気にしません。[Filter events] ボックスを使用すると、表示する情報量を減らすことができます。例えば、[Filter events] (イベントのフィルター) で「"[INFO]"」と入力した場合、「[INFO]」を含むイベントのみが表示されます。詳細については、「Amazon ユーザーガイド」の「フィルターとパターンの構文」を参照してください。 CloudWatch

ステップ 9: ビルド出力アーティファクトを取得する

(前のステップ: ステップ 8: 詳細なビルド情報を表示する)

このステップでは、出力バケット CodeBuild を構築してアップロードした messageUtil-1.0.jar ファイルを取得します。

CodeBuild コンソールまたは Amazon S3 コンソールを使用して、このステップを完了できます。

ビルド出力アーティファクトを取得するには (AWS CodeBuild コンソール)
  1. CodeBuild コンソールを開いたままで、前のステップのビルドの詳細ページがまだ表示されている状態で、ビルドの詳細タブを選択し、アーティファクトセクションまでスクロールします。

    注記

    ビルドの詳細ページが表示されていない場合は、ナビゲーションバーで [Build history] (ビルド履歴)、[Build run] (ビルドの実行) リンクの順に選択します。

  2. Amazon S3 フォルダへのリンクは、[Artifacts upload location] (アーティファクトのアップロード場所) の下にあります。Amazon S3 内のフォルダが開き、「messageUtil-1.0.jar」という名前のビルド出力アーティファクトファイルを見つけます。

ビルド出力アーティファクトを取得するには (Amazon S3 コンソール)
  1. で Amazon S3 コンソールを開きますhttps://console.aws.amazon.com/s3/

  2. codebuild-region-ID-account-ID-output-bucket を開きます。

  3. codebuild-demo-project フォルダを開きます。

  4. target という名前のフォルダを開き、messageUtil-1.0.jar という名前のビルド出力アーティファクトファイルを見つけます。

ステップ 10: S3 入力バケットを削除する

(前のステップ: ステップ 9: ビルド出力アーティファクトを取得する)

AWS アカウントへの継続的な課金を防ぐには、このチュートリアルで使用した入出力バケットを削除できます。手順については、Amazon Simple Storage Service ユーザーガイドバケットを削除、または空にする方法を参照してください。

IAM ユーザーまたは管理者IAMユーザーを使用してこれらのバケットを削除する場合、ユーザーはより多くのアクセス許可を持っている必要があります。マーカーの間に次のステートメントを追加します (### BEGIN ADDING STATEMENT HERE ### また、### END ADDING STATEMENTS HERE ###) をユーザーの既存のアクセスポリシーに。

このステートメントでは、簡潔にするために省略記号 (...) が使用されています。既存のアクセスポリシーのステートメントは削除しないでください。これらの省略記号はポリシーに入力しないでください。

{ "Version": "2012-10-17", "Id": "...", "Statement": [ ### BEGIN ADDING STATEMENT HERE ### { "Effect": "Allow", "Action": [ "s3:DeleteBucket", "s3:DeleteObject" ], "Resource": "*" } ### END ADDING STATEMENT HERE ### ] }

まとめ

このチュートリアルでは、 AWS CodeBuild を使用して一連の Java クラスファイルをJARファイルに構築しました。次に、ビルドの結果を表示しました。

独自のシナリオ CodeBuild で を使用できるようになりました。「ビルドを計画する」の手順に従ってください。もう少し準備が必要な場合は、用意されているサンプルでビルドを試すことができます。詳細については、「のユースケースベースのサンプル CodeBuild」を参照してください。

AWS CodeBuild を使用した の開始方法 AWS CLI

このチュートリアルでは、 AWS CodeBuild を使用して、サンプルソースコード入力ファイルのコレクション (ビルド入力アーティファクトまたはビルド入力 と呼ばれる) を、ソースコードのデプロイ可能なバージョン (ビルド出力アーティファクトまたはビルド出力 と呼ばれる) に構築します。具体的には、一般的な構築ツールである Apache Maven を使用して、一連の Java クラスファイルを Java Archive (JAR) ファイルに構築 CodeBuild するように に指示します。このチュートリアルを完了するために、Apache Maven または Java に精通している必要はありません。

コンソール、 CodeBuild 、 AWS CodePipeline、 AWS CLIまたは CodeBuild を使用して を AWS 操作できますSDKs。このチュートリアルでは、 CodeBuild で を使用する方法を示します AWS CLI。の使用の詳細については CodePipeline、「」を参照してください CodeBuild で を使用する CodePipeline

重要

このチュートリアルのステップでは、 AWS アカウントに課金される可能性のあるリソース (S3 バケットなど) を作成する必要があります。これには、Amazon S3 に関連する AWS リソース CodeBuild とアクション AWS KMS、および CloudWatch ログに対する料金が含まれます。詳細については、CodeBuild「 の料金」、Amazon S3 の料金」、AWS Key Management Service 「 の料金」、および「Amazon の CloudWatch 料金」を参照してください。

ステップ 1: ソースコードを作成する

(一部: AWS CodeBuild を使用した の開始方法 AWS CLI

このステップでは、出力バケットに CodeBuild ビルドするソースコードを作成します。このソースコードは、2 つの Java クラスファイルと Apache Maven プロジェクトオブジェクトモデル (POM) ファイルで構成されます。

  1. ローカルコンピュータまたはインスタンスの空のディレクトリに、このディレクトリ構造を作成します。

    (root directory name) `-- src |-- main | `-- java `-- test `-- java
  2. 任意のテキストエディタを使用して、このファイルを作成し、MessageUtil.java という名前を付けて、src/main/java ディレクトリに保存します。

    public class MessageUtil { private String message; public MessageUtil(String message) { this.message = message; } public String printMessage() { System.out.println(message); return message; } public String salutationMessage() { message = "Hi!" + message; System.out.println(message); return message; } }

    このクラスファイルは、渡された文字列を出力として作成します。MessageUtil コンストラクタは、文字列を設定します。printMessage メソッドは出力を作成します。salutationMessage メソッドが Hi! を出力した後に文字列が続きます。

  3. このファイルを作成し、TestMessageUtil.java という名前を付けて、/src/test/java ディレクトリに保存します。

    import org.junit.Test; import org.junit.Ignore; import static org.junit.Assert.assertEquals; public class TestMessageUtil { String message = "Robert"; MessageUtil messageUtil = new MessageUtil(message); @Test public void testPrintMessage() { System.out.println("Inside testPrintMessage()"); assertEquals(message,messageUtil.printMessage()); } @Test public void testSalutationMessage() { System.out.println("Inside testSalutationMessage()"); message = "Hi!" + "Robert"; assertEquals(message,messageUtil.salutationMessage()); } }

    このクラスファイルは message クラスの MessageUtil 変数を Robert に設定します。その後、文字列 message および Robert が出力に表示されているかどうかを調べることによって、Hi!Robert 変数が正常に設定されたかどうかを調べます。

  4. このファイルを作成し、pom.xml という名前を付けて、ルート (最上位) ディレクトリに保存します。

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>messageUtil</artifactId> <version>1.0</version> <packaging>jar</packaging> <name>Message Utility Java Sample App</name> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> </plugin> </plugins> </build> </project>

    Apache Maven では、このファイルの指示に従って、MessageUtil.java および TestMessageUtil.java ファイルを messageUtil-1.0.jar という名前のファイルに変換し、指定されたテストを実行します。

この時点で、ディレクトリ構造は次のようになります。

(root directory name) |-- pom.xml `-- src |-- main | `-- java | `-- MessageUtil.java `-- test `-- java `-- TestMessageUtil.java

ステップ 2: buildspec ファイルを作成する

(前のステップ: ステップ 1: ソースコードを作成する)

このステップでは、ビルド仕様ファイルを作成します。buildspec は、 YAMLがビルドの実行 CodeBuild に使用する形式のビルドコマンドおよび関連設定のコレクションです。ビルド仕様がないと、ビルド入力をビルド出力に正常に変換したり、ビルド環境でビルド出力アーティファクトを見つけて出力バケットにアップロードしたり CodeBuild することはできません。

このファイルを作成し、buildspec.yml という名前を付けて、ルート (最上位) ディレクトリに保存します。

version: 0.2 phases: install: runtime-versions: java: corretto11 pre_build: commands: - echo Nothing to do in the pre_build phase... build: commands: - echo Build started on `date` - mvn install post_build: commands: - echo Build completed on `date` artifacts: files: - target/messageUtil-1.0.jar
重要

ビルド仕様宣言は有効な でなければならないためYAML、ビルド仕様宣言の間隔が重要です。ビルド仕様宣言のスペース数が YAML と一致しない場合、ビルドは即座に失敗する場合があります。YAML バリデータを使用して、ビルド仕様宣言が有効な かどうかをテストできますYAML。

注記

ソースコードにビルド仕様ファイルを含める代わりに、ビルドプロジェクトを作成するときに個別にビルドコマンドを宣言することができます。これは、毎回ソースコードのリポジトリを更新せずに、異なるビルドコマンドでソースコードをビルドする場合に役立ちます。詳細については、「buildspec の構文」を参照してください。

このビルド仕様宣言の詳細は次の通りです。

  • version は、使用されているビルド仕様スタンダードのバージョンを表します。このビルド仕様宣言では、最新バージョン 0.2 が使用されます。

  • phases は、 コマンドを実行する CodeBuild ように に指示できるビルドフェーズを表します。これらのビルドフェーズは installpre_buildbuildpost_build として、ここにリストされています。これらのビルドフェーズ名のスペルを変更することはできず、追加のビルドフェーズ名を作成することもできません。

    この例では、 buildフェーズ中に が mvn install コマンド CodeBuild を実行します。このコマンドは、コンパイルされた Java クラスファイルをビルド出力アーティファクトにコンパイル、テスト、パッケージ化するように Apache Maven に指示します。完全にするために、この例では、いくつかの echo コマンドが各ビルドフェーズに配置されています。このチュートリアルの後半で詳細なビルド情報を表示すると、これらのechoコマンドの出力は、 がコマンドを実行する方法 CodeBuildと順序をよりよく理解するのに役立ちます。(この例にはすべてのビルドフェーズが含まれていますが、コマンドを実行しないビルドフェーズは含める必要がありません)。ビルドフェーズごとに、 は指定された各コマンドを、リストされた順序で最初から最後まで 1 つずつ CodeBuild 実行します。

  • artifacts は、 が CodeBuild出力バケットにアップロードするビルド出力アーティファクトのセットを表します。 は、ビルド出力に含めるファイルfilesを表します。 CodeBuild は、ビルド環境のtarget相対ディレクトリにある 1 つのmessageUtil-1.0.jarファイルをアップロードします。ファイル名 messageUtil-1.0.jar およびディレクトリ名 target は、この例でのみ Apache Maven がビルド出力アーティファクトを作成して格納する方法に基づいています。独自のビルドでは、これらのファイル名とディレクトリは異なります。

詳細については、「ビルド仕様 (buildspec) に関するリファレンス」を参照してください。

この時点で、ディレクトリ構造は次のようになります。

(root directory name) |-- pom.xml |-- buildspec.yml `-- src |-- main | `-- java | `-- MessageUtil.java `-- test `-- java `-- TestMessageUtil.java

ステップ 3: 2 つの S3 バケットを作成する

(前のステップ: ステップ 2: buildspec ファイルを作成する)

このチュートリアル用として 1 つのバケットを使用することもできますが、2 つのバケットを使用する方が、ビルド入力の送信元およびビルド出力の送信先の確認が簡単になります。

  • これらのバケットのいずれか(入力バケット)にビルド入力が保存されます。このチュートリアルでは、この入力バケットの名前は です。ここでcodebuild-region-ID-account-ID-input-bucketregion-ID はバケットの AWS リージョンであり、account-ID はアカウント AWS ID です。

  • もう 1 つのバケット(出力バケット)にはビルド出力が保存されます。このチュートリアルでは、この出力バケットの名前は codebuild-region-ID-account-ID-output-bucket です。

これらのバケットに別の名前を選択した場合は、このチュートリアル全体で、その名前を使用してください。

これら 2 つのバケットは、ビルドと同じ AWS リージョンに存在する必要があります。例えば、米国東部 (オハイオ) リージョンでビルドを実行する CodeBuild ように に指示する場合、これらのバケットは米国東部 (オハイオ) リージョンにも存在する必要があります。

詳細については、Amazon Simple Storage Service コンソールユーザーガイド「バケットの作成」を参照してください。

注記

は、 CodeCommit、 GitHub、および Bitbucket リポジトリに保存されているビルド入力 CodeBuild もサポートしていますが、このチュートリアルではそれらの使用方法は説明していません。詳細については、「ビルドを計画する」を参照してください。

ステップ 4: ソースコードと buildspec ファイルをアップロードする

(前のステップ: ステップ 3: 2 つの S3 バケットを作成する)

このステップでは、入力バケットにソースコードとビルド仕様ファイルを追加します。

オペレーティングシステムの zip ユーティリティを使用して、MessageUtil.zipMessageUtil.javaTestMessageUtil.java、および pom.xml を含む buildspec.yml という名前のファイルを作成します。

MessageUtil.zip ファイルのディレクトリ構造は、次のようになっている必要があります。

MessageUtil.zip |-- pom.xml |-- buildspec.yml `-- src |-- main | `-- java | `-- MessageUtil.java `-- test `-- java `-- TestMessageUtil.java
重要

(root directory name) ディレクトリを含めないでください。(root directory name) ディレクトリ内のディレクトリとファイルのみを含めます。

MessageUtil.zip ファイルを codebuild-region-ID-account-ID-input-bucket という名前の入力バケットにアップロードします。

重要

CodeCommit GitHub、、および Bitbucket リポジトリの場合、慣例により、 という名前のビルド仕様ファイルを各リポジトリのルート (最上位レベル) buildspec.yml に保存するか、ビルドプロジェクト定義の一部としてビルド仕様宣言を含める必要があります。リポジトリのソースコードとビルド仕様ZIPファイルを含むファイルを作成しないでください。

S3 バケットに保存されているビルド入力のみの場合、ソースコードと、慣例によりルート (最上位レベル) buildspec.yml に という名前のビルド仕様ファイルを含むZIPファイルを作成するか、ビルドプロジェクト定義の一部としてビルド仕様宣言を含める必要があります。

ビルド仕様ファイルに別の名前を使用するか、ルート以外の場所でビルド仕様を参照する場合は、ビルドプロジェクト定義の一部としてビルド仕様の上書きを指定できます。詳細については、「buildspec ファイル名とストレージの場所」を参照してください。

ステップ 5: ビルドプロジェクトを作成する

(前のステップ: ステップ 4: ソースコードと buildspec ファイルをアップロードする)

このステップでは、 AWS CodeBuild を使用してビルドを実行するビルドプロジェクトを作成します。ビルドプロジェクトには、ビルドの実行方法に関する情報が含まれています。これには、ソースコードの取得先、使用するビルド環境、実行するビルドコマンド、ビルド出力の格納先が含まれます。ビルド環境は、オペレーティングシステム、プログラミング言語ランタイム、および がビルドの実行 CodeBuild に使用するツールの組み合わせを表します。ビルド環境は Docker イメージとして表されます。詳細については、Docker Docs ウェブサイトの Docker overview を参照してください。

このビルド環境では、Java Development Kit (JDK) と Apache Maven のバージョンを含む Docker イメージを使用する CodeBuild ように に指示します。

ビルドプロジェクトを作成するには
  1. AWS CLI を使用して create-project コマンドを実行します。

    aws codebuild create-project --generate-cli-skeleton

    JSON形式のデータが出力に表示されます。 AWS CLI がインストールされているローカルコンピュータまたはインスタンス上の場所create-project.jsonにある という名前のファイルにデータをコピーします。別のファイル名を使用する場合は、このチュートリアル全体でそのファイル名を使用してください。

    コピーされたデータをこの形式に従って変更して、結果を保存します。

    { "name": "codebuild-demo-project", "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip" }, "artifacts": { "type": "S3", "location": "codebuild-region-ID-account-ID-output-bucket" }, "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/standard:5.0", "computeType": "BUILD_GENERAL1_SMALL" }, "serviceRole": "serviceIAMRole" }

    置換 serviceIAMRole CodeBuild サービスロールの Amazon リソースネーム (ARN) を使用する (例: arn:aws:iam::account-ID:role/role-name)。サービスロールを作成する場合は、「 CodeBuild が他の AWS サービスとやり取りすることを許可する」を参照してください。

    このデータの各要素は以下のとおりです。

    • name は、このビルドプロジェクト (この例では codebuild-demo-project) に必要な識別子を表します。ビルドプロジェクト名は、アカウント内のすべてのビルドプロジェクト間で一意である必要があります。

    • source の場合、type はソースコードのリポジトリのタイプを表す必須の値です (この例では、Amazon S3 バケットの場合は S3)。

    • の場合sourcelocationはソースコードへのパスを表します (この例では、入力バケット名とそれに続くZIPファイル名)。

    • artifacts の場合、type は、ビルド出力アーティファクトのリポジトリのタイプを表す必須の値です (この例では、Amazon S3 バケットの場合は S3)。

    • artifacts の場合、location は、以前に作成または識別した出力バケットの名前を表します (この例では、codebuild-region-ID-account-ID-output-bucket)。

    • environment を使用する場合、type はビルド環境のタイプを表す必須の値です (この例では LINUX_CONTAINER)。

    • の場合environmentimageは、Docker イメージリポジトリタイプ (この例では、Docker イメージリポジトリ内の Docker イメージaws/codebuild/standard:5.0の場合) で指定されているように、このビルドプロジェクトが使用する CodeBuild Docker イメージ名とタグの組み合わせを表す必須値です。 aws/codebuild/standardは Docker イメージの名前です。 は Docker イメージのタグ5.0です。

      シナリオで使用できる Docker イメージをさらに見つけるには、「ビルド環境に関するリファレンス」を参照してください。

    • の場合environmentcomputeTypeはコンピューティングリソースが CodeBuild 使用する必須値です (この例では BUILD_GENERAL1_SMALL)。

    注記

    description、、 auth ( typeと を含むresourcebuildspec、、、 ( の場合)namespaceType、、 name ( pathnameと を含むartifactspackaging、、timeoutInMinutesenvironmentVariables ( と tagsを含むkeyvalue) などencryptionKey、元の valueJSON形式のデータで使用可能なその他の値はオプションです。これらは、このチュートリアルで使用されていないため、ここには示されていません。詳細については、「ビルドプロジェクトの作成 (AWS CLI)」を参照してください。

  2. 保存したばかりのファイルがあるディレクトリに移動してから、create-project コマンドをもう一度実行します。

    aws codebuild create-project --cli-input-json file://create-project.json

    成功した場合、次のようなデータが出力に表示されます。

    { "project": { "name": "codebuild-demo-project", "serviceRole": "serviceIAMRole", "tags": [], "artifacts": { "packaging": "NONE", "type": "S3", "location": "codebuild-region-ID-account-ID-output-bucket", "name": "message-util.zip" }, "lastModified": 1472661575.244, "timeoutInMinutes": 60, "created": 1472661575.244, "environment": { "computeType": "BUILD_GENERAL1_SMALL", "image": "aws/codebuild/standard:5.0", "type": "LINUX_CONTAINER", "environmentVariables": [] }, "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip" }, "encryptionKey": "arn:aws:kms:region-ID:account-ID:alias/aws/s3", "arn": "arn:aws:codebuild:region-ID:account-ID:project/codebuild-demo-project" } }
    • project は、このビルドプロジェクトに関する情報を表します。

      • tags は、宣言されたタグを表します。

      • packaging は、ビルド出力アーティファクトが出力バケットに保存される方法を表します。NONE は、出力バケット内にフォルダが作成されることを意味します。ビルド出力アーティファクトはそのフォルダ内に格納されます。

      • lastModified は、ビルドプロジェクトに関する情報が最後に変更された時刻 (Unix の時間形式) を表します。

      • timeoutInMinutes は、ビルドが完了していない場合に がビルド CodeBuild を停止するまでの分数を表します。(デフォルトは 60 分です。)

      • created は、ビルドプロジェクトが作成された時刻 (Unix の時間形式) を表します。

      • environmentVariables は、宣言され、ビルド CodeBuild 中に使用できる環境変数を表します。

      • encryptionKey は、ビルド出力アーティファクトARNの暗号化に が CodeBuild 使用したカスタマーマネージドキーの を表します。

      • arn はビルドプロジェクトの ARN を表します。

注記

create-project コマンドを実行すると、次のようなエラーメッセージが出力される場合があります: User: user-ARN は、codebuild: を実行する権限がありませんCreateProject。これは、ビルドプロジェクトの作成 CodeBuild に使用するのに十分なアクセス許可を持たないユーザーの認証情報 AWS CLI で を設定したことが原因と考えられます。これを修正するには、次のいずれかの AWS CLI IAMエンティティに属する認証情報を使用して を設定します。

  • AWS アカウントの管理者ユーザー。詳細については、「 ユーザーガイド」の「最初の AWS アカウント ルートユーザーとグループの作成」を参照してください。

  • AWS アカウントのユーザーでAmazonS3ReadOnlyAccess、そのユーザーまたはユーザーが属する IAMグループにアタッチされた AWSCodeBuildAdminAccess、、 IAMFullAccess管理ポリシーを持つユーザー。これらのアクセス許可を持つユーザーまたはグループが AWS アカウントになく、これらのアクセス許可をユーザーまたはグループに追加できない場合は、 AWS アカウント管理者にお問い合わせください。詳細については、「AWS の マネージド (事前定義) ポリシー AWS CodeBuild」を参照してください。

ステップ 6: ビルドを実行する

(前のステップ: ステップ 5: ビルドプロジェクトを作成する)

このステップでは、ビルドプロジェクトの設定を使用してビルドを実行する AWS CodeBuild ように に指示します。

ビルドを実行するには
  1. AWS CLI を使用して start-build コマンドを実行します。

    aws codebuild start-build --project-name project-name

    置換 project-name を前のステップのビルドプロジェクト名 (例: codebuild-demo-project) で使用します。

  2. 成功すると、次のようなデータが出力に表示されます。

    { "build": { "buildComplete": false, "initiator": "user-name", "artifacts": { "location": "arn:aws:s3:::codebuild-region-ID-account-ID-output-bucket/message-util.zip" }, "projectName": "codebuild-demo-project", "timeoutInMinutes": 60, "buildStatus": "IN_PROGRESS", "environment": { "computeType": "BUILD_GENERAL1_SMALL", "image": "aws/codebuild/standard:5.0", "type": "LINUX_CONTAINER", "environmentVariables": [] }, "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip" }, "currentPhase": "SUBMITTED", "startTime": 1472848787.882, "id": "codebuild-demo-project:0cfbb6ec-3db9-4e8c-992b-1ab28EXAMPLE", "arn": "arn:aws:codebuild:region-ID:account-ID:build/codebuild-demo-project:0cfbb6ec-3db9-4e8c-992b-1ab28EXAMPLE" } }
    • build は、このビルドに関する情報を表します。

      • buildComplete は、ビルドの完了 () を表します。trueそうでない場合は、false です。

      • initiator は、ビルドを開始したエンティティを表します。

      • artifacts は、場所を含む、ビルド出力に関する情報を表します。

      • projectName は、ビルドプロジェクトの名前を表します。

      • buildStatus は、start-build コマンドが実行されたときの現在のビルドのステータスを表します。

      • currentPhase は、start-build コマンドが実行されたときの現在のビルドフェーズを表します。

      • startTime は、ビルドプロセスが開始された時刻 (Unix の時間形式) を表します。

      • id は、ビルドの ID を表します。

      • arn はビルドARNの を表します。

    [id] の値を書き留めておきます。それは次の手順で必要となります。

ステップ 7: ビルド情報の要約を表示する

(前のステップ: ステップ 6: ビルドを実行する)

このステップでは、ビルドのステータスに関する要約情報を表示します。

要約されたビルド情報を表示するには
  • AWS CLI を使用して batch-get-builds コマンドを実行します。

    aws codebuild batch-get-builds --ids id

    置換 id を前のステップの出力に表示されたid値に置き換えます。

    成功した場合、次のようなデータが出力に表示されます。

    { "buildsNotFound": [], "builds": [ { "buildComplete": true, "phases": [ { "phaseStatus": "SUCCEEDED", "endTime": 1472848788.525, "phaseType": "SUBMITTED", "durationInSeconds": 0, "startTime": 1472848787.882 }, ... The full list of build phases has been omitted for brevity ... { "phaseType": "COMPLETED", "startTime": 1472848878.079 } ], "logs": { "groupName": "/aws/codebuild/codebuild-demo-project", "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=region-ID#logEvent:group=/aws/codebuild/codebuild-demo-project;stream=38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE", "streamName": "38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE" }, "artifacts": { "md5sum": "MD5-hash", "location": "arn:aws:s3:::codebuild-region-ID-account-ID-output-bucket/message-util.zip", "sha256sum": "SHA-256-hash" }, "projectName": "codebuild-demo-project", "timeoutInMinutes": 60, "initiator": "user-name", "buildStatus": "SUCCEEDED", "environment": { "computeType": "BUILD_GENERAL1_SMALL", "image": "aws/codebuild/standard:5.0", "type": "LINUX_CONTAINER", "environmentVariables": [] }, "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip" }, "currentPhase": "COMPLETED", "startTime": 1472848787.882, "endTime": 1472848878.079, "id": "codebuild-demo-project:38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE", "arn": "arn:aws:codebuild:region-ID:account-ID:build/codebuild-demo-project:38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE" } ] }
    • buildsNotFound は、情報が利用できないビルドIDsのビルドを表します。この例では、空である必要があります。

    • builds は、利用可能な各ビルドに関する情報を表します。この例では、出力に 1 つのビルドのみに関する情報が表示されます。

      • phases は、ビルドプロセス中に CodeBuild 実行されるビルドフェーズのセットを表します。各ビルドフェーズに関する情報が startTimeendTimedurationInSeconds (フェーズの開始時と終了時、Unix 時間形式で表示、持続時間 (秒))、phaseType (SUBMITTEDPROVISIONINGDOWNLOAD_SOURCEINSTALLPRE_BUILDBUILDPOST_BUILDUPLOAD_ARTIFACTSFINALIZINGCOMPLETED など)、phaseStatus (SUCCEEDEDFAILEDFAULTTIMED_OUTIN_PROGRESSSTOPPED など) として個別にリストされます。batch-get-builds コマンドを初めて実行するときは、多くの (またはまったく) フェーズが存在しない可能性があります。同じビルド ID を持つ batch-get-builds コマンドを続けて実行すると、より多くのビルドフェーズが出力に表示されます。

      • logs は、ビルドのログに関する情報を Amazon CloudWatch Logs で表します。

      • md5sum および は、ビルドの出力アーティファクトの MD5および SHA-256 ハッシュsha256sumを表します。これらは、関連するビルドプロジェクトの packaging 値が ZIP に設定されている場合にのみ出力に表示されます。(このチュートリアルでは設定していません。) これらのハッシュとチェックサムツールを使用して、ファイルの完全性と信頼性を確認することができます。

        注記

        Amazon S3 コンソールを使用して、これらのハッシュを表示することもできます。ビルド出力アーティファクトの横にあるボックスを選択し、[アクション]、[プロパティ] の順に選択します。プロパティペインで、メタデータ を展開し、-x-amz-meta-codebuildcontent-md5 x-amz-meta-codebuild-content-sha256 の値を表示します。(Amazon S3 コンソールでは、ビルド出力アーティファクトのETag値が MD5または SHA-256 ハッシュであると解釈しないでください)。

        を使用して AWS SDKsこれらのハッシュを取得する場合、値の名前は codebuild-content-md5と になりますcodebuild-content-sha256

      • endTime は、ビルドプロセスが終了した時刻 (Unix の時間形式) を表します。

    注記

    Amazon S3 メタデータには、Amazon S3 にアーティファクトを発行する CodeBuild ビルドbuildArnの を含む という名前の CodeBuild ヘッダーx-amz-meta-codebuild-buildarnがあります。通知のソーストラッキングを許可し、アーティファクトの生成元であるビルドを参照するために buildArn を追加します。

ステップ 8: 詳細なビルド情報を表示する

(前のステップ: ステップ 7: ビルド情報の要約を表示する)

このステップでは、 CloudWatch ログでビルドに関する詳細情報を表示します。

注記

機密情報を保護するために、 CodeBuild ログには以下が非表示になっています。

詳細なビルド情報を表示するには
  1. ウェブブラウザを使用して、前の手順の出力に表示された deepLink の場所に移動します (例: https://console.aws.amazon.com/cloudwatch/home?region=region-ID#logEvent:group=/aws/codebuild/codebuild-demo-project;stream=38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE)。

  2. CloudWatch ログログストリームでは、ログイベントを参照できます。デフォルトでは、ログイベントの最後のセットだけが表示されます。以前のログイベントを表示するには、リストの先頭にスクロールします。

  3. このチュートリアルでは、ほとんどのログイベントに、ビルド依存関係ファイル CodeBuild のダウンロードとビルド環境へのインストールに関する詳細な情報が含まれていますが、これはおそらく気にしません。[Filter events] ボックスを使用すると、表示する情報量を減らすことができます。例えば、[Filter events] (イベントのフィルター) で「"[INFO]"」と入力した場合、「[INFO]」を含むイベントのみが表示されます。詳細については、「Amazon ユーザーガイド」の「フィルターとパターンの構文」を参照してください。 CloudWatch

Logs CloudWatch ログストリームのこれらの部分は、このチュートリアルに関連しています。

... [Container] 2016/04/15 17:49:42 Entering phase PRE_BUILD [Container] 2016/04/15 17:49:42 Running command echo Entering pre_build phase... [Container] 2016/04/15 17:49:42 Entering pre_build phase... [Container] 2016/04/15 17:49:42 Phase complete: PRE_BUILD Success: true [Container] 2016/04/15 17:49:42 Entering phase BUILD [Container] 2016/04/15 17:49:42 Running command echo Entering build phase... [Container] 2016/04/15 17:49:42 Entering build phase... [Container] 2016/04/15 17:49:42 Running command mvn install [Container] 2016/04/15 17:49:44 [INFO] Scanning for projects... [Container] 2016/04/15 17:49:44 [INFO] [Container] 2016/04/15 17:49:44 [INFO] ------------------------------------------------------------------------ [Container] 2016/04/15 17:49:44 [INFO] Building Message Utility Java Sample App 1.0 [Container] 2016/04/15 17:49:44 [INFO] ------------------------------------------------------------------------ ... [Container] 2016/04/15 17:49:55 ------------------------------------------------------- [Container] 2016/04/15 17:49:55 T E S T S [Container] 2016/04/15 17:49:55 ------------------------------------------------------- [Container] 2016/04/15 17:49:55 Running TestMessageUtil [Container] 2016/04/15 17:49:55 Inside testSalutationMessage() [Container] 2016/04/15 17:49:55 Hi!Robert [Container] 2016/04/15 17:49:55 Inside testPrintMessage() [Container] 2016/04/15 17:49:55 Robert [Container] 2016/04/15 17:49:55 Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.018 sec [Container] 2016/04/15 17:49:55 [Container] 2016/04/15 17:49:55 Results : [Container] 2016/04/15 17:49:55 [Container] 2016/04/15 17:49:55 Tests run: 2, Failures: 0, Errors: 0, Skipped: 0 ... [Container] 2016/04/15 17:49:56 [INFO] ------------------------------------------------------------------------ [Container] 2016/04/15 17:49:56 [INFO] BUILD SUCCESS [Container] 2016/04/15 17:49:56 [INFO] ------------------------------------------------------------------------ [Container] 2016/04/15 17:49:56 [INFO] Total time: 11.845 s [Container] 2016/04/15 17:49:56 [INFO] Finished at: 2016-04-15T17:49:56+00:00 [Container] 2016/04/15 17:49:56 [INFO] Final Memory: 18M/216M [Container] 2016/04/15 17:49:56 [INFO] ------------------------------------------------------------------------ [Container] 2016/04/15 17:49:56 Phase complete: BUILD Success: true [Container] 2016/04/15 17:49:56 Entering phase POST_BUILD [Container] 2016/04/15 17:49:56 Running command echo Entering post_build phase... [Container] 2016/04/15 17:49:56 Entering post_build phase... [Container] 2016/04/15 17:49:56 Phase complete: POST_BUILD Success: true [Container] 2016/04/15 17:49:57 Preparing to copy artifacts [Container] 2016/04/15 17:49:57 Assembling file list [Container] 2016/04/15 17:49:57 Expanding target/messageUtil-1.0.jar [Container] 2016/04/15 17:49:57 Found target/messageUtil-1.0.jar [Container] 2016/04/15 17:49:57 Creating zip artifact

この例では、 はビルド前、ビルド、ビルド後のビルドフェーズを CodeBuild 正常に完了しました。ユニットテストを実行し、messageUtil-1.0.jar ファイルは正常に構築されました。

ステップ 9: ビルド出力アーティファクトを取得する

(前のステップ: ステップ 8: 詳細なビルド情報を表示する)

このステップでは、出力バケット CodeBuild を構築してアップロードした messageUtil-1.0.jar ファイルを取得します。

CodeBuild コンソールまたは Amazon S3 コンソールを使用して、このステップを完了できます。

ビルド出力アーティファクトを取得するには (AWS CodeBuild コンソール)
  1. CodeBuild コンソールを開いたままで、前のステップのビルドの詳細ページがまだ表示されている状態で、ビルドの詳細タブを選択し、アーティファクトセクションまでスクロールします。

    注記

    ビルドの詳細ページが表示されていない場合は、ナビゲーションバーで [Build history] (ビルド履歴)、[Build run] (ビルドの実行) リンクの順に選択します。

  2. Amazon S3 フォルダへのリンクは、[Artifacts upload location] (アーティファクトのアップロード場所) の下にあります。Amazon S3 内のフォルダが開き、「messageUtil-1.0.jar」という名前のビルド出力アーティファクトファイルを見つけます。

ビルド出力アーティファクトを取得するには (Amazon S3 コンソール)
  1. で Amazon S3 コンソールを開きますhttps://console.aws.amazon.com/s3/

  2. codebuild-region-ID-account-ID-output-bucket を開きます。

  3. codebuild-demo-project フォルダを開きます。

  4. target という名前のフォルダを開き、messageUtil-1.0.jar という名前のビルド出力アーティファクトファイルを見つけます。

ステップ 10: S3 入力バケットを削除する

(前のステップ: ステップ 9: ビルド出力アーティファクトを取得する)

AWS アカウントへの継続的な課金を防ぐため、このチュートリアルで使用した入出力バケットを削除できます。手順については、Amazon Simple Storage Service ユーザーガイドバケットを削除、または空にする方法を参照してください。

IAM ユーザーまたは管理者IAMユーザーを使用してこれらのバケットを削除する場合、ユーザーはより多くのアクセス許可を持っている必要があります。マーカーの間に次のステートメントを追加します (### BEGIN ADDING STATEMENT HERE ### また、### END ADDING STATEMENTS HERE ###) をユーザーの既存のアクセスポリシーに。

このステートメントでは、簡潔にするために省略記号 (...) が使用されています。既存のアクセスポリシーのステートメントは削除しないでください。これらの省略記号はポリシーに入力しないでください。

{ "Version": "2012-10-17", "Id": "...", "Statement": [ ### BEGIN ADDING STATEMENT HERE ### { "Effect": "Allow", "Action": [ "s3:DeleteBucket", "s3:DeleteObject" ], "Resource": "*" } ### END ADDING STATEMENT HERE ### ] }

まとめ

このチュートリアルでは、 AWS CodeBuild を使用して一連の Java クラスファイルをJARファイルに構築しました。次に、ビルドの結果を表示しました。

独自のシナリオ CodeBuild で を使用できるようになりました。「ビルドを計画する」の手順に従ってください。もう少し準備が必要な場合は、用意されているサンプルでビルドを試すことができます。詳細については、「のユースケースベースのサンプル CodeBuild」を参照してください。