基本 AWS Lambda プロジェクト
AWS Toolkit for Visual Studio では、Microsoft .NET Core プロジェクト テンプレートを使用して Lambda 関数を作成できます。
Visual Studio .NET Core Lambda プロジェクトを作成する
Lambda-Visual Studio テンプレートとブループリントを使用して、プロジェクトの初期化を高速化できます。Lambda ブループリントには、柔軟なプロジェクト基盤の作成を簡素化する、事前に作成された関数が含まれています。
注記
Lambda サービスでは、パッケージタイプごとにデータ制限があります。データ制限の詳細については、「AWS Lambda ユーザーガイド」の「Lambda クォータ」のトピックを参照してください。
Visual Studio で Lambda プロジェクトを作成するには
-
Visual Studio の [ファイル] メニューを展開し、[新規] を展開し、[プロジェクト] を選択します。
-
[新しいプロジェクト] ダイアログボックスで、[言語]、[プラットフォーム]、および [プロジェクトタイプ] ドロップダウンボックスを [すべて] に設定し、[検索] フィールドに「aws lambda」と入力します。[AWS Lambda プロジェクト (.NET Core - C#)] テンプレートを選択します。
-
[名前] フィールドに「
AWSLambdaSample」と入力し、ファイルの [場所]を指定して、[作成] を選択して続行します。 -
[ブループリントの選択] ページで、[空の関数] ブループリントを選択し、[完了] を選択して Visual Studio プロジェクトを作成します。
プロジェクトファイルを確認する
見直すべきプロジェクトファイルとして、aws-lambda-tools-defaults.json と Function.cs の 2 つがあります。
次の例は、プロジェクトの一部として自動的に作成される aws-lambda-tools-defaults.json ファイルを示しています。このファイルのフィールドを使用してビルドオプションを設定できます。
注記
Visual Studio のプロジェクトテンプレートにはさまざまなフィールドが含まれています。以下の点に注意してください。
関数ハンドラー: Lambda 関数の実行時に実行されるメソッドを指定します。
[関数ハンドラー] フィールドに値を指定すると、公開ウィザードにその値が事前に入力されます。
ただし、関数、クラス、またはアセンブリの名前を変更した場合、
aws-lambda-tools-defaults.jsonファイル内の対応するフィールドも更新する必要があります。
{ "Information": [ "This file provides default values for the deployment wizard inside Visual Studio and the AWS Lambda commands added to the .NET Core CLI.", "To learn more about the Lambda commands with the .NET Core CLI execute the following command at the command line in the project root directory.", "dotnet lambda help", "All the command line options for the Lambda command can be specified in this file." ], "profile": "default", "region": "us-west-2", "configuration": "Release", "function-architecture": "x86_64", "function-runtime": "dotnet8", "function-memory-size": 512, "function-timeout": 30, "function-handler": "AWSLambdaSample::AWSLambdaSample.Function::FunctionHandler" }
Function.cs ファイルを調べます。Function.cs は、c# 関数を Lambda 関数として公開できるように定義します。このFunctionHandlerは、Lambda 関数の実行時に実行される Lambda 関数です。このプロジェクトでは、FunctionHandler という 1 つの関数が定義され、入力テキストに ToUpper() を呼び出します。
これでプロジェクトを Lambda に発行できるようになりました。
Lambda への発行
以下の手順と画像は、AWS Toolkit for Visual Studio を使用して関数を Lambda にアップロードする方法を示しています。
Lambda への関数の公開
-
[表示] を展開し、AWS Explorer を選択して [AWS Explorer] に移動します。
-
[Solution Explorer] で、公開するプロジェクトのコンテキストメニュー (右クリック) を開き、[AWS Lambda に発行] を選択して [Lambda 関数のアップロード] ウィンドウを開きます。ダウンメニューから Lambda ランタイムを選択します。
-
[Lambda 関数のアップロード] ウィンドウで、以下のフィールドに入力します。
-
パッケージタイプ: [
Zip] を選択します。ZIP ファイルはビルドプロセスの結果として作成され、Lambda にアップロードされます。または、[パッケージタイプ] で [Image] を選択することもできます。「チュートリアル: 基本的な Lambda プロジェクト Docker イメージの作成」では、[パッケージタイプ] で [Image] を使用した公開方法について説明しています。 -
Lambda ランタイム: ドロップダウンメニューから Lambda ランタイムを選択します。
-
アーキテクチャ: 任意のアーキテクチャの矢印を選択します。
-
関数名: [新しい関数を作成する] の矢印を選択し、Lambda インスタンスの表示名を入力します。この名前は AWS Explorer と AWS マネジメントコンソール ディスプレイの両方で参照されます。
-
ハンドラー: このフィールドを使用して関数ハンドラーを指定します。例:
AWSLambdaSample::AWSLambdaSample.Function::FunctionHandler。 -
(オプション) [説明]: AWS マネジメントコンソール でインスタンスに表示される説明文を入力します。
-
設定: ドロップダウンメニューから任意の設定を選択します。
-
フレームワーク: ドロップダウンメニューから任意のフレームワークを選択します。
-
設定の保存: このボックスを選択すると、現在の設定が
aws-lambda-tools-defaults.jsonに保存され、今後のデプロイメントのデフォルトとして使用されます。 -
[次へ] を選択して、[関数の高度な詳細] ウィンドウに進みます。
-
-
[関数の高度な詳細] ウィンドウで、以下のフィールドに入力します。
-
ロール名: アカウントに関連付けられているロールを選択します。このロールは、関数内のコードによって行われる AWS のサービスコールに一時的な認証情報を提供するために使用されます。ロールがない場合は、スクロールしてドロップダウンセレクタで [AWS マネージドポリシーに基づいた新しいロール] までスクロールし、[AWSLambdaBasicExecutionRole] を選択します。このロールには最小限のアクセス許可があります。
注記
アカウントには IAM ListPolicies アクションを実行できるアクセス許可が必要です。この権限がない場合には、[Role Name (ロール名)] リストは空となり、続行できません。
-
(オプション) Lambda 関数が Amazon VPC 上のリソースにアクセスする場合、サブネットおよびセキュリティグループを選択します。
-
(オプション) Lambda 関数に必要となる環境変数を設定します。キーは、無料のデフォルトのサービスキーによって自動的に暗号化されます。または、AWS KMS キーを指定することもできますが、これは料金が発生します。KMS
は、データの暗号化に使用される暗号化キーの作成と管理を行うために使用できる、マネージド型サービスです。AWS KMS キーがある場合は、リストから選択できます。
-
-
[アップロード] を選択すると、[関数のアップロード中] ウィンドウが開き、アップロードプロセスを開始します。
注記
[Uploading Function] (関数のアップロード中) ページは、関数がAWS にアップロードされる間に表示されます。アップロード後にレポートを表示するためにウィザードを開いたままにするには、アップロードが完了する前に、フォームの最後にある [Automatically close wizard on successful completion] (正常完了時にウィザードを自動で閉じる) のチェックボックスをオフにします。
関数がアップロードされると、Lambda 関数はライブ状態になります。[Function:] (関数:) ビューページが開き、新しい Lambda 関数の設定が表示されます。
-
[関数のテスト] タブの自由文入力フィールドに 「
hello lambda!」と入力し、[呼び出し] を選択して Lambda 関数を手動で呼び出します。入力したテキストは、大文字に変換されて [レスポンス] タブに表示されます。注記
[AWS Explorer] で、AWS Lambda ノードの下にあるデプロイ済みインスタンスをダブルクリックすると、いつでも [関数:] ビューを再び開くことができます。
-
(オプション) Lambda 関数が正常に発行されたことを確認するには、AWS マネジメントコンソール にログインして [Lambda] を選択します。コンソールには、先ほど作成した関数を含め、発行されたすべての Lambda 関数が表示されます。
クリーンアップ
この例で開発を続行しない場合は、デプロイした関数を削除して、アカウント内の未使用のリソースに対して請求されないようにします。
注記
Lambda は、ユーザーに代わって Lambda 関数を自動でモニタリングし、Amazon CloudWatch からメトリクスを報告します。関数のモニタリングとトラブルシューティングについては、「AWS Lambda 開発者ガイドの」「Amazon CloudWatch を使用した AWS Lambda 関数のトラブルシューティングとモニタリング」を参照してください。
関数を削除するには
-
AWS Explorer から AWS Lambda ノードを展開します。
デプロイしたインスタンスを右クリックし、[削除]を選択します。