LoginSignup
8
8

More than 3 years have passed since last update.

AWS Lambda を C# で書いてみる(VisualStudio 2017/2019編)

Last updated at Posted at 2020-10-24

はじめに

このドキュメントは AWS Lambda を C# で記述するための手順です。

コードエディットやパブリッシュには Visual Studio を使用します。

開発・実行環境準備

VisualStudio プラグイン

開発者ガイドのAWS Toolkit for Visual Studioを参考に、Visual Studio の拡張機能をインストールします。

プロジェクト作成

Visual Studio の「ファイル」メニューから「新規作成」を選択し、「プロジェクト」を選択します。

「新しいプロジェクト」ウインドウで [AWS Lambda] ツリーを選択し、

「AWS Lambda Project(.NET Core - C#)」 を選択します。

プロジェクト名と保存場所は適宜入力します。

「New AWS Lambda C# Project」ウインドウでは、サンプルアプリケーションのコードを選択することができます。

ここでは、最低限のコードが記述されている [Empty Function] を選択し、「Finish」ボタンをクリックします。

開発とデプロイ

コード記述

このままでも動作するかと思いますが、念のため引数の型を変更します。

//
// 修正前(プロジェクト作成デフォルト状態)
//
    public string FunctionHandler(string input, ILambdaContext context)
    {
        // 引数で受け取った文字列を大文字にして返す
        return input?.ToUpper();
    }
//
// 修正後
//
    public string FunctionHandler(object input, ILambdaContext context)
    {
        // 受け取った引数をログに出力
        context.Logger.LogLine($"Arg : [{input}]");
        // OK という文字列を返す
        return "OK"; //input?.ToUpper();
    }

デプロイ設定

認証情報の準備

Visual Studio から パブリッシュするための認証情報を AWS コンソールから取得します。

AWS コンソール右上のメニューから「ユーザ名▼」を選択し、「マイセキュリティ資格情報」を選択します

[IAM Management Console] (セキュリティ認証情報)画面で、「アクセスキー(アクセスキー IDとシークレットアクセスキー)」を開きます。

「新しいアクセスキーの作成」ボタンをクリックしアクセスキーIDを発行します。

[アクセスキーの作成]ダイアログが表示されたら、[アクセスキーID]と[シークレットアクセスキー]を控えておきます。

デプロイ

Visual Studio のソリューションエクスプローラで、プロジェクトを右クリックし「Publish to AWS Lambda...」を選択します。

[Upload Lambda Function]ダイアログで、「Account profile to use:」のドロップダウン右にあるアイコンをクリックします。

アップロードするためのユーザを追加する画面で以下の項目を入力します。

  • Profile Name:任意
  • Storage Location:Shared Credentials File
  • Access Key ID:認証情報の準備で控えたアクセスキーID
  • Secret Access Key:認証情報の準備で控えたシークレットアクセスキー

入力がおわったら「OK」ボタンをクリックします。

再び[Upload Lambda Function]ダイアログで、「Function Name」に作成する Lambda関数の名前を入力します。
入力したら「Next」ボタンをクリックします。

[Advanced Function Details]ダイアログでは、以下の項目を入力します。

  • Role Name:「New role based on AWS managed policy: AWSLambdaExecute」
  • Memory(MB):「128」

入力がおわったら「Upload」ボタンをクリックします。

これでデプロイは完了です。

テスト

Visual Studio でテスト

デプロイが完了すると、Visual Studio に、作成した Lambda 関数をテストするためのタブが表示されます。

赤い枠のテキストエリアに入力された文字が、Lambda関数の引数として渡されます。

「Example Requetes:」ドロップダウンでは、AWS で接続可能なサービスからの引数サンプルを選択することもできます。

引数の設定が完了したら「Invoke」ボタンをクリックします。

実行結果が、右側のペインに表示されます。また、タブ下部のペインには実行ログが表示されます。

AWS Console でテスト

[AWS Console]から「Lambda」を選択すると、Visual Studio でデプロイした関数が表示されます。

関数名をクリックし詳細画面を表示した後、右上の「テスト」ボタンをクリックします。

[テストイベントの設定]ダイアログが表示されるので、以下の項目を入力します。

  • 新しいテストイベントの作成を選択
  • イベント名:保存するテストパータンの名称
  • 下部テキストボックス:関数に引き渡すテストデータ

入力が終ったら「作成」ボタンをクリックします。

再び「テスト」ボタンをクリックすると関数のテストが実行されます。

テストの実行結果が画面に表示されるので「詳細」をクリックします。

下記キャプチャの、上側の赤枠が関数の戻り値。OKを返していることがわかります。

また、下側の赤枠には関数のログが出力されますが、テストデータとして渡した引数がログに出力されていることが確認できます。

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8