

 AWS Cloud9 は新規顧客には利用できなくなりました。 AWS Cloud9 の既存のお客様は、通常どおりサービスを引き続き使用できます。[詳細はこちら](https://aws.amazon.com/blogs/devops/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/)

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Toolkit を使用した AWS Lambda 関数の操作 AWS
<a name="lambda-toolkit"></a>

Toolkit は [AWS Lambda](https://aws.amazon.com/lambda/)関数 AWS をサポートしています。Toolkit は、Lambda プラグインによって以前提供された機能を AWS 置き換えます AWS Cloud9。Toolkit を使用すると AWS 、[サーバーレスアプリケーション](https://aws.amazon.com/serverless/)の一部である Lambda 関数のコードを作成できます。さらに、Lambda 関数をローカルまたは AWSで呼び出すことができます。

Lambda は、カスタムコードまたはさまざまな AWS のサービスで生成されるイベントに応答してコードを実行する、フルマネージドのコンピューティングサービスです。これらのサービスには、Amazon Simple Storage Service (Amazon S3)、Amazon DynamoDB、Amazon Kinesis、Amazon Simple Notification Service (Amazon SNS)、Amazon Cognito などがあります。

**重要**  
サーバーレスアプリケーションモデル (SAM) が提供するリソースを使用する Lambda アプリケーションを構築する場合は、「[Toolkit AWS SAM を使用した の操作 AWS](serverless-apps-toolkit.md)」を参照してください。

**Topics**
+ [リモートの Lambda 関数を呼び出す](#remote-lambda)
+ [Lambda 関数のダウンロード、アップロード、削除](#import-upload-delete-lambda)

## リモートの Lambda 関数を呼び出す
<a name="remote-lambda"></a>

Toolkit AWS を使用すると、さまざまな方法で[AWS Lambda](https://aws.amazon.com/lambda/)関数を操作できます。

Lambda の詳細については、[ デベロッパーガイドAWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/) を参照してください。

**注記**  
 AWS マネジメントコンソール または別の方法で を使用して Lambda 関数を既に作成しているとします。 AWS ツールキットから呼び出すことができます。Toolkit を使用してデプロイ AWS できる新しい関数を作成するには AWS Lambda、まず[サーバーレスアプリケーションを作成](serverless-apps-toolkit.md#sam-create)する必要があります。

### 前提条件
<a name="remote-lambda-prereq"></a>
+ で設定した認証情報に、 AWS Lambda サービスへの適切な読み取り/書き込みアクセスが含まれていることを確認します。**AWS Explorer** の **[Lambda]** の下に、「Error loading Lambda resources」 (Lambda リソースのロードエラー) のようなメッセージが表示される場合は、これらの認証情報にアタッチされているアクセス許可をチェックしてください。アクセス許可に加えた変更は、 AWS ツールキットの **AWS Explorer** に反映されるまで数分かかります。

### Lambda 関数の呼び出し
<a name="invoke-lam-func"></a>

**重要**  
 AWS Toolkit を使用して API メソッドを呼び出すと、元に戻すことができないリソースが変更される可能性があります。たとえば、`POST` メソッドを呼び出すと、呼び出しが成功すれば API のリソースが更新されます。

Toolkit AWS を使用して、 で Lambda 関数を呼び出すことができます AWS 。

****

1. **[AWS Explorer]** で、呼び出したい Lambda 関数の名前を選択し、コンテキストメニューを開きます。

1. **呼び出しを選択します AWS**。

1. 開いている［**呼び出し関数 **］ウィンドウで、Lambda 関数が必要とするペイロードのオプションを選択します。(ペイロードは、入力として Lambda 関数に提供したい JSON です）。**[Browse]** (参照) を選択して、ペイロードとして使用するファイルを選択するか、ドロップダウンフィールドを使用してペイロードのテンプレートを選択します。この場合、テキストボックスに示されているように、Lambda 関数は、入力としての文字列として表示される可能性があります。

**[Invoke]** (呼び出し) を選択して Lambda を呼び出し、ペイロードで渡します。

 AWS Lambda タブに Lambda 関数の出力が表示されます。

## Lambda 関数のダウンロード、アップロード、削除
<a name="import-upload-delete-lambda"></a>

Toolkit AWS には、 AWS Cloud9 IDE で Lambda 関数をインポートおよびアップロードするためのオプションが用意されています。

### Lambda 関数のダウンロード
<a name="w2aac28c32c13b5"></a>

Lambda 関数をダウンロードすることで、関数を記述するプロジェクトファイルを AWS クラウドからダウンロードし、IDE AWS Cloud9 で操作することもできます。

### Lambda 関数のダウンロード


1. **AWS Explorer** の [Lambda] ノードの下で、関数を右クリックしてコンテキストメニューを開き、**[Download]** (ダウンロード) を選択します。

1. **新しいプロジェクトの WorkSpace フォルダの選択**を求められた時には、次のいずれかを試すことができます。
   + Lambda プロジェクトと同じ名前でサブフォルダを作成するために提案されたフォルダを選択します。
   + **別のフォルダを選択**を選択して、参照するダイアログボックスを開き、プロジェクトサブフォルダに別の親フォルダを選択します。

   IDE で新しいエディタウィンドウが開きます。

### ダウンロードされた Lambda 関数の実行とデバッグの設定
<a name="w2aac28c32c13b7"></a>

ダウンロードした Lambda 関数をサーバーレスアプリケーションとして実行およびデバッグするには、`launch.json` ファイルで起動設定を定義する必要があります。で作成された Lambda 関数は、起動設定に含まれない AWS マネジメントコンソール 場合があります。その場合は、手動で追加する必要があります。

### 起動設定に Lambda 関数を追加するには


1. Lambda 関数をダウンロードしたら、**[Environment]** (環境) ウィンドウを開いてフォルダとファイルを表示します。

1. 次に、Lambda 関数が `/home/ec2-user/.c9/launch.json` ファイルに含まれていることを確認します。存在しない場合は、次の操作を実行して、関数のコードに CodeLens リンクを追加します。

   1. Lambda 関数を定義するソースコードファイル (`.js` ファイルや `.py` ファイルなど) を開きます。次に、Lambda 関数を `launch.json` ファイルに追加するために使用できる CodeLens リンクがあるかどうかを確認します。CodeLens は関数の上に表示され、`Add Debug Config` リンクが含まれています。

   1. IDE の左側にある **[Go]** (移動) (虫眼鏡アイコン) を選択し、「sam hint」と入力して `AWS: Toggle SAM hints in source files` コマンドを表示します。コマンドを選択して実行します。

   1. Lambda ソースコードファイルを閉じて、再度開きます。

   1. ファイルを再度開いた後で CodeLens がソースコードで使用可能である場合は、`Add Debug Config` を選択して起動設定を追加します。

1. SAM ヒントオプションを切り替えた後でも CodeLens を追加できない場合は、次の手順を実行して起動設定を追加します。

   1. IDE の左側にある **[Go]** (移動) (虫眼鏡アイコン) を選択し、「config」と入力して `AWS: SAM Debug Configuration Editor` コマンドを表示します。コマンドを選択して実行します。

   1. **[SAM Debug Configuration Editor]** (SAM デバッグ設定エディタ) が表示されます。このエディタを使用して、起動設定のプロパティを定義できます。詳細については、「[サーバーレスアプリケーションの実行とデバッグのため、SAM テンプレートを使用](serverless-apps-toolkit.md#sam-run-debug-template)」で「[configuring launch properties](serverless-apps-toolkit.md#properties)」のステップを参照してください。
**注記**  
Lambda 関数に SAM アプリケーション用の `template.yaml` がない場合は、これを追加する必要があります。詳細については、「[AWS SAM テンプレートの作成](https://docs.aws.amazon.com/codedeploy/latest/userguide/tutorial-lambda-sam-template.html)」を参照してください。

   1. エディタで必要な設定情報の入力を完了すると、起動設定が **launch.json** ファイルに追加されます。

Lambda 関数の起動設定を定義したら、次の手順に従って実行できます。

1. IDE の上部で、[**Auto**] (自動) の横にある矢印を選択し、該当する起動設定を選択します。

1. 続いて、[**Run**] (実行) を選択します。

### Lambda 関数のアップロード
<a name="w2aac28c32c13b9"></a>

既存の Lambda 関数をローカルコードで更新できます。この方法でコードを更新しても、デプロイに AWS Serverless Application Model CLI は使用されず、 AWS CloudFormation スタックも作成されません。これにより、Lambda でサポートされている任意のランタイムを使って Lambda 関数をアップロードできます。

 AWS Toolkit を使用して Lambda 関数をアップロードするには、いくつかのインターフェイスオプションがあります。

#### [**環境**] ウィンドウまたは [**コマンドペイン**] からアップロードする
<a name="upload-lambda-from-environment"></a>

1. プロジェクトファイルの **[Environment]** (環境) ウィンドウで、アップロードする Lambda アプリケーションの `template.yaml` を右クリックしてコンテキストメニューを開き、**[Upload Lambda]** (Lambda のアップロード) を選択します。

   または、**Ctrl\$1P** を押して **[どこにでも移動]** ペインを開き、「lambda」と入力して **[AWS Lambda のアップロード]** コマンドにアクセスします。続いて、このコマンドを選択してアップロードプロセスを開始します。

1. 次に、アップロード AWS リージョン する を選択します。

1. ここで、Lambda 関数をアップロードするためのオプションを選択します。

   **.zip アーカイブをアップロード**

   1. メニューから［**ZIP アーカイブ**］を選択します。

   1. ファイルシステムから .zip AWS Cloud9 ファイルを選択し、**開く** を選択します。

   **ディレクトリをそのままアップロード**

   1. メニューから［**ディレクトリ**］を選択します。

   1.  AWS Cloud9 ファイルシステムからディレクトリを選択し、**開く**を選択します。

1. イベントを処理する Lambda 関数ハンドラーを指定します。関数が呼び出されると、Lambda はこのハンドラーメソッドを実行します。
**注記**  
Lambda 関数を選択するときは、表示されるリストから選択できます。選択する関数がわからない場合は、ツールキットで利用可能な Lambda 関数の Amazon リソース番号 (ARN) を入力できます。

   このコードを Lambda 関数の最新バージョンとして公開するかどうかを尋ねるダイアログが表示されます。[**はい**] を選択して、公開を確認します。
**注記**  
フォルダの親フォルダを右クリックしてコンテキストメニューを開き、**[Upload Lambda]** (Lambda のアップロード) を選択して、Lambda アプリケーションをアップロードすることもできます。親フォルダがアップロードのために自動的に選択されます。

#### **AWS Explorer** からアップロードする
<a name="upload-lambda-from-explorer"></a>

1. **AWS Explorer** で、インポートする Lambda 関数の名前を右クリックしてコンテキストメニューを開きます。

1. [**Lambda のアップロード**] を選択します。

1. Lambda 関数をアップロードするための 3 つのオプションから選択します。

   **事前に作成された .zip アーカイブをアップロード**

   1. メニューから［**ZIP アーカイブ**］を選択します。

   1. ファイルシステムから .zip AWS Cloud9 ファイルを選択し、**開く** を選択します。

   1. モーダルダイアログでアップロードを確認します。こうして、.zip ファイルがアップロードされ、デプロイ後にすぐに Lambda が更新されます。

   **ディレクトリをそのままアップロード**

   1. メニューから［**ディレクトリ**］を選択します。

   1.  AWS Cloud9 ファイルシステムからディレクトリを選択し、**開く**を選択します。

   1. ディレクトリの構築を求められたら、［**いいえ**］を選択します。

   1. モーダルダイアログでアップロードを確認します。これにより、ディレクトリがそのままアップロードされ、デプロイ後にすぐに Lambda が更新されます。

   **ディレクトリの構築とアップロード**

   1. メニューから［**ディレクトリ**］を選択します。

   1.  AWS Cloud9 ファイルシステムからディレクトリを選択し、**開く**を選択します。

   1. ディレクトリの構築を求められたら、［**はい**］を選択します。

   1. モーダルダイアログでアップロードを確認します。これにより、 AWS SAM CLI `sam build` コマンドを使用して ディレクトリにコードが構築され、デプロイ後すぐに Lambda が更新されます。

### リモートアクセス用の Lambda 関数のデプロイ
<a name="w2aac28c32c13c11"></a>

ローカル関数をサーバーレス SAM アプリケーションとしてデプロイすることで、リモートで使用可能にすることができます。

### Lambda 関数を SAM アプリケーションとしてデプロイするには


1. **[AWS Explorer]** ウィンドウで、**[Lambda]** ノードを右クリックしてコンテキストメニューを開き、**[Deploy SAM Application]** (SAM アプリケーションのデプロイ) を選択します。

1. コマンドペインで、関数をサーバーレスアプリケーションとして定義する [[YAML テンプレート](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-template-anatomy.html)] を選択します。

1. 次に、Lambda デプロイ用の Amazon S3 バケットを選択します。デプロイ用のバケットを作成することもできます。

1. 次に、デプロイ先の CloudFormation スタックの名前を入力します。既存のスタックを指定すると、コマンドはスタックを更新します。新しいスタックを指定すると、コマンドはスタックを作成します。

   スタックの名前を入力すると、Lambda 関数が SAM アプリケーションとしてデプロイを開始します。デプロイが成功すると、SAM Lambda アプリケーションをリモートで使用できるようになります。これにより、他の AWS Cloud9 開発環境からダウンロードまたは呼び出すことができます。

Lambda 関数をゼロから作成する場合は、「[Toolkit を使用してサーバーレスアプリケーションを作成する AWS](serverless-apps-toolkit.md#create-serverless-app)」のステップに従うことをお勧めします。

### Lambda 関数の削除
<a name="delete-lambda"></a>

同じコンテキスト (右クリック) メニューを使用して Lambda 関数を削除することもできます。

**警告**  
この手順は、[CloudFormation](https://docs.aws.amazon.com/cloudformation/) に関連付けられている Lambda 関数の削除には使用しないでください。例えば、このガイドで前述した[サーバーレスアプリケーションの作成](serverless-apps-toolkit.md#sam-create)時に作成した Lambda 関数を削除しないでください。これらの関数は、 CloudFormation スタックを通じて削除する必要があります。

****

1. **AWS Explorer** で、削除したい Lambda 関数の名前を選択し、そのコンテキスト (右クリック) メニューを開きます。

1. **[削除]** を選択します。

1. 表示されるメッセージで、［**はい**] を選択して削除を確認します。

関数が削除されると、**AWS Explorer** に表示されなくなります。