はじめに
このドキュメントは 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:認証情報の準備で控えたシークレットアクセスキー
再び[Upload Lambda Function]ダイアログで、「Function Name」に作成する Lambda関数の名前を入力します。
入力したら「Next」ボタンをクリックします。
[Advanced Function Details]ダイアログでは、以下の項目を入力します。
- Role Name:「New role based on AWS managed policy: AWSLambdaExecute」
- Memory(MB):「128」
これでデプロイは完了です。
テスト
Visual Studio でテスト
デプロイが完了すると、Visual Studio に、作成した Lambda 関数をテストするためのタブが表示されます。
赤い枠のテキストエリアに入力された文字が、Lambda関数の引数として渡されます。
「Example Requetes:」ドロップダウンでは、AWS で接続可能なサービスからの引数サンプルを選択することもできます。
引数の設定が完了したら「Invoke」ボタンをクリックします。
実行結果が、右側のペインに表示されます。また、タブ下部のペインには実行ログが表示されます。
AWS Console でテスト
[AWS Console]から「Lambda」を選択すると、Visual Studio でデプロイした関数が表示されます。
関数名をクリックし詳細画面を表示した後、右上の「テスト」ボタンをクリックします。
[テストイベントの設定]ダイアログが表示されるので、以下の項目を入力します。
- 新しいテストイベントの作成を選択
- イベント名:保存するテストパータンの名称
- 下部テキストボックス:関数に引き渡すテストデータ
再び「テスト」ボタンをクリックすると関数のテストが実行されます。
テストの実行結果が画面に表示されるので「詳細」をクリックします。
下記キャプチャの、上側の赤枠が関数の戻り値。OK
を返していることがわかります。
また、下側の赤枠には関数のログが出力されますが、テストデータとして渡した引数がログに出力されていることが確認できます。