AWS

VS Code と AWS Toolkit で始める Lambda 開発とデプロイ手順

ⓘ本ページはプロモーションが含まれています

スポンサードリンク

1️⃣ 前提条件とインストール手順

1‑1. VS Code と公式拡張機能の導入

手順 内容
https://code.visualstudio.com/ から OS に合わせて VS Code をダウンロードしインストール。
VS Code の「拡張機能」パネルで AWS Toolkit for Visual Studio Code を検索 → Install
インストール後、左サイドバーに AWS アイコンが表示され、AWS Explorer が利用可能になる。

ポイント:Toolkit は AWS Explorerデプロイ UIローカルデバッグ構成 を自動生成するため、別途スクリプトを書かずにサーバーレス開発が完結します。


1‑2. AWS CLI と SAM CLI のインストール

OS 推奨バージョン(2026‑04‑19 時点) インストール例
macOS (Homebrew) aws-cli 2.15.0
公式リリースノート: https://github.com/aws/aws-cli/releases/tag/2.15.0
sam-cli 1.106.0
公式リリースノート: https://github.com/aws/aws-sam-cli/releases/tag/v1.106.0
brew install awscli && brew install aws-sam-cli
Windows (MSI) 同上 MSI ダウンロード → インストール
choco install aws-sam-cli(Chocolatey)
Linux (apt) 同上 sudo apt-get update && sudo apt-get install -y awscli sam-cli

バージョン確認コマンド

注意:バージョンは頻繁に更新されます。常に公式リリースページで最新情報を確認してください。

Docker の必須要件

SAM CLI がローカルで関数を実行する際は、内部で Docker コンテナ を起動します。事前に Docker Desktop(Windows/macOS)または Docker Engine(Linux)をインストールし、docker run hello-world で正常に動作することを確認してください。


1‑3. ランタイム(Node.js / Python)の準備

言語 推奨バージョン(2026‑04) インストール例
Node.js 20.x (LTS)
サポート一覧: https://docs.aws.amazon.com/lambda/latest/dg/runtime-support.html#runtime-nodejs
macOS/Linux: curl -fsSL https://nodejs.org/dist/v20.x/node-v20.x-linux-x64.tar.xz \| tar -xJ -C /usr/local --strip-components=1
Windows (PowerShell): winget install OpenJS.NodeJS --version 20.x
Python 3.11
サポート一覧: https://docs.aws.amazon.com/lambda/latest/dg/runtime-support.html#runtime-python
macOS/Linux: brew install python@3.11 && python3.11 -m pip install --upgrade pip
Windows: Microsoft Store からインストール

ポイント:ランタイムは AWS の公式ドキュメントで随時更新されます。利用前に必ず最新のサポート状況を確認してください。


2️⃣ AWS Toolkit for VS Code のセットアップとプロジェクト作成

2‑1. 認証設定(SSO 推奨)

  1. コマンドパレット Ctrl+Shift+PAWS: Connect to AWS を選択。
  2. 「SSO」オプションを選び、ブラウザで組織の SSO ポータルにサインイン。
  3. 認証情報が $HOME/.aws/config に自動保存されます(例:sso_start_url, sso_region, sso_account_id, sso_role_name)。

参考: https://docs.aws.amazon.com/ja_jp/toolkit-for-vscode/latest/userguide/remote-lambda.html

2‑2. リージョン・ロールの選択

  • AWS Explorer のプロファイル右クリック → Change Region → 必要なリージョン(例:ap-northeast-1)を指定。
  • ロールが必要な場合は Switch Role → 事前に作成した LambdaExecutionRole を選択。

2‑3. SAM アプリケーション雛形の生成

手順 内容
コマンドパレット → AWS: Create new SAM Application
「Runtime」画面で Node.js 20.x または Python 3.11 を選択。
テンプレートは Hello World Example(最小構成)を選び、プロジェクト名と保存先を入力。

生成されるディレクトリ例:

まとめ:Toolkit が内部で sam init を呼び出すため、CLI の知識がなくても数クリックで SAM プロジェクトが完成します。


3️⃣ ローカル実行・デバッグ

3‑1. launch.json の自動生成と最小カスタマイズ

Toolkit が launch.json を自動作成します。基本はそのままで動作し、必要に応じて以下だけ変更すれば OKです。

項目 目的
envFile .env に格納した環境変数をコンテナへ注入
program / handler ハンドラのパスがテンプレートと一致しているか確認

Node.js 用例

3‑2. ブレークポイントでステップ実行

  1. src/app.js(または app.py)の任意行をクリックして赤丸ブレークポイントを設定。
  2. デバッグパネルから Attach to SAM Local を選択 → F5 キーで開始。
  3. VS Code が自動的に sam local invoke を実行し、コンテナ内の Lambda がブレークポイントで停止します。

3‑3. ローカルテストコマンド

コマンド 説明
sam local invoke "HelloWorldFunction" -e events/event.json JSON イベントを渡して単体関数を実行。
sam local start-api --port 3000 API Gateway をエミュレートし、ローカルで HTTP リクエストが受けられるようにする。

Docker 必要:上記コマンドはすべて Docker コンテナ内で実行されます。Docker が起動していないとエラーになるので事前確認を。


4️⃣ デプロイ手順と検証

4‑1. Toolkit の UI デプロイウィザード

  1. AWS Explorer で対象プロジェクト右クリック → Deploy Serverless Application
  2. リージョンは自動選択、必要に応じて変更。
  3. スタック名(例:my-sam-app-prod)を入力。
  4. S3 バケットは既存か「Create new bucket」を選択。バケット名はグローバルで一意であること、リージョンがデプロイ先と同じであることに注意(例:sam-deploy-2026-123456789012)。
  5. 「Auto create IAM roles」や「Change set preview」を有効化し、最小権限ロールを自動生成。

ポイント:デプロイ時に作成される CloudFormation テンプレートは template.yaml を元にしています。S3 バケットが存在しない場合は UI が自動で作成しますが、バケット名の衝突やリージョン不一致はデプロイ失敗の原因になるので事前に確認してください。

4‑2. CLI 版 sam deploy --guided

対話プロンプト例:

保存後は sam deploy だけで同一設定が再利用できます。

4‑3. デプロイ後の検証

確認項目 方法
関数設定・ロール Lambda コンソール → 対象関数 → Configuration > Permissions
実行テスト Lambda コンソールの Test タブでサンプルイベントを送信
ログ確認 CloudWatch コンソール → ロググループ /aws/lambda/<function-name> の最新ストリームを閲覧

ベストプラクティス:デプロイ直後は必ずコンソールと CloudWatch Logs でエラーメッセージが無いか確認し、問題があればローカルデバッグに戻ります。


5️⃣ ベストプラクティス & 簡易 CI/CD

5‑1. インクリメンタルデプロイ

  • コードだけの変更 → Toolkit の「Deploy changes?」ダイアログまたは sam deploy(差分のみ)で即時反映。
  • テンプレートやリソース構成の変更 → 事前に Change Set Preview を確認し、影響範囲を把握してからデプロイ。

5‑2. 機密情報の管理

サービス 用途
AWS Systems Manager Parameter Store (SecureString) 環境変数として Lambda に注入。例: {{resolve:ssm-secure:/myapp/prod/db_password:1}}
AWS Secrets Manager 複数キーやローテーションが必要なシークレットに最適。例: {{resolve:secretsmanager:mySecret:SecretString:password}}

template.yaml での参照例

5‑3. GitHub Actions による自動ビルド・デプロイ(サンプル)

  • OIDC により長期的なアクセスキーを保存せず、GitHub から一時的に IAM ロールを取得。
  • --no-confirm-changeset は自動デプロイ向けオプションですが、本番環境ではステージングでの事前テストを推奨。

6️⃣ まとめと次のステップ

フェーズ 主な作業
準備 VS Code・AWS Toolkit・AWS CLI (2.15.0)・SAM CLI (1.106.0)・Docker のインストール、Node.js 20 / Python 3.11 のセットアップ
プロジェクト作成 Toolkit → Create new SAM Application で雛形生成、launch.json が自動作成されローカルデバッグが即開始可能
ローカルテスト sam local invoke / sam local start-api + ブレークポイントで詳細検証
デプロイ UI ウィザードまたは sam deploy --guided でスタック作成、S3 バケット名の一意性とリージョンを確認
検証 Lambda コンソール・CloudWatch Logs で実行結果を必ずチェック
運用 インクリメンタルデプロイ、機密情報は Parameter Store/Secrets Manager に保管、GitHub Actions で CI/CD を自動化

次にやること
1. 本記事通りに環境構築し、sam local start-api でローカル API が正しく応答するか確認。
2. デプロイが成功したら、AWS 無料利用枠(Free Tier)を有効化し、本番トラフィックのシミュレーションを行う。


参考リンク一覧


これで、VS Code + AWS Toolkit を活用したサーバーレス開発のフローが網羅的に理解できるはずです。ぜひ実際に手を動かして体感してください!

スポンサードリンク

-AWS