search
LoginSignup
11

More than 5 years have passed since last update.

posted at

updated at

S3に追加された画像を自動的にVision APIに投げる

TL;DR

  • Cloud Vision APIを使ってみたかった
  • S3 に画像をアップロードしたら背後で自動的に Cloud Vision API に投げて、その結果を SNS に流すようにしてみた

背景

とにかく Cloud Vision API を使ってみたいと思いました。しかしこれといってやりたいことが思い浮かばなかったので、Qiitaに画像をアップロードしたら自動的にCloud Vision APIを実行して、その結果を取り出せるようにしてみることにしました。

実装方針

Qiita に画像をアップロードすると実体となる画像ファイルは背後にある S3 バケットに設置されます。 S3 にファイルが追加されるとそれをトリガーにして AWS Lambda を起動できるのでこんな感じにすることにしました:

  1. S3 に画像が追加される
  2. Lambda が実行されて、その中で Cloud Vision API を叩く
  3. API の結果を SNS に流す

3 で SNS に流すことにしたのは、Lambda の中で API の結果をハンドリングすると、新しく機能を追加したいと思った時に毎回既存のものに手を入れなくてはならなくて面倒だからです。その点 SNS だったら、そのトピックを購読する何か(Lambda とか)を新しく追加すればいいだけなので、互いに疎結合になって嬉しそうです。

実装

実装した結果、これは汎用的に使いまわせそうだと思ったので、OSSとして公開しました。使い方などはREADMEを読んでください。

使ってみた

トピックのメッセージを標準出力するだけの Lambda を登録して

qiitan.png

↑この qiitan 画像をアップロードしてみた結果

image

ということで、 qiitan は漫画っぽくてアダルド画像ではないことが分かりました。

参考

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
11