火曜日, 7月 8, 2025
火曜日, 7月 8, 2025
- Advertisment -
ホームニューステックニュース【初心者向け】VSCode + AWS Toolkitで始める!GUIで簡単 AWS SAM Lambda 開発入門 #lambda

【初心者向け】VSCode + AWS Toolkitで始める!GUIで簡単 AWS SAM Lambda 開発入門 #lambda



【初心者向け】VSCode + AWS Toolkitで始める!GUIで簡単 AWS SAM Lambda 開発入門 #lambda

はじめに

こんにちは。スタディング開発担当のドカ食いダイスキ!山本です。
KIYO ラーニングではサービスの提供に AWS を活用しています。
今回は VSCode の拡張機能「AWS Toolkit」と「AWS SAM」を利用した Lambda の開発方法をご紹介します。

対象読者

  • AWS Lambda 開発をこれから始めたい方
  • AWS SAM のローカル開発環境を整えたい方
  • CLI は苦手、GUI ベースで操作したい方

背景と目的

スタディングでは基本的に EC2・ECS を利用してアプリケーションを提供しています。
ただし、一部の機能に関しては Lambda 等を利用して処理を行っています。
上記の通り Lambda の利用頻度は少ないことから、開発・デプロイは AWS コンソール上で都度行っていましたが、

  • 関数の設定が複雑化
  • 関連リソースの把握
  • デプロイ作業の手間
  • マイクロサービスの推進

などの理由から、簡単に構築・デプロイ管理をする方法を考えていました。
その際、AWS Builders Flash に掲載されている「サーバーレスのローカル開発環境を整備する」という連載を拝見し、VSCode の拡張機能「AWS Toolkit」と「AWS SAM」を利用した Lambda の開発に辿り着きました。

事前準備

  • AWS アカウント(作成済)
  • VSCode(インストール済)
  • AWS CLI(認証設定済)
  • Docker(ローカル実行用)

AWS Toolkit とは?

AWS Toolkit は、Visual Studio Code 用の公式拡張機能で、AWS リソースの操作・デバッグ・デプロイなどを支援してくれるツールです。

AWS Toolkit のポイント

項目 内容
公式拡張機能 Amazon 提供、信頼性が高い
GUI で AWS リソース操作 Lambda 関数の作成・実行・デプロイ
ローカルデバッグ対応 VSCode 内で Lambda のブレークポイント可
CloudWatch Logs 表示 GUI からリアルタイムにログ確認可能
プロファイル&リージョン選択 簡単に環境切替ができる

AWS Toolkit の主な機能

機能 説明
Lambda 関数作成 SAM テンプレートをベースにアプリケーション作成
ローカル実行 / デバッグ Docker 経由で Lambda をローカル起動&デバッグ
SAM ビルド & デプロイ SAM CLI のコマンドを GUI から呼び出し
AWS Explorer VSCode 内で AWS リソースを一覧表示・操作
イベント生成 Lambda 用のテストイベントを GUI で作成&保存
CloudWatch Logs 閲覧 デプロイ後のログ確認を VSCode で完結可能

AWS Toolkit のインストール手順

  1. VSCode の拡張機能から「AWS Toolkit」を検索してインストール(外部サイト)
  2. AWS プロファイル or SSO で認証
  3. リージョン設定(例:東京リージョン → ap-northeast-1)

AWS SAM とは?

AWS SAM(Serverless Application Model)は、サーバーレスアプリケーションを簡単に定義・デプロイできるフレームワークです。
CloudFormation を拡張しており、YAML 形式で AWS リソースを簡潔に記述できます。

AWS SAM のポイント

  • サーバーレスアプリケーションの定義を簡単に
    • CloudFormation を拡張したテンプレート形式(YAML/JSON)で、Lambda 関数や API Gateway、DynamoDB などの AWS リソースを宣言的に記述できます
  • 開発からデプロイまでを支援
    • SAM CLI を使うことで、ローカル環境での関数実行や API のテスト、ビルド、パッケージング、クラウドへのデプロイを一元管理できます
  • ローカルでのテストが可能
    • Lambda 関数や API Gateway の動作をローカルで模擬的に起動できるため、開発効率が上がります
  • CloudFormation との互換性
    • SAM テンプレートは内部的に CloudFormation テンプレートに変換されるため、AWS の標準 IaC ツールとの親和性が高いです

AWS SAM の主な機能

機能 説明
テンプレート定義 Lambda 関数や API Gateway、DynamoDB などを記述
ローカル実行 sam local invoke や sam local start-api でテスト
ビルド・パッケージング 依存関係の解決やコードのパッケージ化を自動化
デプロイ sam deploy で AWS 環境へ一括デプロイ
ログ参照 sam logs で CloudWatch Logs を簡単に確認

AWS SAM CLI のインストール手順

▶︎ macOS (Homebrew)

▶︎ Windows (MSI インストーラー)

公式からダウンロード → インストール(外部サイト)

SAM アプリケーションの作成

AWS Toolkit – Explorer のメニューから

Create Lambda SAM Application

を実行すると、対話形式でアプリケーションを作成できます。

Create_Lambda_SAM_Application.png

今回は以下の内容を選択します:

  • ランタイム: Node.js 22.x

    011_ランタイム.png

  • アーキテクチャ: arm64

    012_アーキテクチャ.png

  • テンプレート: AWS SAM Hello World

    013_テンプレート.png

  • 保存先: (任意のディレクトリ)

    014_保存先.png

  • アプリケーション名: デフォルト(lambda-nodejs22.x

    015_アプリケーション名.png

作成後のディレクトリ構成

lambda-nodejs22.x/
├── events/
│   └── event.json ...Lambda関数のテスト用イベントデータが記載されています。ローカルで関数をテストする際に使います。 ※今回は紹介しません
├── hello-world/ ...サンプルのLambda関数が格納されているディレクトリです。
│   ├── tests/unit
│   │   └── test-handler.mjs ...Lambda関数のユニットテストコードです。 ※今回は紹介しません
│   ├── .npmignore
│   ├── app.mjs ...Lambda関数の本体(Node.jsのESモジュール形式)です。
│   └── package.json ...Node.js アプリケーションの依存関係やスクリプトが記載されています。 ※今回は紹介しません
├── .gitignore
├── README.md
├── README.TOOLKIT.md
├── samconfig.toml ...AWS SAM CLIの設定ファイルです。デプロイ時のパラメータやプロファイルなどが保存されます。
└── template.yaml ...AWS SAMのテンプレートファイルです。Lambda関数やAPI GatewayなどAWSリソースの定義が記述されています。

Lambda 関数の本体

lambda-nodejs22.x/hello-world/app.mjs

export const lambdaHandler = async (event, context) => {
  const response = {
    statusCode: 200,
    body: JSON.stringify({
      message: 'hello world',
    }),
  };

  return response;
};

ローカル実行(VSCode)

※今回のテンプレートでは .vscode/launch.json(デバッグ構成を管理するための設定ファイル)が自動作成されます。そのため、手動での設定は基本的に不要です。

  1. Lambda のハンドラー関数に [AWS: Add Debug Configuration | AWS: Edit Debug Configuration] と表示されているか確認します

    • 表示されない場合は AWS Toolkit の設定から Samcli: Enable Code Lenses を有効にしてください

    021_Add_Debug.png

  2. AWS: Add Debug Configuration を選択してください

  3. デバッグの構成を選択します

    • 今回のテンプレートで作成した場合は、以下の構成が選択できます
      • lambda-nodejs22.x/template.yml:HelloWorldFunction

        • Lambda 関数を直接呼び出す構成
      • lambda-nodejs22.x/template.yml:HelloWorldFunction(API Event: HelloWorld)

        • API Gateway から Lambda 関数を呼び出す構成
    • 今回は「Lambda 関数を直接呼び出す構成」を選択します

    023_Debug_Template.png

  4. .vscode/launch.json ファイルが作成され、3 で選択した構成が反映されます

  5. 実行とデバッグのメニューから、構成を選択して実行します

    025_デバッグ構成.png

  6. Lambda ランタイムの Docker イメージ上で関数が実行されます(Docker Desktop が起動していることを確認してください)

ブレークポイントが設定できるためステップ実行や変数の確認が可能となり、動作確認やバグ修正が簡単に行えます。

020_ブレークポイント.png

デプロイ

AWS Toolkit – Application Builder から今回作成したアプリケーションに対して

を実行すると、対話形式でアプリケーションをデプロイできます。

030_Deploy_SAM_Application.png

今回は以下の内容を選択します:

  • デプロイコマンド: Deploy …すべてのリソースを CloudFormation 経由でデプロイ ※ Sync は差分のみをデプロイ

    031_Deploy.png

  • デプロイに必要なパラメータソース: Specify required parameters and save as defaults …必要なパラメータを指定してデフォルトとして保存する ⇒ 次回から Use default values from samconfig (デフォルトパラメーター)として利用可能です

    032_Parameter.png

  • リージョン: ap-northeast-1

    033_リージョン.png

  • CloudFormation スタック: sample-stack(新規作成)

    034_CloudFormationスタック.png

  • デプロイ時に一時的に使う S3 バケット: Create a SAM CLI managed S3 bucket(新規作成) …次回以降新規作成を選択した場合も、このタイミングで作成されたバケットが使い回されるようです

    035_S3バケット.png

デプロイしたリソースを削除する方法

デプロイした SAM アプリケーションのリソースは、AWS CloudFormation スタックとしてまとめて管理されます。
スタックを削除することでリソースが一括削除されます。

  1. AWS Toolkit – Explorer のメニューを開きます

  2. [CloudFormation] → 対象のスタック(sample-stack)を右クリックします

  3. 「Delete CloudFormation Stack」を選択します

    040_Delete.png

  4. 確認ダイアログで「Delete」を選択します

    044_Confirm.png

※今回のテンプレートでは発生しませんが、デプロイしたリソースによっては手動削除が必要なケースもあります。
※CloudFormation でエラーになる場合は、削除保護や依存関係を確認してください。

まとめ

項目 内容
開発効率 Lambda 関数の作成〜テストが GUI で完結
初心者にもおすすめ CLI が苦手でも AWS リソースと連携できる
ローカル実行可能 動作確認やバグ修正が簡単
デプロイ簡単 SAM テンプレートを基に AWS 環境へ反映

おわりに

今回ご紹介した内容を活用すれば、Lambda 関数の構築やデプロイ管理がとても簡単に行えるようになります。
本記事では基本的な部分にフォーカスしましたが、エイリアスやバージョン管理、S3 など他の AWS リソースとの連携も AWS SAM で柔軟に対応できます。
みなさんも「AWS Toolkit」と「AWS SAM」を利用した開発の第一歩を踏み出してみてください!

KIYOラーニング株式会社について

当社のビジョンは『世界一「学びやすく、分かりやすく、続けやすい」学習手段を提供する』ことです。革新的な教育サービスを作り成長させていく事で、オンライン教育分野でナンバーワンの存在となり、世界に展開していくことを目指しています。

プロダクト

  • スタディング:「学びやすく・わかりやすく・続けやすい」オンライン資格対策講座
  • スタディングキャリア:資格取得者の仕事探しやキャリア形成を支援する転職サービス
  • AirCourse:受け放題の動画研修がついたeラーニングシステム(LMS)

KIYOラーニング株式会社では一緒に働く仲間を募集しています





Source link

Views: 0

RELATED ARTICLES

返事を書く

あなたのコメントを入力してください。
ここにあなたの名前を入力してください

- Advertisment -