Amazon S3に画像をアップロードしたらAWS LambdaでPythonを実行させてグレースケール画像に変換してAmazon S3に保存する方法

Amazon S3に画像をアップロードしたらAWS LambdaでPythonを実行させてグレー画像にしてAmazon S3に保存する仕組みを作ったのでその備忘録です。

実行ロール等のAWS Lambdaの設定は以下をご確認下さい。

Amazon S3に動画をアップロードしたらAWS Lambdaでサムネイルを作成してAmazon S3に保存する方法

S3トリガーの設定について

S3トリガーは以下のように設定して下さい。

  • [イベントタイプ] – [ObjectCreatedByPut]
  • [サフィックス] – [.jpg]
  • [プレフィックス] – [uploads/]

関数コード作成

Pythonの画像処理ライブラリPillow(PIL)を使ってS3にアップロードされた画像(jpg)をグレー画像に変換します。

AWS Cloud9でPillow(PIL)をインストール

AWS LambdaはAmazon Linux上で動作していているので、ローカルなどAmazon Linux以外の環境にインストールしたPillowをAWS Lambdaにアップロードすると正しく動作しません。

なので、AWS Cloud9でAWS Lambda環境の上記で作成した関数コードがある場所へアクセスして、以下のコマンドを実行してPillow(PIL)をインストールして下さい。

S3に画像をアップロード

uploadsディレクトリを作成してその中にjpg画像をアップロードすると、grayディレクトリが作成されその中にグレースケールに変換された画像が保存されます。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください