nomurabbitのブログ

nomurabbitのブログはITを中心にした技術ブログです。

nomurabbitのブログ

【AWS】LambdaでS3にファイルを書き込んでみた【S3】

こんにちは!nomurabbitです。
この記事ではLambdaでS3から
ファイルを読み込む方法を紹介します。

まずはファイルの書き込みから
勉強していきましょう!

テンプレートの準備

まず、Lambdaのテンプレートを準備します。

私は.NETが好きなので、
.NET Core 3.1でテンプレートを準備します。

.NET toolsのコマンドはこんな感じです。

dotnet new lambda.EmptyFunction --name 20211113_my_glb_invokesample

ソースコード

AWSSDK.S3が必要なので、
nugetでパッケージを追加します。

f:id:nomurabbit:20211113111205p:plain
nuget

下記のように
AmazonS3Clientを使うのがポイントです。

public void GetAction(GlbRequestBody glbRequestBody)
{
   try
   {
       var s3Client = new AmazonS3Client(RegionEndpoint.APNortheast1);
       var request  = new Amazon.S3.Model.PutObjectRequest
       {
           BucketName  = GlbUtil.S3_NOMURABBIT_BLOG_XXX,
           Key         = DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".txt",
           ContentType = GlbUtil.CONTENT_TYPE_TEXT_PLAIN,
           ContentBody = glbRequestBody.Message,
       };
       Amazon.S3.Model.PutObjectResponse response = s3Client.PutObjectAsync(request).Result;
   }
   catch (System.Exception e)
   {
       throw e;
   }
}

GitHubソースコードを載せてありますので、
よければご覧ください。

github.com

リクエストのmessageで送られた文字列を
S3にテキストファイルとして書き込むプログラムです。

以上でLambdaでS3にファイルを書き込むことができると思います。

よかったら試してみてください。
では!