リリースプロセスを自動化するには、AWS CodePipeline を使用してコードをテストし、AWS CodeBuild でビルドを実行します。
次の表に示しているのは、タスクとその実行に使用できるメソッドです。これらのタスクを AWS SDK で達成する方法については、このトピックの対象外です。
タスク | 使用可能なアプローチ | このトピックで説明するアプローチ |
---|---|---|
CodeBuild でビルドを自動化する CodePipeline を使用して、継続的な配信 (CD) パイプラインを作成する |
|
|
既存の CodePipeline のパイプラインに CodeBuild でのテストおよびビルドの自動化を追加する |
|
|
トピック
前提条件
-
ビルドを計画する の質問に答えます。
-
AWS ルートアカウントや管理者ユーザーの代わりに、ユーザーを使用して CodePipeline にアクセスする場合は、そのユーザー (またはユーザーが属する IAM グループ) に
AWSCodePipelineFullAccess
という名前の管理ポリシーをアタッチします。AWS ルートアカウントは使用しないでください。このポリシーは、CodePipeline でパイプラインを作成するためのアクセス許可をユーザーに付与します。詳細については、ユーザーガイドの「管理ポリシーをアタッチする」を参照してください。注記
ポリシーをユーザー (またはユーザーが属する IAM グループ) にアタッチする IAM エンティティは、ポリシーをアタッチするために IAM でのアクセス許可を持っている必要があります。詳細については、ユーザーガイドの「IAM ユーザー、グループ、および認証情報を管理するためのアクセス許可の委任」を参照してください。
-
AWS アカウントに CodePipeline のサービスロールがまだない場合は、作成します。CodePipeline は、このサービスロールを使用してユーザーに代わっての他の AWS サービス (AWS CodeBuild など) とやり取りします。たとえば、AWS CLI を使用して CodePipeline サービスロールを作成するには、IAMの
create-role
コマンドを実行します:Linux、macOS、Unix の場合:
aws iam create-role --role-name AWS-CodePipeline-CodeBuild-Service-Role --assume-role-policy-document '{"Version":"2012-10-17","Statement":{"Effect":"Allow","Principal":{"Service":"codepipeline.amazonaws.com"},"Action":"sts:AssumeRole"}}'
Windows の場合:
aws iam create-role --role-name AWS-CodePipeline-CodeBuild-Service-Role --assume-role-policy-document "{\"Version\":\"2012-10-17\",\"Statement\":{\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"codepipeline.amazonaws.com\"},\"Action\":\"sts:AssumeRole\"}}"
注記
この CodePipeline のサービスロールを作成する IAM エンティティは、サービスロールを作成するために IAM のアクセス許可を持っている必要があります。
-
CodePipeline サービスロールを作成した後、または既存のサービスロールを識別した後、AWS CodePipeline ユーザーガイドのデフォルトの CodePipeline サービスロールポリシーを確認するで説明されているように、デフォルトの CodePipeline サービスロールポリシーをサービスロールに追加する必要があります (ロールのポリシーの一部になっていない場合)。
注記
この CodePipeline サービスロールのポリシーを追加する IAM エンティティは、サービスロールポリシーをサービスロールに追加するために IAM のアクセス許可を持っている必要があります。
-
CodeCommit、Amazon S3、Bitbucket、GitHub など、CodeBuild と CodePipeline でサポートされているリポジトリタイプにソースコードを作成してアップロードします。ソースコードには buildspec ファイルが含まれている必要がありますが、このトピックの後半でビルドプロジェクトを定義するときにそのファイルを宣言できます。詳細については、「ビルド仕様 (buildspec) に関するリファレンス」を参照してください。
重要
パイプラインを使用してビルド済みのソースコードをデプロイする場合、ビルド出力アーティファクトには、使用するデプロイシステムとの互換性が必要です。
-
AWS OpsWorks については、AWS OpsWorks ユーザーガイドのアプリケーションソースおよびAWS OpsWorks で CodePipeline を使用するを参照してください。
-