ビルド出力を S3 バケットでホストする静的ウェブサイトの作成
ビルドのアーティファクトの暗号化を無効にすることができます。これにより、ウェブサイトをホストするように設定した場所にアーティファクトを発行できます。(暗号化されたアーティファクトを発行することはできません。) このサンプルは、ウェブフックを使用してビルドをトリガーし、ウェブサイトとして設定した S3 バケットにそのアーティファクトを発行する方法を示しています。
-
「静的ウェブサイトのセットアップ」の手順に従って、S3 バケットをウェブサイトとして動作するように設定します。
AWS CodeBuild コンソール (https://console.aws.amazon.com/codesuite/codebuild/home
) を開きます。 CodeBuild の情報ページが表示された場合、ビルドプロジェクトを作成するを選択します。それ以外の場合は、ナビゲーションペインでビルドを展開し、[ビルドプロジェクト] を選択し、次に [Create build project (ビルドプロジェクトの作成)] を選択します。
[プロジェクト名] に、このビルドプロジェクトの名前を入力します。ビルドプロジェクトの名前は、各 AWS アカウントで一意である必要があります。また、他のユーザーがこのプロジェクトの使用目的を理解できるように、ビルドプロジェクトの説明を任意で指定することもできます。
-
[ソース] で、[ソースプロバイダ] として [GitHub] を選択します。手順に従って GitHub に接続 (または再接続) し、[Authorize (承認)] を選択します。
[ウェブフック] で、[Rebuild every time a code change is pushed to this repository (コードの変更がこのレポジトリにプッシュされるたびに再構築する)] を選択します。このチェックボックスは、[Use a repository in my account (自分のアカウントでリポジトリを使用する)] を選択した場合のみオンにできます。
[環境] で以下の操作を行います。
[Environment image (環境イメージ)] で、次のいずれかの操作を行います。
-
が管理する Docker イメージを使用するにはAWS CodeBuild、[Managed image (マネージドイメージ)] を選択し、次に [オペレーティングシステム]、[ランタイム]、[イメージ]、および [ランタイムバージョン] で適切な選択を行います。利用可能な場合は、[環境タイプ] から選択します。
-
別の Docker イメージを使用するには、[カスタムイメージ] を選択します。[Environment type (環境タイプ)] で、 [ARM]、[Linux]、[Linux GPU] または [Windows] を選択します。[Other registry (その他のレジストリ)] を選択した場合は、[External registry URL (外部のレジストリ URL)] に
の形式に従って Docker Hub の Docker イメージの名前とタグを入力します。[Amazon ECR] を選択した場合は、[Amazon ECR repository] (Amazon ECR レポジトリ) および [Amazon ECR image] (Amazon ECR イメージ) を使用して AWS アカウントの Docker イメージを選択します。docker repository
/docker image name
-
プライベート Docker イメージを使用するには、[カスタムイメージ] を選択します。[Environment type (環境タイプ)] で、 [ARM]、[Linux]、[Linux GPU] または [Windows] を選択します。[Image registry (イメージレジストリ)] に [Other registry (その他のレジストリ)] を選択して、その後プライベート Docker イメージの認証情報の ARN を入力します。認証情報は、Secrets Manager で作成する必要があります。詳細については、AWS Secrets Managerユーザーガイドの「AWS Secrets Manager とは」を参照してください。
-
[Service role (サービスロール)] で、次のいずれかの操作を行います。
-
CodeBuild サービスロールがない場合は、[新しいサービスロール] を選択します。[Role name] に、新しいロールの名前を入力します。
-
CodeBuild サービスロールがある場合は、[Existing service role (既存のサービスロール)] を選択します。[Role ARN] で、サービスロールを選択します。
注記
コンソールでは、ビルドプロジェクトの作成時や更新時に CodeBuild サービスロールも作成できます。デフォルトでは、ロールはそのビルドプロジェクトでのみ使用できます。コンソールでは、このサービスロールを別のビルドプロジェクトと関連付けると、この別のビルドプロジェクトで使用できるようにロールが更新されます。サービスロールは最大 10 個のビルドプロジェクトで使用できます。
-
[Buildspec] で、次のいずれかを行います。
-
[Use a buildspec file] (ビルド仕様ファイルの使用) を選択して、ソースコードのルートディレクトリの buildspec.yml を使用します。
-
[ビルドコマンドの挿入] を選択して、コンソールを使用してビルドコマンドを挿入します。
詳細については、「ビルド仕様 (buildspec) に関するリファレンス」を参照してください。
-
-
[アーティファクト] で、[タイプ] として Amazon S3 を選択し、S3 バケットにビルド出力を保存します。
-
[バケット名] で、ステップ 1 でウェブサイトとして動作するよう設定した S3 バケットの名前を選択します。
-
[環境] で [ビルドコマンドの挿入] を選択した場合は、[出力ファイル] に、出力バケットに入れるビルドのファイルの場所を入力します。複数の場所がある場合は、カンマを使用して場所ごとに区切ります (例:
appspec.yml, target/my-app.jar
)。詳細については、「Artifacts reference-key in the buildspec file」を参照してください。 -
[Disable artifacts encryption (アーティファクトの暗号化を無効化)] を選択します。
-
[Additional configuration (追加設定)] オプションを展開し、必要に応じてオプションを選択します。
-
[Create build project (ビルドプロジェクトの作成)] を選択します。ビルドプロジェクトページの [ビルド履歴] で、[ビルドの開始] を選択してビルドを実行します。
-
(オプション) Amazon S3 デベロッパーガイドの「例: Amazon CloudFront でウェブサイトを高速化」の手順に従います。