11
Help us understand the problem. What are the problem?

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 は漫画っぽくてアダルド画像ではないことが分かりました。

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
11
Help us understand the problem. What are the problem?