Cloud functionsを使ってCloud Storageに画像がuploadされるとサムネイルを作成する

tl;dr;

Cloud Storageにuploadされると、イベントフックでCloud functionsが実行されサムネイル作成処理が走る処理を作った。

事前準備

gcloudコマンドのインストール。既に設定済ならスキップを。

https://cloud.google.com/storage/docs/gsutil_install?hl=ja

バケットの作成。今回は変換対象、変換後の格納先を作成。

deploy

sample productをダウンロード。deploy。

gcloud functions deployの後ろは、実行する関数名を入力する。

また、引数として (ctx context.Context, e GCSEvent) を受け付ける必要があるので注意。

Cloud Functionsのコマンドでは予め--trigger-bucketというオプションが用意されていて、任意のバケットを指定すれば簡単にイベント処理を紐付けることができる。便利。

deployコマンドを実行すると

Deploying function (may take a while - up to 2 minutes)...⠼     

 と表示され、しばらく待つ。

result

左がアップロードしたオリジナルの画像。

右側がEventを検知して、Cloud Functionsが実行され、サムネイル作成された画像。

使ってみると非常に簡単にイベント駆動処理を作ることができた。使い方次第では活躍しそう。