SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

これだけは押さえておきたい! AWSサービス最新アップデート

コスト削減も実現! AWS CodeBuildとGitHubを連携し、GitHub Actionsセルフホステッドランナーを利用しよう

第23回 AWS CodeBuild

  • X ポスト
  • このエントリーをはてなブックマークに追加

AWS CodeBuildとGitHubの連携

 利用するためには、CodeBuildとGitHubを事前に接続する必要があります。接続方法としては、公式ドキュメントに記載の通り、OAuth Appまたはパーソナルアクセストークン(PAT)を使用する方法があります。

 ここでは、OAuth Appを使用して接続する方法を紹介します。

 AWSマネジメントコンソールにアクセスし、「ビルドプロジェクトの作成」に進みます。「OAuthを使用して接続する」を選択し、「GitHubに接続」を押下します。

OAuth接続
OAuth接続

 接続が正常に確立されると、GitHubアカウントまたは組織内のリポジトリを一覧表示できるようになります。

リポジトリ選択
リポジトリ選択

AWS Codebuildのプロジェクトを作成する

 AWS CodeBuildとGitHubの接続が確立したら、公式ドキュメントにある手順に従い、CodeBuildプロジェクトを作成します。

 「コードの変更がこのレポジトリにプッシュされるたびに再構築する」にチェックを入れて、「フィルターグループ」でWORKFLOW_JOB_QUEUEDを選択します。

 この設定により、GitHub Actionsから呼び出しがあるたびに、作成したCodeBuildプロジェクトをセルフホステッドランナーとして動作させることが可能です。

Webhookを利用してAWS Codebuildのプロジェクトを作成
Webhookを利用してAWS Codebuildのプロジェクトを作成

GitHubActionsでCodeBuildを参照する

 CodeBuildプロジェクトの作成が完了したら、GitHubに戻り、下記のようなワークフローファイルを作成します。

name: Hello World
on: [push]
jobs:
  Hello-World-Job:
    runs-on: codebuild-test-${{ github.run_id }}-${{ github.run_attempt }}
    steps:
      - run: echo "Hello World!"

 runs-onの値でCodeBuildの実行環境を指定しています。下記のように指定すると、CodeBuildプロジェクトを作り変えることなくLambdaの環境設定を上書きすることができます。

 詳細は、公式ドキュメントをご参照ください。

runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-<environment-type>-<runtime-version>-<instance-size>

 ジョブ終了後、下記のようなログがGitHub Actionsで出力されます。

GitHub Actionsに出力されたログ
GitHub Actionsに出力されたログ

 また、CodeBuild上では、GitHub Actionsのホストランナー起動ログが出力されます。

CodeBuildに出力されたログ
CodeBuildに出力されたログ

ジョブが起動できない場合

 ジョブの実行が始まらない場合は、GitHub側でWebhookのログを確認してみてください。CodeBuild側がWebhookの呼び出しに対して400を返しエラーとなっている場合があります。

 「RecentDelivers」ログからエラー原因を確認することができます。

ジョブが起動しない場合はGitHubのWebhookのログから原因を確認できる
ジョブが起動しない場合はGitHubのWebhookのログから原因を確認できる

 この例では、プロジェクトネームが一致していないことが原因であることがわかります。

エラー原因の一例(プロジェクトネームが一致していない)
エラー原因の一例(プロジェクトネームが一致していない)

まとめ

 CodeBuildによる、GitHub Actionsセルフホステッドランナー機能のアップデートを紹介しました。今回のアップデートにより、GitHub ActionsとAWSサービスの連携がより柔軟になり、ユーザにとって嬉しいアップデートではないでしょうか。

 本記事が今後のAWS活用のお役に立てば幸いです。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
これだけは押さえておきたい! AWSサービス最新アップデート連載記事一覧

もっと読む

この記事の著者

松原 千波(株式会社NTTデータ)(マツバラ チナミ)

 2023年にNTTデータに入社。入社以来、パブリッククラウドを活用したシステム構築、運用に携わる。現在は、AWS共通基盤のDevOps業務に従事。注目しているキーワードは、“Platform Engineering”。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/19594 2024/06/06 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング