【AWS】CodeBuild ~ Boto3編 ~

■ はじめに

https://dk521123.hatenablog.com/entry/2020/01/21/221122

の続き。

AWS CodeBuildのプロジェクトを boto3 API を使って
構築する必要になったので、メモ。

目次

【1】関連する boto3 API
【2】その他・技術事項
 1)CodeBuild の Docker イメージ
【3】サンプル
 例1:AWS CodePipeline経由でのCodeBuild プロジェクト作成

【1】関連する boto3 API

* create_project : プロジェクト作成

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/codebuild.html#CodeBuild.Client.create_project
environmentVariables

* CodeBuild に設定する環境変数

【2】その他・技術事項

1)CodeBuild の Docker イメージ

* 以下の公式サイトで要件に合うものをチョイスすればいい

https://docs.aws.amazon.com/ja_jp/codebuild/latest/userguide/build-env-ref-available.html

【3】サンプル

例1:AWS CodePipeline経由でのCodeBuild プロジェクト作成

前提条件

* 以下を事前に用意しておくこと
 + CodeBuild 用のRole(serviceRole)
 + CodeBuild 用のKMSキー(encryptionKey)

プログラム

import boto3


codebuild_client = boto3.client('codebuild')
response = codebuild_client.create_project(
  name='demo-codebuild-project',
  description='This is for a demo project',
  source={
    'type': 'CODEPIPELINE',
  },
  artifacts={
    'type': 'CODEPIPELINE',
  },
  cache={
    'type': 'NO_CACHE'
  },
  environment={
    'type': 'LINUX_CONTAINER',
    'image': 'aws/codebuild/standard:5.0',
    'computeType': 'BUILD_GENERAL1_SMALL',
    'environmentVariables': [
      {
        'name': 'S3_BUCKET',
        'value': 'your-s3-bucket-name',
        'type': 'PLAINTEXT'
      },
    ],
  },
  serviceRole='arn:aws:iam::111111111:role/xxxxxxxxxxxxxx',
  timeoutInMinutes=20,
  encryptionKey='kms-key/kms-key-for-codebuild',
  tags=[
    {
      'key': 'Name',
      'value': 'demo-codebuild-project'
    },
  ],
  logsConfig={
    'cloudWatchLogs': {
      'status': 'ENABLED'
    },
    's3Logs': {
      'status': 'DISABLED'
    }
  }
)
print(response)

関連記事

CodeBuild ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/01/21/221122
CodePipeline ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2021/12/22/095608