[小ネタ] 1行でAWS CodeBuildのプロジェクト一覧を列挙し、各プロジェクトで使用されるイメージを出力してみた。

2021.07.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

福岡オフィスの梶原です。AWS CodeBuildを長くつかっているといつの間にか使用しているイメージが古くなって、yum update が失敗することとかないですか?
私はまさに今遭遇しています。(bintrayのサービス終了に伴ってアップデートできない状況だったりします)

あまり脈略もないですが、本日はクラスメソッド創立記念日ということで、せっかくなので使っているCodeBuildのイメージを棚卸したいと思います。

実は、公式ドキュメントにも同様のシェルスクリプトが載っていますが、自分の環境だとシステムパラメータと処理が重複してしまい。うまく取得できなかったので、せっかくなので、1行で取得できるようにしました。

https://docs.aws.amazon.com/ja_jp/codebuild/latest/userguide/view-project-details.html#view-project-details-cli

ということで、出落ちですが、さくっとCodeBuildのイメージの一覧が欲しい人は以下を実施してください

CodeBuildのイメージの一覧取得コマンド

1ライナーで

aws codebuild list-projects  | jq '.projects[]' | xargs -I{} aws codebuild batch-get-projects --names {} | jq '.projects[] | .name + " : " + .environment.image'

出力イメージ

"apt-update-test : aws/codebuild/standard:1.0"
"cache-test : aws/codebuild/amazonlinux2-x86_64-standard:2.0"

処理詳細

1ライナーではないかもしれませんが、行継続で見やすくしてみました。

aws codebuild list-projects \
    | jq '.projects[]' \
    | xargs -I{} aws codebuild batch-get-projects --names {} \
    | jq '.projects[] | .name + " : " + .environment.image'
  1. codebuild list-projects で一覧を取得します
  2. jq コマンドでproject名を抽出します
  3. xargs を使用して、batch-get-projects に渡します
  4. jq コマンドで見やすく整形します。

これを機に、使用しているイメージを刷新しようと思います。 AWS CLI では一覧取得したIDなどで、詳細情報を取得することがちょくちょくあるので、備忘録としても残しておきたいと思います。

参考情報

ビルドプロジェクトの詳細を表示する (AWS CLI) https://docs.aws.amazon.com/ja_jp/codebuild/latest/userguide/view-project-details.html#view-project-details-cli

list-projects — AWS CLI 1.19.105 Command Reference https://docs.aws.amazon.com/cli/latest/reference/codebuild/list-projects.html

[小ネタ]CodeBuild(Ubuntuベース)でYarn PackagingのGPG errorが発生した場合の一時回避方法