はじめに
本記事について
本記事では、C#を使用してLambda関数を作成し、デプロイする方法について詳しく解説します。
AWS Lambdaは、サーバーレスコンピューティングを提供するサービスで、サーバー管理不要でコードを実行できます。
C#を用いたLambda関数の作成は、API GatewayやDynamoDBとの統合、バックグラウンド処理、イベント駆動アーキテクチャなどに活用できます。
この記事では、以下の内容を説明します。
- 必要なツールと環境構築
- C# Lambdaプロジェクトの作成
- コードの記述とビルド
- Lambda関数のデプロイ
- AWS CLIを用いたLambda関数のテスト
前提条件
作業を始める前に、以下を準備してください。
必要なツール
ツール | 説明 | インストール方法 |
---|---|---|
.NET 8 SDK | C#のLambda関数を開発するために必要 | .NET8 SDK公式ダウンロードサイト |
AWS CLI | AWSと通信し、Lambda関数をデプロイ・管理するために必要 | AWS CLI公式ダウンロードサイト |
Amazon.Lambda.Tools | Lambda関数のビルド・デプロイを支援するコマンドラインツール | dotnet tool install -g Amazon.Lambda.Tools |
環境設定
1. NET SDK のインストール確認
dotnet --version # バージョンが表示されればOK
2.AWS CLI の設定
aws configure
設定時に以下の情報を入力します。
-
AWS Access Key ID
IAMユーザーのアクセスキー -
AWS Secret Access Key
IAMユーザーのシークレットキー -
Default region name: ap-northeast-1
(東京リージョンなど) -
Default output format: json
(tableやtextも選択可能)
お好みの方法で、Lambdaを構築するAWS環境にアクセスしてください。
AWS CLIの設定が完了すれば、aws s3 ls
などのコマンドが正常に動作することを確認してください。
Lambdaプロジェクトの作成
1. 作業ディレクトリの作成 (省略可)
mkdir workspace
cd workspace
2. Lambdaプロジェクトの作成
dotnet new lambda.EmptyFunction --name ExampleLambda
3. 必要なパッケージを追加
cd src/ExampleLambda
dotnet add package Amazon.Lambda.APIGatewayEvents # API Gatewayと連携する場合
dotnet add package Amazon.Lambda.Core # Lambdaの基本機能
dotnet add package Amazon.Lambda.Serialization.SystemTextJson # JSONシリアライズ
4. コードの編集
Function.csを以下のように編集します。
using System.Text.Json;
using Amazon.Lambda.Core;
using Amazon.Lambda.APIGatewayEvents;
[assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.SystemTextJson.DefaultLambdaJsonSerializer))]
namespace ExampleLambda
{
public class Function
{
public APIGatewayProxyResponse FunctionHandler(APIGatewayProxyRequest request, ILambdaContext context)
{
context.Logger.LogLine("ExampleLambda invoked via API Gateway");
return new APIGatewayProxyResponse
{
StatusCode = 200,
Body = JsonSerializer.Serialize(new { message = "ExampleLambda executed successfully" }),
Headers = new Dictionary<string, string> { { "Content-Type", "application/json" } }
};
}
}
}
5. ビルドの実行
dotnet build
Lambda関数のデプロイ
1. Lambda関数をデプロイ
dotnet lambda deploy-function --function-name ExampleLambda --profile default --region ap-northeast-1
パラメータ説明
-
--function-name
作成するLambda関数の名前 -
--profile
AWS CLIのプロファイル(デフォルトはdefault
) -
--region
デプロイ先のリージョン
2. デプロイ成功の確認
AWSコンソールのLambdaセクションで関数が表示されており、
ランタイムが.NET8になっていれば成功です。
Lambda関数のテスト
1. AWS CLIを利用したテスト
aws lambda invoke --function-name ExampleLambda --payload '{"test": "value"}' --region ap-northeast-1 --cli-binary-format raw-in-base64-out response.json
2. 実行結果の確認
CLIの出力
StatusCode: 200
レスポンスファイル (response.json)
{
"statusCode": 200,
"body": "{\"message\":\"ExampleLambda executed successfully\"}"
}
まとめ
本記事では、C#を使用してAWS Lambda関数を作成し、デプロイして実行するまでの手順を詳しく解説しました。
学んだこと
✅ .NETを使ったLambda関数の作成
✅ 必要なパッケージの追加とコード編集
✅ AWS CLIを使用したデプロイとテスト
今後は、DynamoDBとの連携やStep Functionsを活用したワークフロー構築など、より高度なサーバーレスアーキテクチャの構築も試してみてください!