AWS Lambda(C#)でS3からファイルを取得する
あらかじめNugetから「AWSSDK.S3」パッケージをインストールしておきます。

下記usingディレクティブを追記します。
using Amazon.S3;
using Amazon.S3.Model;
以下、Lambda関数本体のソースコードサンプルです。
public async Task<string> FunctionHandler(ILambdaContext context)
{
var client = new AmazonS3Client(Amazon.RegionEndpoint.APNortheast1);
GetObjectRequest request = new GetObjectRequest()
{
BucketName = "bucket-name",
Key = "foo.txt",
};
try
{
var response = await client.GetObjectAsync(request);
var reader = new System.IO.StreamReader(response.ResponseStream);
return await reader.ReadToEndAsync();
}
catch (Exception e)
{
return e.ToString();
}
}
S3バケット「bucket-name」から「foo.txt」という名前のテキストファイルをダウンロードします。Lambda関数の戻り値にファイルの内容を指定しています。ファイルの内容は以下です。

早速パブリッシュして動作確認してみます。
Test FunctionウィンドウのSample Input欄にある「Invoke」ボタンをクリックします。

うまくいくと、Reponseに”Hello World!”という文字列が返ってきます。

以上です。
投稿者プロフィール

- 東京在住のフリーランスエンジニア
最新の投稿
AWS2020.11.05AWS CLI コマンドまとめ ~S3編~
AWS2020.11.02AWS コマンドラインインターフェイス(CLI)をインストールする~Windows編~
その他2020.10.30Chromeでクロスドメインiframe内の要素にアクセスする
AWS2020.10.29AWS API GatewayのREST APIでモックを作成する