GitHubとAWS Lambdaで始める体験型CI/CD入門ワークショップを公開しました
DX・AI・内製化の推進などにより、ソフトウェア開発に足を踏み入れる機会が増えています。
何もない状態からチーム開発しようとすると、以下の様な問題が発生します。
- AWSコンソールを直接操作してデプロイしている
- デプロイ作業が属人化されている
- 開発中・デプロイのソースコードがうまく管理できていない
- テストの自動化を仕組み化できていない
このような現場を支援する中で生まれたのが、今回公開した入門者向けワークショップです。
このワークショップでは、GitHubからAWS LambdaへのCI/CDパイプラインを数時間で構築します。
AWS LambdaのGitHub Actions CI/CD入門 | lambda-cicd-workshop

AWS Lambda関数をGitHubからAWSへデプロイするCI/CDを構築する中で以下を学べます。
aws login/OIDCによる一時認証の活用- IaC を活用したリソース作成
- テスト(CI)・デプロイ(CD)の自動化
ワークショップのやりやすさ、わかりやすさを優先し、本番適用しにくい箇所もある点はご了承ください。
ステップ
ワークショップは10のステップに分かれています
かいつまんで紹介します
1. Lambda関数を準備する -- CloudFormationでLambda関数を準備
ステップ1では、ワークショップで使うAWS Lambda関数をAWSが提供するIaCサービスであるCloudFormationで構築します。
IaC化することで、コンソール操作に依存することなく、再現性のある形で同じリソースを作成できます。
このCloudFormationテンプレートには、インフラレイヤーとアプリレイヤーの両方が含まれています。
2. GitHubにコードを置く -- リポジトリ作成とpush
ステップ2では、ステップ1でデプロイしたリソースの内,頻繁に変わる(インフラとライフサイクルの異なる)アプリケーションコードのみをGitHubで管理します。
プログラムはPythonです。
3. CI(静的解析) -- ローカル環境で手動テスト
Lambda関数はPythonで書かれています。
uv を使い、ローカルで開発環境をセットアップし、静的解析ツール(リンター)のRuffを使えるようにします。
4. GitHub ActionsのCI -- GitHub Actionsで自動テスト
ローカル環境で実行した静的解析が、GitHub上でコードを変更する(Pull Requestを作る)たびに自動で実行されるようにGitHub Actionsを設定します。
5. AWS CLIで認証する -- aws loginで一時認証情報を取得
aws loginを使って、一時認証情報を取得し、AWSをCLI操作する準備をします。
6. 手動デプロイ -- ローカル環境からデプロイ
aws loginで発行した一時認証情報を利用し、AWS CLIを使って、ローカル環境からLambda関数をデプロイします。
永続的な認証情報の発行は不要です。
7. OIDC -- GitHubとAWSの信頼関係を構築する
フェーズ5・6では、人間がブラウザでログインしてAWSを操作しました。
このフェーズでは、GitHub Actionsが同じようにAWSを操作するための認証の仕組み(OIDC)を設定します。
aws login と同様に、永続的な認証情報の発行は不要です。

8. GitHub ActionsのCD -- GitHub Actionsから自動デプロイ
フェーズ6で手動で行ったデプロイ操作を、フェーズ7で構築したOIDCの信頼関係を使ってシステム化します。
9. CI/CDパイプライン -- IssueからPRを経てAWSデプロイまで
ここまでで、CI/CDの仕組みはすべて整いました。このフェーズでは、実際の開発に近い流れでコード変更からデプロイまでを体験します。
特に、Issueに変更内容を記載し、GitHub Copilotの Coding Agent にコード修正を任せます。
agentはブランチを切ってコードを直し、draftの Pull Request を作ってくれます。そのPRに対してCIが走り、テストが通ればマージしてCDでデプロイ、という流れです。
10. まとめ -- 振り返りとこの先へ
このワークショップで構築したCI/CDパイプラインを元に、以下の様な拡張を試してみましょう。
- 既存のAWS Lambda関数への適用
- デプロイ先AWSアカウントの切り替え
- CI用テストの追加
- AWS Lambda以外のAWSサービスへの適用
最後に
このワークショップは、これまでAWS CLIやIaCを使わず、コンソールベースでAWS開発してきたユーザー向けに、数時間でGitHub×AWSのCI/CDを一通り体験できるように設計しました。
- ローカル -> AWS 間の操作をGitHub Actionsに置き換える
- 永続的な認証情報を一切払い出さずに、一時的な認証情報を利用
- GitHub Copilot のcoding agentに移譲した開発
など、基本機能・考えを一通り網羅しています。
ぜひ一度お試しください。








