見出し画像

【CloudFormation】buildspec.ymlを作成・配置しない方法を見つけた【CodeBuild】

CloudFormationでCodeBuildを構築する際、buildspec.ymlを作成・配置しないで済む方法を見つけたので投稿します。ビルド時に単純なコマンドを実行するだけならこちらの方法が手軽で良いなぁと思いました。

1.きっかけ

DevelopersIO内で面白い記事を見つけました。

CodeBuildのビルドコマンド内でS3のsyncコマンドを実行することで、ファイル同期を行うというもの。アイディアが凄いなぁと思いました。

IaC(Infrastructure as Code)目指してCloudFormationを作成しようとした所、"Buildspec"をどう書けば良いのだろうか?と悩んだため、本投稿で対処方法を書きます。

GUI(AWSのコンソール操作)だと「ビルドコマンド」のフォームにコマンド入力すれば良いんですけどね...。

スクリーンショット 2021-09-13 22.31.49

2.結論

Properties > Source > BuildSpecにbuildspec.ymlの中身を書けばOKでした。

以下、必要な部分だけ抜粋です。

Resources:
 CodeBuild:
   Type: AWS::CodeBuild::Project
   Properties:
    Source:
     Type: NO_SOURCE
     BuildSpec: |-
      version: 0.2
      phases:
        build:
          commands:
            - aws s3 sync s3://copy-test-a s3://copy-test-b #ここに必要なコマンドを書く

てっきり"BuildSpec"にはbuildspec.ymlのパスやファイル名しか書けないと思っていたので、見つけた時感動しました。

3.リンク

■AWS::CodeBuild::Project Source
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html

この記事が気に入ったらサポートをしてみませんか?