このプロジェクトで使用しているGitHub Actionsワークフローのドキュメント。
ファイル: build-lambda.yml
トリガー条件:
mainブランチへのlambda/配下の変更push時- 手動実行(Actions タブから)
処理内容:
- Lambda関数のDockerイメージをビルド
- コミット数から自動的にバージョンタグ生成(v8, v9...)
- ECRにプッシュ(バージョンタグ +
latestタグ)
出力:
- ECRイメージ:
<ACCOUNT_ID>.dkr.ecr.ap-northeast-1.amazonaws.com/baseball-lambda:vX - ECRイメージ:
<ACCOUNT_ID>.dkr.ecr.ap-northeast-1.amazonaws.com/baseball-lambda:latest
リポジトリの Settings → Secrets and variables → Actions で以下を設定:
| Secret名 | 説明 | 取得方法 |
|---|---|---|
AWS_ACCESS_KEY_ID |
AWSアクセスキーID | IAMユーザーから取得 |
AWS_SECRET_ACCESS_KEY |
AWSシークレットキー | IAMユーザーから取得 |
IAM権限要件:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecr:GetAuthorizationToken",
"ecr:BatchCheckLayerAvailability",
"ecr:PutImage",
"ecr:InitiateLayerUpload",
"ecr:UploadLayerPart",
"ecr:CompleteLayerUpload"
],
"Resource": "*"
}
]
}- GitHubリポジトリの Actions タブを開く
- ワークフロー一覧から Build & Push Lambda Image を選択
- 実行履歴と結果を確認
- Actions タブ → Build & Push Lambda Image
- Run workflow ボタンをクリック
- ブランチ選択して Run workflow
┌─────────────────┐
│ lambda/配下を │
│ 変更してコミット │
└────────┬────────┘
│
▼
┌─────────────────┐
│ mainブランチに │
│ push/merge │
└────────┬────────┘
│
▼
┌─────────────────────────┐
│ GitHub Actions 自動起動 │
│ - Dockerビルド │
│ - ECRプッシュ (v8, v9...) │
└────────┬────────────────┘
│
▼
┌─────────────────────────┐
│ 手動でCDKスタック更新 │
│ 1. tagOrDigest: 'vX' │
│ 2. npx cdk deploy │
└─────────────────────────┘
症状: Actions タブで赤色のエラーアイコン
確認項目:
- GitHub Secretsが正しく設定されているか
- IAMユーザーにECR権限があるか
- ログを確認してエラー内容を特定
エラー例: denied: User is not authorized
対処法:
- IAMユーザーにECR関連権限を付与
- アクセスキーが有効か確認
原因: コミット履歴が変更された(rebase等)
対処法:
BASE_VERSIONを手動で増やす(build-lambda.yml Line 32)
- CDK差分チェック(PR時)
- 自動デプロイ(テスト環境)
- Slack通知(ビルド完了時)
- ドキュメントリンクチェック