メニュー
AWS CloudFormation
ユーザーガイド (API Version 2010-05-15)

AWS::CodeBuild::Project

AWS::CodeBuild::Project リソースは、AWS CodeBuild がどのようにソースコードをビルドするかを設定します。たとえば、AWS CodeBuild にソースコードの取得場所や使用する構築環境を支持します。

構文

AWS CloudFormation テンプレートでこのエンティティを宣言するには、次の構文を使用します。

JSON

{ "Type" : "AWS::CodeBuild::Project", "Properties" : { "Artifacts" : Artifacts, "BadgeEnabled" : Boolean, "Cache" : ProjectCache, "Description" : String, "EncryptionKey" : String, "Environment" : Environment, "Name" : String, "ServiceRole" : String, "Source" : Source, "Tags" : [ Resource Tag, ... ], "TimeoutInMinutes" : Integer, "VpcConfig" : VpcConfig } }

YAML

Type: "AWS::CodeBuild::Project" Properties: Artifacts: Artifacts BadgeEnabled: Boolean Cache: ProjectCache Description: String EncryptionKey: String Environment: Environment Name: String ServiceRole: String Source: Source Tags: - Resource Tag TimeoutInMinutes: Integer VpcConfig: VpcConfig

プロパティ

Artifacts

プロジェクトがビルド中に生成するアーティファクトの出力設定。

Required: Yes

Type: AWS CodeBuild プロジェクトアーティファクト

更新に伴う要件: 中断はありません。

BadgeEnabled

AWS CodeBuild は、プロジェクトの構築バッジのパブリックアクセス可能な URL を生成するかどうかを示します。詳細については、『AWS CodeBuild ユーザーガイド』の「Build Badges Sample」を参照してください。

必須: いいえ

タイプ: ブール値

更新に伴う要件: 中断はありません。

Cache

ビルド依存関係を保存して再利用するために AWS CodeBuild が使用する設定。

必須: いいえ

タイプ: AWS CodeBuild Project ProjectCache

更新に伴う要件: 中断はありません。

Description

プロジェクトの説明。プロジェクトの目的を明記する説明を使用します。

Required: No

Type: String

更新に伴う要件: 中断はありません。

EncryptionKey

AWS CodeBuild がビルド出力の暗号化に使用する AWS Key Management Service (AWS KMS) カスタマーマスターキー (CMK) のエイリアスまたは Amazon Resource Name (ARN)。値を指定しない場合、AWS CodeBuild は Amazon Simple Storage Service に AWS 管理の CMK を使用します。

Required: No

Type: String

更新に伴う要件: 中断はありません。

Environment

ビルド環境に使用する環境タイプや環境変数などのプロジェクトのビルド環境設定。

Required: Yes

Type: AWS CodeBuild プロジェクト環境

更新に伴う要件: 中断はありません。

Name

プロジェクトの名前。名前は、AWS アカウントのすべてのプロジェクトにわたって一意である必要があります。

Required: Yes

Type: String

更新に伴う要件: 置換

ServiceRole

ユーザーに代わってサービスを操作するために AWS CodeBuild が使用するサービスロールの ARN。

Required: Yes

Type: String

更新に伴う要件: 中断はありません。

Source

ソースコードリポジトリのタイプや場所などのプロジェクトのソースコード設定。

Required: Yes

Type: AWS CodeBuild プロジェクトソース

更新に伴う要件: 中断はありません。

Tags

AWS CodeBuild プロジェクトに対するタグ (キーと値のペア) の任意のセット。

Required: No

Type: AWS CloudFormation Resource Tags

更新に伴う要件: 中断はありません。

TimeoutInMinutes

AWS CodeBuild が完了していないビルドを停止してからの分数。有効な値については、AWS CodeBuild ユーザーガイドtimeoutInMinutes フィールドを参照してください。

Required: No

Type: Integer

更新に伴う要件: 中断はありません。

VpcConfig

AWS CodeBuild が Amazon VPC のリソースにアクセスできるようにする設定。詳細については、『AWS CodeBuild ユーザーガイド』の「Use AWS CodeBuild with Amazon Virtual Private Cloud」を参照してください。

必須: いいえ

タイプ: AWS CodeBuild Project VpcConfig

更新に伴う要件: 中断はありません。

戻り値

参照番号

このリソースの論理 ID が Ref 組み込み関数に提供されると、Ref により myProjectName のような AWS CodeBuild プロジェクトの名前が返されます。

Ref 関数の使用方法の詳細については、「Ref」を参照してください。

Fn::GetAtt

Fn::GetAtt は、このタイプの指定された属性の値を返します。このセクションでは、利用可能な属性とサンプル戻り値のリストが示されます。

Arn

AWS CodeBuild プロジェクトの ARN (arn:aws:codebuild:us-west-2:123456789012:project/myProjectName など)。

Fn::GetAtt の使用の詳細については、「Fn::GetAtt」を参照してください。

次の例では AWS CodeBuild プロジェクトを作成します。

JSON

{ "Project": { "Type": "AWS::CodeBuild::Project", "Properties": { "Name": "myProjectName", "Description": "A description about my project", "ServiceRole": { "Fn::GetAtt": [ "ServiceRole", "Arn" ] }, "Artifacts": { "Type": "no_artifacts" }, "Environment": { "Type": "LINUX_CONTAINER", "ComputeType": "BUILD_GENERAL1_SMALL", "Image": "aws/codebuild/java:openjdk-8", "EnvironmentVariables": [ { "Name": "varName", "Value": "varValue" } ] }, "Source": { "Location": "codebuild-demo-test/0123ab9a371ebf0187b0fe5614fbb72c", "Type": "S3" }, "TimeoutInMinutes": 10, "Tags": [ { "Key": "Key1", "Value": "Value1" }, { "Key": "Key2", "Value": "Value2" } ] } } }

YAML

Project: Type: AWS::CodeBuild::Project Properties: Name: myProjectName Description: A description about my project ServiceRole: !GetAtt ServiceRole.Arn Artifacts: Type: no_artifacts Environment: Type: LINUX_CONTAINER ComputeType: BUILD_GENERAL1_SMALL Image: aws/codebuild/java:openjdk-8 EnvironmentVariables: - Name: varName Value: varValue Source: Location: codebuild-demo-test/0123ab9a371ebf0187b0fe5614fbb72c Type: S3 TimeoutInMinutes: 10 Tags: - Key: Key1 Value: Value1 - Key: Key2 Value: Value2

次の例では、Amazon S3 にビルド依存関係をキャッシュして Amazon VPC 内のリソースを使用するプロジェクトを作成します。

JSON

{ "Resources": { "CodeBuildProject": { "Type": "AWS::CodeBuild::Project", "Properties": { "ServiceRole": { "Ref": "CodeBuildRole" }, "Artifacts": { "Type": "CODEPIPELINE" }, "BadgeEnabled": "true", "Environment": { "Type": "LINUX_CONTAINER", "ComputeType": "BUILD_GENERAL1_SMALL", "Image": "aws/codebuild/ubuntu-base:14.04", "EnvironmentVariables": [ { "Name": "varName1", "Value": "varValue1" }, { "Name": "varName2", "Value": "varValue2", "Type": "PLAINTEXT" }, { "Name": "varName3", "Value": "/CodeBuild/testParameter", "Type": "PARAMETER_STORE" } ] }, "Source": { "Type": "CODEPIPELINE" }, "TimeoutInMinutes": 10, "VpcConfig": { "VpcId": { "Ref": "CodeBuildVPC" }, "Subnets": [ { "Ref": "CodeBuildSubnet" } ], "SecurityGroupIds": [ { "Ref": "CodeBuildSecurityGroup" } ] }, "Cache": { "Type": "S3", "Location": "mybucket/prefix" } } }, "CodeBuildRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Statement": [ { "Action": [ "sts:AssumeRole" ], "Effect": "Allow", "Principal": { "Service": [ "codebuild.amazonaws.com" ] } } ], "Version": "2012-10-17" }, "Path": "/", "Policies": [ { "PolicyName": "CodeBuildAccess", "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": [ "logs:*", "ec2:CreateNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DeleteNetworkInterface", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeDhcpOptions", "ec2:DescribeVpcs", "ec2:CreateNetworkInterfacePermission" ], "Effect": "Allow", "Resource": "*" } ] } } ] } }, "CodeBuildVPC": { "Type": "AWS::EC2::VPC", "Properties": { "CidrBlock": "10.0.0.0/16", "EnableDnsSupport": "true", "EnableDnsHostnames": "true", "Tags": [ { "Key": "name", "Value": "codebuild" } ] } }, "CodeBuildSubnet": { "Type": "AWS::EC2::Subnet", "Properties": { "VpcId": { "Ref": "CodeBuildVPC" }, "CidrBlock": "10.0.1.0/24" } }, "CodeBuildSecurityGroup": { "Type": "AWS::EC2::SecurityGroup", "Properties": { "GroupName": "Codebuild Internet Group", "GroupDescription": "CodeBuild SecurityGroup", "VpcId": { "Ref": "CodeBuildVPC" } } } } }

YAML

Resources: CodeBuildProject: Type: AWS::CodeBuild::Project Properties: ServiceRole: !Ref CodeBuildRole Artifacts: Type: CODEPIPELINE BadgeEnabled: 'true' Environment: Type: LINUX_CONTAINER ComputeType: BUILD_GENERAL1_SMALL Image: aws/codebuild/ubuntu-base:14.04 EnvironmentVariables: - Name: varName1 Value: varValue1 - Name: varName2 Value: varValue2 Type: PLAINTEXT - Name: varName3 Value: /CodeBuild/testParameter Type: PARAMETER_STORE Source: Type: CODEPIPELINE TimeoutInMinutes: 10 VpcConfig: VpcId: !Ref CodeBuildVPC Subnets: [!Ref CodeBuildSubnet] SecurityGroupIds: [!Ref CodeBuildSecurityGroup] Cache: Type: S3 Location: mybucket/prefix CodeBuildRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Statement: - Action: ['sts:AssumeRole'] Effect: Allow Principal: Service: [codebuild.amazonaws.com] Version: '2012-10-17' Path: / Policies: - PolicyName: CodeBuildAccess PolicyDocument: Version: '2012-10-17' Statement: - Action: - 'logs:*' - 'ec2:CreateNetworkInterface' - 'ec2:DescribeNetworkInterfaces' - 'ec2:DeleteNetworkInterface' - 'ec2:DescribeSubnets' - 'ec2:DescribeSecurityGroups' - 'ec2:DescribeDhcpOptions' - 'ec2:DescribeVpcs' - 'ec2:CreateNetworkInterfacePermission' Effect: Allow Resource: '*' CodeBuildVPC: Type: 'AWS::EC2::VPC' Properties: CidrBlock: 10.0.0.0/16 EnableDnsSupport: 'true' EnableDnsHostnames: 'true' Tags: - Key: name Value: codebuild CodeBuildSubnet: Type: 'AWS::EC2::Subnet' Properties: VpcId: Ref: CodeBuildVPC CidrBlock: 10.0.1.0/24 CodeBuildSecurityGroup: Type: 'AWS::EC2::SecurityGroup' Properties: GroupName: Codebuild Internet Group GroupDescription: 'CodeBuild SecurityGroup' VpcId: !Ref CodeBuildVPC

以下の資料も参照してください。