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とすることができます。 どこかの誰かの参考になれば幸いです。