【AWS】CodeBuildのbuildspecでAWSアカウントIDによって処理を分岐する

こんにちわ

 

今回はほとんど自分用のメモのようなものですが、CodeBuildのbuildspecでAWSアカウントIDによって処理を分岐させてみたのでここに残しておきます

※AWSの構成などは全く書かないのでご了承ください

 

▼失敗編

version: 0.2
phases:
  pre_build:
    commands:
      - aws --version
      # 環境変数の設定
      - AWS_ACCOUNT_ID=${AWS_ACCOUNT_ID}
  build:
    commands:
      ~省略~
  post_build:
    commands:
      - echo Writing image definitions file depending on AWS_ACCOUNT_ID
      - if [${AWS_ACCOUNT_ID} = "XXXXXXXXX"] ; then sed -i -e "s#<project>#$project#g" module/codebuild/taskdef.json else echo "Account ID is incorrect" fi
artifacts:
    files: 
  ~省略~

→ 下記エラーが出ました(当然ですね、、、)

/codebuild/output/tmp/script.sh: line 9: syntax error: unexpected end of file

 

▼成功編

version: 0.2
phases:
  pre_build:
    commands:
      - aws --version
      # 環境変数の設定
      - AWS_ACCOUNT_ID=${AWS_ACCOUNT_ID}
  build:
    commands:
      ~省略~
  post_build:
    commands:
      - echo Writing image definitions file depending on AWS_ACCOUNT_ID
      - |
        if [ $AWS_ACCOUNT_ID = "XXXXXXXXXX" ] ; then
          sed -i -e "s#<project>#$project#g" module/codebuild/taskdef.json
        else
          echo "Account ID is incorrect"
        fi
artifacts:
    files: 
  ~省略~

→ いわゆる literal style を利用した書き方になり、成功すれば特段何も出力されません

 

▼まとめ

いかがでしたでしょうか?

あまり実用性はないかもしれませんが、案件によってはAWSアカウントを横断するかもしれないので、良ければお使いくださいー

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA