AWS CodeBuildにおけるGitHub Repositoryをソースプロバイダとしてアクセスする方法
はじめに
必要に迫られてAWS CodeBuildのソースプロバイダをGitHub Repositoryにしました。 その際に実施した内容を備忘のために記載したいと思います。なお、AWS CodeBuildの構築とアクセストークンの設定についてはTerraformを使用しました。
実施内容
GitHubにおけるPersonal Access Tokenの作成
まずは、AWS CodeBuildがソースプロバイダとしてGitHubへ接続するためのアクセストークンとしてPersonal Access Tokenの作成が必要になります。 以下の参考ドキュメントをもとに、Personal Access Tokenを作成しましたが、Scopeとしては以下の添付画像となります。これだけとなります。
参考ドキュメント
TerraformによるAWS CodeBuildの作成
次にAWS CodeBuild Projectを作成します。Terraformコードは以下の通りです。 ここでソースプロバイダとしてGitHubのRepositoryを指定している部分はsource内のtypeとlocationになります。
resource "aws_codebuild_project" "this" { name = "github-integration-project" service_role = "<role_arn>" artifacts { type = "NO_ARTIFACTS" } environment { compute_type = "BUILD_GENERAL1_SMALL" image = "<ecr_uri>" type = "LINUX_CONTAINER" image_pull_credentials_type = "SERVICE_ROLE" } source { type = "GITHUB" location = "https://github.com/<organization_name>/<repository_name>.git" buildspec = jsonencode({ phases = { build = { commands = [ "ls -al" ] } } version = "0.2" }) } }
TerraformによるAWS CodeBuildへのアクセストークンの設定
最後にAWS CodeBuild Projectが先に作成したPersonal Access Tokenを使用して指定したGitHun Repositoryへアクセスするための設定です。 ここで注目するべきは、特にAWS CodeBuild Project自体を識別するための情報が存在しない点です。 理解してしまうとなんてことはないのですが、本設定はリージョンに対してサーバタイプ(GitHub)ごとに1種類しか登録できないのです。
resource "aws_codebuild_source_credential" "this" { auth_type = "PERSONAL_ACCESS_TOKEN" server_type = "GITHUB" token = "<personal_access_token_value>" }
さいごに
いかがでしたでしょうか。これによりAWS CodeBuildはソースプロバイダをGitHub Repositoryとすることができます。 どこかの誰かの参考になれば幸いです。