AWS Lambda 関数を操作する - AWS Toolkit for VS Code

AWS Lambda 関数を操作する

AWS Toolkit for Visual Studio Code を使用すると、ローカル VS Code 環境で AWS Lambda 関数を使用できます。AWS ツールキットを使用すると、IDE を離れることなく、Lambda 関数を作成、編集、テスト、デバッグ、デプロイできます。AWS Lambda サービスの詳細については、「AWS Lambda デベロッパーガイド」を参照してください。

次のセクションでは、AWS Toolkit for Visual Studio Code で Lambda 関数 の使用を開始する方法について説明します。

注記

AWS マネジメントコンソール を使用してすでに Lambda 関数を作成している場合は、ツールキットから呼び出すことができます。さらに、AWS Lambda console から Lambda 関数を VS Code で開くことができます。詳細については、本ユーザーガイドの「AWS Lambda console から IDE へ」トピックを参照してください。VS Code で新しい Lambda 関数を作成するには、このユーザーガイドの「新しいサーバーレスアプリケーションの作成 (ローカル)」トピックで説明されているステップに従ってください。

前提条件

AWS ツールキットで AWS Lambda サービスを使用するには、次の条件を満たす必要があります。

  • AWS Toolkit for Visual Studio Code の最新バージョンがインストールされ、AWS 認証情報を使用してセットアップされている。

  • AWS Identity and Access Management (IAM) の管理アクセス許可とポリシーが、 AWS Lambda サービスと連携するように設定されている。アクセス許可を設定し、互換性のある AWS 管理ポリシーを作成する方法の詳細については、「AWS Lambda デベロッパーガイド」の「「AWS Lambda 向けの AWS Identity and Access Management 」トピックを参照してください。

  • 既存の AWS Lambda 関数がある、または作成方法に精通している。Lambda 関数を作成する方法については、 AWS Lambda デベロッパーガイド「最初の Lambda 関数を作成する」トピックを参照してください。

Lambda 関数の呼び出し

AWS アカウントから VS Code に Lambda 関数を呼び出すには、次の手順を実行します。

  1. AWS Toolkit for Visual Studio Code から、AWS エクスプローラーを展開します。

  2. AWS エクスプローラーから、[Lambda] を展開して Lambda リソースを表示します。

  3. 呼び出す Lambda 関数のコンテキストメニューを開き (右クリック)、[クラウドで呼び出し] を選択するか、[クラウドで呼び出し] アイコンを選択して、VS Code で [Remote invoke configuration] メニューを開きます。

  4. [Remote invoke configuration] メニューから、ペイロード設定を指定し、イベントに必要な情報を追加します。

    注記

    最初の呼び出しプロセスは、AWS エクスプローラーで [クラウドで呼び出し] を選択するとすぐに実行される場合があります。VS Code ターミナルの OUTPUT タブに出力が表示されます。

  5. [Remote Invoke] ボタンを選択して関数を呼び出します。VS Code ターミナルの OUTPUT タブに出力が表示されます。

Lambda 関数の削除

Lambda 関数を削除するには、次の手順を実行します。

警告

この手順は、CloudFormation に関連付けられている Lambda 関数の削除には使用しないでください。これらの関数は、CloudFormation スタックを通じて削除する必要があります。

  1. AWS Toolkit for Visual Studio Code から、AWS エクスプローラーを展開します。

  2. AWS エクスプローラーから、[Lambda] を展開して Lambda リソースを表示します。

  3. 削除する Lambda 関数を右クリックし、[削除] を選択します。

  4. プロンプトが表示されたら、関数を削除することに同意します。

関数が削除されると、AWS エクスプローラーに表示されなくなります。

Lambda 関数のダウンロード

リモート Lambda 関数から VS Code ワークスペースにコードをダウンロードして、編集とデバッグを行うことができます。

注記

Lambda 関数をダウンロードするには、アクセス可能なフォルダを持つ VS Code ワークスペースで作業する必要があります。また、AWS ツールキットは Node.js および Python ランタイムを使用する Lambda 関数でのみこの機能をサポートします。

  1. AWS Toolkit for Visual Studio Code から、AWS エクスプローラーを展開します。

  2. AWS エクスプローラーから、[Lambda] を展開して Lambda リソースを表示します。

  3. ダウンロードする Lambda 関数を右クリックし、[ダウンロード] を選択します。

  4. Lambda 関数が VS Code エディタで開き、ダウンロードが完了すると AWS エクスプローラーに表示されます。AWS ツールキットは、VS Code 実行パネルの起動設定も作成します。これにより、AWS Serverless Application Model を使用して Lambda 関数をローカルで実行およびデバッグできます。AWS SAM の使用の詳細については、「テンプレートからのサーバーレスアプリケーションの実行とデバッグ (ローカル)」を参照してください。

新しい Lambda 関数の更新のデプロイ

ローカルマシンの指定されていない一時的な場所から、新しい Lambda 関数に更新をデプロイできます。

注記

Lambda ファイルにデプロイされていない変更がある場合、VS Code エディタと AWS エクスプローラーで変更されたファイルの横に表示される [M] アイコンによって通知されます。

VS Code エディタからのデプロイ
  1. VS Code エディタで Lambda 関数からファイルを開き、ファイルを変更します。

  2. VS Code のメインメニューから手動で保存するか、 option+s (Mac) または ctrl+s (Windows) を押します。

  3. VS Code に、クラウドへの変更のデプロイを求めるプロンプトが表示されます。Deploy ボタンを選択してデプロイに同意します。

  4. VS Code にデプロイの最新ステータスが表示され、プロセスが完了すると通知します。

AWS エクスプローラーからのデプロイ
  1. VS Code エディタで Lambda 関数からファイルを開き、ファイルを変更します。

  2. AWS ツールキットから、AWS エクスプローラーを展開します。

  3. AWS エクスプローラーから、変更をデプロイする Lambda 関数を含む AWS リージョンを展開します。

  4. AWS リージョンから Lambda を展開し、変更をデプロイする関数に移動します。

  5. 関数の横にあるクイックメニューから、[コードの保存とデプロイ] アイコンを選択します。

  6. VS Code にデプロイの最新ステータスが表示され、プロセスが完了すると通知します。

既存の Lambda 関数の更新のアップロード

次の手順では、既存の Lambda 関数に加えられたローカルでの変更をアップロードする方法について説明します。この機能は、Lambda がサポートするすべてのランタイムによるアップロードをサポートします。

警告

Lambda 関数をアップロードする前に、次の点に注意してください。

  • この方法でコードを更新すると、デプロイに AWS SAM CLI は使用されず、CloudFormation スタックは作成されません。

  • AWS ツールキットはコードを検証しません。クラウドに変更をアップロードする前にコードを検証し、関数をテストしてください。

Zip アーカイブのアップロード
  1. AWS Toolkit for Visual Studio Code から、AWS エクスプローラーを展開します。

  2. AWS エクスプローラーから、[Lambda] を展開して Lambda リソースを表示します。

  3. 変更をアップロードする Lambda 関数を右クリックし、[Lambda のアップロード...] を選択して [アップロードタイプの選択] メニューを開きます。

  4. [ZIP アーカイブ] を選択して、ローカルディレクトリ内の ZIP Archive を見つけます。

  5. プロンプトが表示されたら、アップロードの内容を確認して、選択した ZIP Archive のアップロードを開始します。

  6. VS Code にアップロードのステータスが表示され、アップロードプロセスが完了すると通知されます。

ビルドせずにディレクトリをアップロードする
  1. AWS Toolkit for Visual Studio Code から、AWS エクスプローラーを展開します。

  2. AWS エクスプローラーから、[Lambda] を展開して Lambda リソースを表示します。

  3. 変更をアップロードする Lambda 関数を右クリックし、[Lambda のアップロード...] を選択して [アップロードタイプの選択] メニューを開きます。

  4. [ディレクトリ] を選択して、[ディレクトリのビルド] 画面に進みます。

  5. [ディレクトリのビルド] 画面で、[いいえ] を選択してアップロードするローカルディレクトリを選択します。

  6. プロンプトが表示されたら、アップロードの内容を確認して、選択したディレクトリをアップロードします。

  7. VS Code にアップロードのステータスが表示され、アップロードプロセスが完了すると通知されます。

ビルドでディレクトリをアップロードする
注記

以下の点に注意してください。

  • この手順には AWS Serverless Application Model CLI が必要です。

  • AWS ツールキットは、アップロード前に一致するハンドラを検出できない場合に通知します。

  • Lambda 関数にアタッチされているハンドラを変更するには、 AWS Lambda console または AWS Command Line Interface を使用します。

  1. AWS Toolkit for Visual Studio Code から、AWS エクスプローラーを展開します。

  2. AWS エクスプローラーから、[Lambda] を展開して Lambda リソースを表示します。

  3. 変更をアップロードする Lambda 関数を右クリックし、[Lambda のアップロード...] を選択して [アップロードタイプの選択] メニューを開きます。

  4. [ディレクトリ] を選択して、[ディレクトリのビルド] 画面に進みます。

  5. [ディレクトリのビルド] 画面で [はい] を選択し、アップロードするローカルディレクトリを選択します。

  6. プロンプトが表示されたら、アップロードの内容を確認して、選択したディレクトリのビルドとアップロードを開始します。

  7. VS Code にアップロードのステータスが表示され、アップロードプロセスが完了すると通知されます。

Lambda 関数の AWS SAM プロジェクトへの変換

Lambda 関数を AWS SAM スタックに変換するには、次の手順を実行します。

警告

現在、Lambda 関数を AWS SAM プロジェクトに変換する場合にサポートされているのは一部のリソースのみです。変換後に不足しているリソースを見つけるには、Lambda コンソールを確認し、AWS SAM テンプレートに手動で追加します。サポートされているリソースとサポートされていないリソースの詳細については、「 AWS CloudFormation デベロッパーガイド」の「リソースタイプのサポート」トピックを参照してください。

  1. AWS ツールキットから、AWS エクスプローラーを展開します。

  2. AWS エクスプローラーから、AWS SAM プロジェクトに変換する Lambda 関数を含む AWS リージョンを展開します。

  3. AWS リージョンから Lambda を展開し、 AWS SAM スタックに変換する関数に移動します。

  4. Lambda 関数の横にあるクイックメニューから、[SAM アプリケーションに変換] アイコンを選択してローカルファイルシステムを参照し、新しい AWS SAM プロジェクトの場所を指定します。

  5. 場所を指定すると、AWS ツールキットで Lambda 関数の AWS SAM プロジェクトへの変換が開始されます。VS Code はプロセスの最新のステータスを表示します。

    注記

    このプロセスには数分かかることがあります。

  6. VS Code からプロンプトが表示されたら、スタック名を入力し、Enter キーを押して続行します。

  7. VS Code はプロジェクトの最新ステータスを引き続き表示します。プロセスが完了すると通知し、新しい AWS SAM プロジェクトを VS Code ワークスペースとして開きます。