

# AWS Toolkit for JetBrains から AWS Lambda を操作する
<a name="building-lambda"></a>

次の項目では、AWS Toolkit for JetBrains から AWS Lambda 関数を使用する方法について説明します。

**Topics**
+ [Lambda ランタイム](lambda-runtimes.md)
+ [関数の作成](create-new-lambda.md)
+ [ローカル関数の実行 (呼び出し) またはデバッグを行う](invoke-lambda.md)
+ [リモート関数の実行 (呼び出し)](lambda-remote.md)
+ [関数設定の変更 (更新)](lambda-update.md)
+ [関数の削除](lambda-delete.md)

# AWS Toolkit for JetBrains における AWS Lambda ランタイムとサポート
<a name="lambda-runtimes"></a>

AWS Lambda では、複数の言語が、ランタイムで使用できるようにサポートされています。ランタイムは、Lambda と関数の間の呼び出しイベント、コンテキスト情報、レスポンスを中継する言語固有の環境を提供します。Lambda サービスとサポートされているランタイムの詳細については、「AWS Lambda ユーザーガイド」の「[Lambda ランタイム](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-support-policy)」トピックを参照してください。

次の内容では、AWS Toolkit for JetBrains の使用で現在サポートされているランタイム環境について説明しています。


| 名前 | 識別子 | オペレーティングシステム | アーキテクチャ | 
| --- | --- | --- | --- | 
|  Node.js 18  |  nodejs18.x  |  Amazon Linux 2  |  x86\$164、arm64  | 
|  Node.js 16  |  nodejs16.x  |  Amazon Linux 2  |  x86\$164、arm64  | 
|  Node.js 14  |  nodejs14.x  |  Amazon Linux 2  |  x86\$164、arm64  | 
|  Python 3.11  |  python3.11  |  Amazon Linux 2  |  x86\$164、arm64  | 
|  Python 3.10  |  python3.10  |  Amazon Linux 2  |  x86\$164、arm64  | 
|  Python 3.9  |  python3.9  |  Amazon Linux 2  |  x86\$164、arm64  | 
|  Python 3.8  |  python3.8  |  Amazon Linux 2  |  x86\$164、arm64  | 
|  Python 3.7  |  python3.7  |  Amazon Linux 2  |  x86\$164  | 
|  Java 17  |  java17  |  Amazon Linux 2  |  x86\$164、arm64  | 
|  Java 11  |  java11  |  Amazon Linux 2  |  x86\$164、arm64  | 
|  Java 8  |  java8.al2  |  Amazon Linux 2  |  x86\$164、arm64  | 
|  Java 8  |  java8  |  Amazon Linux 2  |  x86\$164  | 
|  .NET 6  |  dotnet6  |  Amazon Linux 2  |  x86\$164、arm64  | 
|  Go 1.x  |  go1.x  |  Amazon Linux 2  |  x86\$164  | 

# AWS Toolkit for JetBrains を使用して AWS Lambda 関数を作成する
<a name="create-new-lambda"></a>

AWS Toolkit for JetBrains を使用して、AWS サーバーレスアプリケーションの一部である AWS Lambda 関数を作成できます。または、スタンドアロンの Lambda 関数を作成することもできます。

AWS サーバーレスアプリケーションの一部である Lambda 関数を作成するには、この項目の残り部分をスキップし、[アプリケーションを作成する](deploy-serverless-app.md) を参照してください。

スタンドアロン Lambda 関数を作成するには、最初に AWS Toolkit for JetBrains をインストールする必要があります。まだ AWS アカウントへ接続していない場合、初回接続を行ってください。その後、IntelliJ IDEA、PyCharm、WebStorm、JetBrains Rider が実行されている状態で、次のいずれかを実行します
+ AWS Explorer を開きます (まだ開いていない場合)。関数を作成するために別の AWS リージョンに切り替える必要がある場合、今すぐ行います。その後、**[Lambda]** を右クリックして**[新規 AWS Lambda の作成]** を選択します。  
![\[AWS エクスプローラーから起動する AWS Lambda 関数の作成\]](http://docs.aws.amazon.com/ja_jp/toolkit-for-jetbrains/latest/userguide/images/lambda-create-aws-explorer.png)

  [[関数の作成](create-function-dialog.md)] ダイアログボックスに入力し、[**関数の作成**] を選択します。AWS Toolkit for JetBrains はデプロイに対応する AWS CloudFormation スタックを作成し、**AWS エクスプローラー**の **[Lambda]** リストに関数名を追加します。デプロイが失敗した場合、スタックのイベント ログを確認して原因を特定することができます。
+ [Java](https://docs.aws.amazon.com/lambda/latest/dg/java-programming-model-handler-types.html)、[Python](https://docs.aws.amazon.com/lambda/latest/dg/python-programming-model-handler-types.html)、[Node.js](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html)、または [C\$1](https://docs.aws.amazon.com/lambda/latest/dg/dotnet-programming-model-handler-types.html) の関数ハンドラを実装するコードファイルを作成します。

  実行 (呼び出し) するリモート関数を作成するために、別の AWS リージョンに切り替える必要がある場合、今すぐ行います。その後、コードファイルで関数ハンドラーの横にあるガター内の **[Lambda]** アイコンを選択し、**[新規 AWS Lambda の作成]** を選択します。[[関数の作成](create-function-dialog.md)] ダイアログボックスに入力し、[**関数の作成**] を選択します。  
![\[コードファイルの既存の関数ハンドラーから開始する AWS Lambda 関数の作成\]](http://docs.aws.amazon.com/ja_jp/toolkit-for-jetbrains/latest/userguide/images/lambda-create-code-file.png)
**注記**  
**[Lambda]** アイコンが関数ハンドラーの横にあるガターに表示さない場合、**[設定]**/**[ユーザー設定]**: **[ツール]**、**[AWS]**、**[プロジェクト設定]**、**[すべての潜在的な AWS Lambda ハンドラーのガターアイコンを表示する]** とボックスを選択し、現在のプロジェクトで表示されるようにしてください。また、関数ハンドラーが対応する AWS SAM テンプレートですでに定義されている場合、**[新規 AWS Lambda の作成]** コマンドは表示されません。

  **[関数の作成]** を選択すると、AWS Toolkit for JetBrains は、接続された AWS アカウントに対応する関数を Lambda サービスに作成します。オペレーションが正常に実行された場合、**AWS エクスプローラー**を更新した後、**[Lambda]** リストに新しい関数の名前が表示されます。
+ AWS Lambda 関数を含むプロジェクトがすでにあり、最初に別の AWS リージョンに切り替えて関数を作成する必要がある場合、今すぐ行います。その後、[Java](https://docs.aws.amazon.com/lambda/latest/dg/java-programming-model-handler-types.html)、[Python](https://docs.aws.amazon.com/lambda/latest/dg/python-programming-model-handler-types.html)、[Node.js](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html)、[C\$1](https://docs.aws.amazon.com/lambda/latest/dg/dotnet-programming-model-handler-types.html) の関数ハンドラーを含むコードファイルで、関数ハンドラーの横にあるガターの **[Lambda]** アイコンを選択します。**[新規 AWS Lambda の作成]** を選択し、[[関数の作成]](create-function-dialog.md) ダイアログボックスに入力したら、**[関数の作成]** を選択します。  
![\[コードファイルの既存の関数ハンドラーから開始する AWS Lambda 関数の作成\]](http://docs.aws.amazon.com/ja_jp/toolkit-for-jetbrains/latest/userguide/images/lambda-create-code-file.png)
**注記**  
**[Lambda]** アイコンが関数ハンドラーの横にあるガターに表示さない場合、**[設定]**/**[ユーザー設定]**: **[ツール]**、**[AWS]**、**[プロジェクト設定]**、**[すべての潜在的な AWS Lambda ハンドラーのガターアイコンを表示する]** とボックスを選択し、現在のプロジェクトで表示されるようにしてください。また、関数ハンドラーが対応する AWS SAM テンプレートですでに定義されている場合、**[新規 AWS Lambda の作成]** コマンドは表示されません。

  **[関数の作成]** を選択すると、AWS Toolkit for JetBrains は、接続された AWS アカウントに対応する関数を Lambda サービスに作成します。**AWS エスクプローラー**を更新した後、操作が正常に実行された場合、**[Lambda]** リストに新しい関数の名前が表示されます。

関数を作成すると、関数のローカルバージョンを実行 (呼び出し) またはデバッグしたり、リモートバージョンを実行 (呼び出し) したりすることができます。

# AWS Toolkit for JetBrains を使用して AWS Lambda 関数のローカル バージョンの実行 (呼び出し) またはデバッグを行う
<a name="invoke-lambda"></a>

この手順を完了するには、実行 (呼び出す) またはデバッグする AWS Lambda 関数を作成する必要があります(まだ作成していない場合)。
**注記**  
Lambda 関数のローカル バージョンを実行(呼び出す)またはデバッグし、デフォルト以外の任意プロパティまたはオプションのプロパティでその関数をローカルで実行(呼び出す)またはデバッグするには、その関数の対応する AWS SAM テンプレートファイル (たとえば、プロジェクト内の `template.yaml` という名前のファイル内) にこれらのプロパティを最初に設定する必要があります。利用可能なプロパティのリストについては、GitHub の [awslabs/serverless-application-model](https://github.com/awslabs/serverless-application-model/) リポジトリで「[AWS::Serverless::Function](https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction)」を参照してください。

1. 以下のいずれかを実行します。
   + [Java](https://docs.aws.amazon.com/lambda/latest/dg/java-programming-model-handler-types.html)、[Python](https://docs.aws.amazon.com/lambda/latest/dg/python-programming-model-handler-types.html)、[Node.js](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html)、[C\$1](https://docs.aws.amazon.com/lambda/latest/dg/dotnet-programming-model-handler-types.html) の関数ハンドラーを含むコードファイルで、関数ハンドラーの横にあるガターの Lambda アイコンを選択します。[**Run '[Local]' (「[ローカル]」の実行)**] または [**Debug '[Local]' (「[ローカル]」のデバッグ)**] を選択します。  
![\[コードファイルの関数ハンドラーから開始し、Lambda 関数のローカル バージョンの実行またはデバッグを行う\]](http://docs.aws.amazon.com/ja_jp/toolkit-for-jetbrains/latest/userguide/images/lambda-local-code.png)
   + [**プロジェクト**] ツールウィンドウがすでに開かれていて、関数を含むプロジェクトが表示されている状態で、プロジェクトの `template.yaml` ファイルを開きます。関数のリソース定義の横にあるガーターで [**実行**] アイコンを選択し、[**Run '[Local]' (「[ローカル]」の実行)**] または [**Debug '[Local]' (「[ローカル]」のデバッグ)**] を選択します。  
![\[AWS SAM テンプレートファイルの関数定義から開始し、Lambda 関数のローカル バージョンの実行またはデバッグを行う\]](http://docs.aws.amazon.com/ja_jp/toolkit-for-jetbrains/latest/userguide/images/lambda-local-template.png)

1. [[設定の編集(ローカル関数の設定)]](run-debug-configurations-dialog-local.md) ダイアログボックスが表示されたら入力し、**[実行]** または **[デバッグ]** を選択します。結果は、[**実行**] または [**デバッグ**] ツールウィンドウに表示されます。
   + **[設定の編集]** ダイアログボックスが表示されず、既存の設定を変更する場合、最初に設定を変更して最初からこの手順を繰り返します。
   + 設定の詳細が見つからない場合は、[**テンプレート**]、[**AWS Lambda**] を展開し、[**ローカル**] を選択します。**[OK]** を選択し、最初からこの手順を繰り返します。

# AWS Toolkit for JetBrains を使用して AWS Lambda 関数のリモートバージョンを実行する (呼び出す)
<a name="lambda-remote"></a>

AWS Lambda 関数のリモートバージョンは、AWS アカウントの Lambda サービス内にすでに存在するソースコードの関数です。

この手順を完了するには、最初に AWS Toolkit for JetBrains をインストールする必要があります。まだインストールしていない場合、最初に AWS アカウントに接続してください。その後、IntelliJ IDEA、PyCharm、WebStorm、JetBrains Rider が実行されている状態で、次の手順を実行してください。

1. AWS Explorer を開きます (まだ開いていない場合)。関数を含む別の AWS リージョンに切り替える必要がある場合、今すぐ行います。

1. **[Lambda]** を展開し、関数の名前が一覧表示されていることを確認します。次に、この手順のステップ 3 にスキップします。

   関数の名前が一覧表示されていない場合、実行する (呼び出す) Lambda 関数を作成してください。

   AWS サーバーレスアプリケーションの一部として関数を作成した場合、そのアプリケーションもデプロイする必要があります。

   [Java](https://docs.aws.amazon.com/lambda/latest/dg/java-programming-model-handler-types.html)、[Python](https://docs.aws.amazon.com/lambda/latest/dg/python-programming-model-handler-types.html)、[Node.js](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html)、[C\$1](https://docs.aws.amazon.com/lambda/latest/dg/dotnet-programming-model-handler-types.html) の関数ハンドラーを実装するコードファイルの作成によって関数を作成した場合、コードファイル内で関数ハンドラーの横にある Lambda アイコンを選択します。その後、**[新規 AWS Lambda の作成]** を選択します。[[関数の作成](create-function-dialog.md)] ダイアログボックスに入力し、[**関数の作成**] を選択します。

1. **AWS エクスプローラー**で **[Lambda]** を開いた状態で、関数の名前を右クリックして **[Remote (リモート) を実行]**を選択します。  
![\[最初に AWS エクスプローラーから Lambda 関数のリモート バージョンを実行する\]](http://docs.aws.amazon.com/ja_jp/toolkit-for-jetbrains/latest/userguide/images/lambda-remote.png)

1. [[設定の編集 (リモート関数の設定)]](run-debug-configurations-dialog-remote.md) ダイアログボックスが表示されたら入力し、**[実行]** または **[デバッグ]** を選択します。結果は、[**実行**] または [**デバッグ**] ツールウィンドウに表示されます。
   + **[設定の編集]** ダイアログボックスが表示されず、既存の設定を変更する場合、最初に設定を変更して最初からこの手順を繰り返します。
   + 設定の詳細が見つからない場合は、[**テンプレート**]、[**AWS Lambda**] を展開し、[**ローカル**] を選択します。**[OK]** を選択し、最初からこの手順を繰り返します。

# AWS Toolkit for JetBrains を使用して AWS Lambda 関数設定を変更 (更新) する
<a name="lambda-update"></a>

AWS Toolkit for JetBrains を使用して AWS Lambda 関数の設定を変更 (更新) するには、次のいずれかの操作を行います。
+ [Java](https://docs.aws.amazon.com/lambda/latest/dg/java-programming-model-handler-types.html)、[Python](https://docs.aws.amazon.com/lambda/latest/dg/python-programming-model-handler-types.html)、[Node.js](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html)、または [C\$1](https://docs.aws.amazon.com/lambda/latest/dg/dotnet-programming-model-handler-types.html) の関数ハンドラを含むコードファイルを開いた状態で、メインメニューで、[**実行**]、[**設定の編集**] を選択します。[[Run/Debug Configurations (実行/デバッグ設定)](run-debug-configurations-dialog.md)] ダイアログボックスに入力し、[**OK**] を選択します。
+ AWS Explorer を開きます (まだ開いていない場合)。関数を含む別の AWS リージョンに切り替える必要がある場合、今すぐ行います。**[Lambda]** を展開して設定を変更する関数の名前を選択したら、次のいずれかの操作を行います。
  + **タイムアウト、メモリ、環境変数、実行ロールなどの設定の変更** - 関数の名前を右クリックし、**[関数設定の更新]** を選択します。  
![\[[Update Function Configuration (関数設定の更新)] コマンドの選択\]](http://docs.aws.amazon.com/ja_jp/toolkit-for-jetbrains/latest/userguide/images/update-function-configuration.png)

    [[設定の更新]](update-configuration-dialog.md) ダイアログボックスに入力し、**[更新]** を選択します。
  + **入力ペイロードなどの設定の変更** - メインメニューで**[実行]**、**[設定の編集]** を選択します。[[Run/Debug Configurations (実行/デバッグ設定)](run-debug-configurations-dialog.md)] ダイアログボックスに入力し、[**OK**] を選択します。  
![\[[Edit Configurations (設定の編集)] コマンドの選択\]](http://docs.aws.amazon.com/ja_jp/toolkit-for-jetbrains/latest/userguide/images/edit-configurations.png)

    設定の詳細が見つからない場合は、まず [**テンプレート**]、[**AWS Lambda**] を展開し、次に (関数のローカルバージョンの) [**ローカル**] または (同じ関数のリモートバージョンの) [**リモート**] を選択します。[**OK**] を選択し、この手順を最初から繰り返します)。
  + **関数ハンドラー名や Amazon Simple Storage Service (Amazon S3) ソース バケットなどの設定の変更** - 関数名を右クリックし、**[関数コードの更新]** を選択します。  
![\[[Update Function Code (関数コードの更新)] コマンドの選択\]](http://docs.aws.amazon.com/ja_jp/toolkit-for-jetbrains/latest/userguide/images/update-function-code.png)

    [[Update Code (コードの更新)](update-code-dialog.md)] ダイアログボックスに入力し、[**更新**] を選択します。
  + **上記の箇条書きに記載されていないその他の利用可能なプロパティ設定の変更** - 関数の対応する AWS SAM テンプレートファイル(たとえば、プロジェクト内の`template.yaml`という名前のファイル)でこれらの設定を変更します。

    利用可能なプロパティ設定のリストについては、GitHub の[awslabs/serverless-application-model](https://github.com/awslabs/serverless-application-model/) リポジトリの[AWS::Serverless::Function](https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction)を参照してください。

# AWS Toolkit for JetBrains を使用して AWS Lambda 関数を削除する
<a name="lambda-delete"></a>

AWS Toolkit を使用し、AWS サーバーレスアプリケーションの一部である AWS Lambda 関数を削除したり、スタンドアロン Lambda 関数を削除したりすることができます。

AWS サーバーレスアプリケーションの一部である Lambda 関数を削除するには、この項目の残り部分をスキップし、[アプリケーションの削除](sam-delete.md) を参照してください。

スタンドアロン Lambda 関数を削除するには、次の手順を実行してください。

1. AWS Explorer を開きます (まだ開いていない場合)。関数を含む別の AWS リージョンに切り替える必要がある場合、今すぐ行います。

1. **[Lambda]** を展開します。

1. 削除する関数の名前を右クリックし、[**Delete Function (関数の削除)**] を選択します。  
![\[関数の削除コマンドの選択\]](http://docs.aws.amazon.com/ja_jp/toolkit-for-jetbrains/latest/userguide/images/lambda-delete.png)

1. 関数名を入力して削除を確認し、[**OK**] を選択します。関数の削除が成功すると、AWS Toolkit for JetBrains により [**Lambda**] リストから関数名が削除されます。