【AWS Lambdaの基本コードその2】 S3へのファイル保存

Pocket

大柳です。

「AWS Lambdaの基本コード」シリーズ、第2回目はLambdaからS3へのファイル保存を行います。

前回記事
【AWS Lambdaの基本コード その1】 S3からのファイル取得とローカル保存 | ナレコムAWSレシピ

今回の構成

Lambdaが起動されると、テキストの内容をS3にファイルに保存します。

ローカルの/tmpディレクトリへのファイル保存なしで、直接S3にコンテンツを出力します。

コード

コードは以下のようになります。

コードの説明

コードの内容は以下の通りです。

①ライブラリのimport…今回の処理に必要なライブラリを指定してインポートする。
②Functionのロードをログに出力…Lambdaのコードがロードされたことが分かるようにログにメッセージを出力する。
③S3オブジェクトを取得…boto3ライブラリからS3にアクセスできるようにするおまじない。
④Lambdaのメイン関数…S3にファイルが格納されると、この関数が実行される。
⑤バケット名を指定…ファイルを保存するバケット名を指定します
⑥オブジェクトのキー情報を取得…バケット以下のディレクトリとファイル名を指定する。今回は指定したバケットにtest__日時(YYYY-mm-dd-HH-MM-SS).txt というファイル名で保存します。
⑦ファイルの内容…出力する内容です。今回はテキスト「Lambda test」を出力させます。
⑧バケット名とパスを指定…保存するバケットとパスをS3オブジェクトに設定します。
⑨バケットにファイルを出力…file_contentsの内容(Lambda test)をS3に出力しています。

実行結果

Lambdaのコードエディタの上部にある[保存してテスト]をクリックすると、テスト実行されます。
指定したS3バケットを確認すると、test_日時(YYYY-mm-dd-HH-MM-SS).txt が出力されていることが確認できました。

まとめ

S3へのファイル保存もLambdaでよく使うパターンです。保存の前に様々な加工を行い、その結果をS3に出力できるようになります。

次回はファイルを圧縮して、S3にアップロードするコードを紹介します。