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 のセットアップの詳細と前提条件については、「Using the AWS Lambda Templates in the AWS Toolkit for Visual Studio」を参照してください。

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

  1. Visual Studio を開き、[File] メニューで [New] を選択し、[Project] を選択します。

  2. [インストール済み] ペインで [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] を選択します。

    Visual Studio プロジェクトを AWS Lambda に発行する
  2. [Upload Lambda Function] ページの [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 関数のトラブルシューティングとモニタリング」を参照してください。