AWS Toolkit for Visual Studio
ユーザーガイド

チュートリアル: AWS Toolkit for Visual Studio の AWS Lambda プロジェクトを使用する

Visual Studio 用の AWS Lambda .NET Core プロジェクトテンプレートを使用すると、Microsoft .NET Core を使って AWS Lambda 関数を容易に作成できます。

AWS Toolkit for Visual Studio のセットアップの詳細と前提条件については、「AWS Toolkit for Visual Studio の AWS Lambda Templates を使用する」を参照してください。

Visual Studio .NET Core Lambda プロジェクトを作成する

  1. Visual Studio を開き、[File (ファイル)] メニューで [New (新規)] を選択し、[Project (プロジェクト)] を選択します。

  2. [Installed (インストール済み)] ペインで [Visual C#] と [AWS Lambda Project (.NET Core)(] テンプレートを選択します。

    選択可能なプロジェクトには 2 つのタイプがあります。

    • AWS Lambda プロジェクトは、個々の Lambda 関数を開発およびデプロイするためのプロジェクトです。

    • AWS Serverless Applications プロジェクトは、サーバーレス AWS CloudFormation テンプレートで Lambda 関数を作成するためのプロジェクトです。AWS サーバーレスアプリケーションでは、関数以上のものを定義できます。たとえば、データベースの作成や IAM ロールの追加などを、サーバーレスデプロイと同時に追加できます。AWS サーバーレスアプリケーションでは、一度に複数の関数をデプロイすることもできます。

    
                  AWS Lambda プロジェクト向けプロジェクトタイプ
  3. プロジェクトタイプを選択した後、設計図を選択します。[AWS Lambda Project (.NET Core)] については、[Select Blueprint (設計図の選択)] ページでいくつかの Lambda 関数テンプレートが表示されます。

    
                  AWS Lambda プロジェクトの設計図
  4. 開発する Lambda 関数の種類を選択し、[Finish (完了)] を選んで、Visual Studio プロジェクトを作成します。これでプロジェクトの構造とコードを確認できるようになりました。

プロジェクトファイルを確認する

プロジェクトの一部として作成される、aws-lambda-tools-defaults.json ファイルを確認します。このファイルでオプションを設定できます。オプションはデフォルトでは Lambda ツールが読み取ります。Visual Studio で作成されたプロジェクトテンプレートは、これらのフィールドの多くをデフォルト値を使用して設定します。ここで関数ハンドラを指定します。そのため、ウィザードで設定する必要はありません。ただし、関数、クラス、アセンブリの名前を変更した場合は、aws-lambda-tools-defaults.json ファイルでフィールドを更新する必要があります。

{ "profile":"default", "region" : "us-east-2", "configuration" : "Release", "framework" : "netcoreapp1.0", "function-runtime":"dotnetcore1.0", "function-memory-size" : 256, "function-timeout" : 30, "function-handler" : "BlogExample::BlogExample.Function::FunctionHandler" }

この aws-lambda-tools-default.json ファイルを使用する場合、Lambda ツールが関数をデプロイするために必要なもので、残っているのは、Lambda 関数と IAM ロールの名前です。

これでプロジェクトを Lambda に発行できるようになりました。

Lambda への発行

関数を Lambda に発行するには

  1. [Solution Explorer] でプロジェクトを右クリックし、[Publish to AWS Lambda (AWS Lambda へのパブリッシュ)] を選択します。

    
                  Visual Studio プロジェクトを AWS Lambda にパブリッシュする
  2. [Upload Lambda Function (Lambda 関数のアップロード)] ページの [Function Name (関数名)] で、関数の名前を入力するか、以前に発行された関数を再発行します。続いて、[Next (次へ)] を選択します。

    
                  Lambda 関数のアップロード画面
  3. [Advanced Function Details (アドバンスト関数の詳細)] ページで、次のようにフィールドを設定します。

    • 必須: アカウントに関連付けられているロールの [Role Name (ロール名)] を入力します。AWS 管理ポリシーまたは独自の管理ポリシーに基づいて、既存のロールまたは新しいロールを選択します。このロールは、関数内のコードによって行われる AWS のサービスコールに認証情報を提供するために使用されます。アカウントには IAM ListPolicies アクションを実行できるアクセス権限が必要です。この権限がない場合には、[Role Name (ロール名)] リストは空となり、続行できません。

    • オプション: Lambda 関数が Amazon VPC 上のリソースにアクセスする場合は、サブネットとセキュリティグループを選択します。

    • オプション: Lambda 関数が必要とする、環境変数を設定します。キーは、デフォルトのサービスキーで自動的に暗号化されます (無料)。または、AWS KMS キーを指定することもできます (料金がかかります)。KMS は、データの暗号化に使用される暗号化キーの作成と管理を行うために使用できる、マネージド型サービスです。AWS KMS キーがある場合は、リストから選択できます。

  4. [Upload (アップロード)] を選択します。

    
                  [Advanced Function Details] ページで Lambda 関数の詳細を設定する
  5. 関数のアップロード中は [Uploading Function (関数のアップロード)] ページが表示され、アップロードが完了すると、自動的に閉じられます。レポートを表示するためにウィザードを開いたままにするには、アップロードが完了する前に、フォームの最後にある [Automatically close wizard on successful completion (正常完了時にウィザードを自動で閉じる)] のチェックボックスをオフにします。レポートの表示を終了するには、ページを閉じます。

    
                  [Uploading Function] ページ
  6. 関数がアップロードされると、[Function (関数)] ページが開きます。ページの左側のタブを使用して関数をテストし、イベントソースを追加して、ログを表示します。[Configuration (設定)] タブを使用して、VPC サブネットおよびセキュリティグループ、メモリ、タイムアウト、環境変数を追加します。

    
                  関数のテストのためのリクエストの例を表示している [Function] ページ
  7. イベントソースを追加して、AWS リソース (Amazon S3 バケット、Amazon SNS トピック、Amazon Kinesis Data Streams ストリームなど) と Lambda 関数の間の接続を確立するには、[Event Sources (イベントソース)] を選択します。[Add Event Source (イベントソースの追加)] ページが表示されます。

    [Add Event Source (イベントソースの追加)] ページの [Source Type (ソースタイプ)] で、適切なイベントソースを選択し、[OK] を選択してイベントソースを追加します。

    
                  [Add Event Source] ページ
  8. 関数をテストするには、[Example Requests (リクエスト例)] で、リクエストの例を選択します。

    
                  関数のテストのためのリクエストの例を表示している [Function] ページ
  9. テストを実行するには、[Invoke (呼び出し)] を選択します。

    
                  テスト関数を起動するページ
  10. [Log output (ログ出力)] でテストからの出力を確認します。

    
                  関数のテストの出力ログ

Lambda 関数は発行されると、使用できる状態になっています。ユースケースについては、「AWS Lambda の使用方法の例」を参照してください。

Lambda は Lambda 関数を自動的にモニタリングし、Amazon CloudWatch を通じてメトリクスを報告します。関数のモニタリングおよびトラブルシューティングを行うには、「Amazon CloudWatch を使用した AWS Lambda 関数のトラブルシューティングとモニタリング」を参照してください。