メニュー
AWS CodeBuild
ユーザーガイド (API バージョン 2016-10-06)

AWS CodeBuild の Amazon ECR サンプル

このサンプルでは、Amazon Elastic Container Registry (Amazon ECR) イメージレポジトリの Docker イメージを使用して、AWS CodeBuild の「Go サンプル」をビルドします。

重要

このサンプルを実行すると、AWS アカウントに課金される場合があります。これには、AWS CodeBuild の料金、および Amazon S3、AWS KMS、CloudWatch Logs、Amazon ECR に関連した AWS リソースおよびアクションの料金が含まれます。詳細については、「AWS CodeBuild 料金表」、「Amazon S3 料金表」、「AWS Key Management Service 料金表」、「Amazon CloudWatch 料金表」、「Amazon Elastic Container Registry 料金表」を参照してください。

サンプルの実行

このサンプルを実行するには。

  1. Amazon ECR でイメージレポジトリに Docker イメージを作成してプッシュするには、「Docker サンプル」の「サンプルの実行」セクションにある手順を完了します。

  2. ビルドするソースコードを作成しアップロードするには、「Go サンプル」の「サンプルの実行」セクションの 1 から 4 の手順を完了します。

  3. AWS CodeBuild がリポジトリの Docker イメージをビルド環境にプルできるように、Amazon ECR のイメージリポジトリにアクセス許可を割り当てます。

    1. AWS ルートアカウントまたは管理者 IAM ユーザーの代わりに IAM ユーザーを使用して Amazon ECR を操作する場合は、ユーザー (またはユーザーが関連付けられている IAM グループ) にステートメントを (### BEGIN ADDING STATEMENT HERE ###### END ADDING STATEMENT HERE ### の間に) 追加します。(AWS ルートアカウントを使用することは推奨されません。)このステートメントは、Amazon ECR リポジトリの管理権限にアクセスするためのものです。省略記号 (...) は、簡潔にするために使用され、ステートメントを追加する場所の特定に役立ちます。ステートメントを削除しないでください、また、これらの省略記号をポリシーに入力しないでください。詳細については、IAM ユーザーガイドの「AWS マネジメントコンソール でのインラインポリシーの使用」を参照してください。

      { "Statement": [ ### BEGIN ADDING STATEMENT HERE ### { "Action": [ "ecr:GetRepositoryPolicy", "ecr:SetRepositoryPolicy" ], "Resource": "*", "Effect": "Allow" }, ### END ADDING STATEMENT HERE ### ... ], "Version": "2012-10-17" }

      注記

      このポリシーを変更する IAM エンティティは、ポリシーを変更するために IAM のアクセス権限を持っている必要があります。

    2. https://console.aws.amazon.com/ecs/ にある Amazon ECS コンソールを開きます。

    3. [Repositories] を選択します。

    4. リポジトリ名のリストで、作成または選択したリポジトリの名前を選択します。

    5. [アクセス許可] タブ、[Add] を順に選択して、ステートメントを作成します。

    6. [Sid] で、識別子を入力します (CodeBuildAccess、など)。

    7. [Effect] では、AWS CodeBuild へのアクセスを許可するため、[Allow] を選択したままにしておきます。

    8. [プリンシパル] には codebuild.amazonaws.com と入力します。. AWS CodeBuild のみへアクセスを許可するため、[Everybody] はオフのままにしておきます。

    9. [すべての IAM エンティティ] リストをスキップします。

    10. [Action] で、[プル専用アクション] を選択します。

      すべてのプル専用アクション ([ecr:GetDownloadUrlForLayer]、[ecr:BatchGetImage]、[ecr:BatchCheckLayerAvailability]) が選択されます。

    11. [すべて保存] を選択します。

      このポリシーは [ポリシードキュメント] に表示されます。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "CodeBuildAccess", "Effect": "Allow", "Principal": { "Service": "codebuild.amazonaws.com" }, "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability" ] } ] }
  4. AWS CodeBuild を直接実行する」の手順に従って、ビルドプロジェクトを作成し、ビルドを実行し、ビルド情報を表示します。

    AWS CLI を使用してビルドプロジェクトを作成する場合、create-project コマンドへの JSON 形式の入力はこれに似ています。(プレースホルダは独自の値に置き換えてください。)

    { "name": "amazon-ecr-sample-project", "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/GoSample.zip" }, "artifacts": { "type": "S3", "location": "codebuild-region-ID-account-ID-output-bucket", "packaging": "ZIP", "name": "GoOutputArtifact.zip" }, "environment": { "type": "LINUX_CONTAINER", "image": "account-ID.dkr.ecr.region-ID.amazonaws.com/your-Amazon-ECR-repo-name:latest", "computeType": "BUILD_GENERAL1_SMALL" }, "serviceRole": "arn:aws:iam::account-ID:role/role-name", "encryptionKey": "arn:aws:kms:region-ID:account-ID:key/key-ID" }
  5. ビルド出力アーティファクトを取得するには、Amazon S3 出力バケットを開きます。

  6. GoOutputArtifact.zip ファイルをローカルコンピュータまたはインスタンスへダウンロードし、GoOutputArtifact.zip ファイルの内容を抽出します。展開したコンテンツから、hello ファイルを取得します。

関連リソース

このページの内容: