Amazon Rekognitionを検証する名目による御遊び
Amazon Rekognitionを使ってみようという遊び
画像アップロード⇒自動でタグ付け⇒アルバムを分ける。みたいなことをやってみようかと。
目的としては以下をそれぞれ使ってみること。
- Amazon EC2
- Amazon S3
- Amazon RDS
- Amazon Rekognition
この中で多少触った事があるのはEC2のみ。RDSすら触った事がない。
なので勉強がてら。
以下のサイト様を参考にまずはRekognitionを動かしてみる。
qiita.com
これは勿論問題なく動いた。
次にEC2を立ててnode.js上で動くように改変してやると・・・。
// httpモジュールの読み込み var http = require('http'); var AWS = require('aws-sdk'); // AWSにアクセスキー、シークレットキー、リージョンの情報を渡す AWS.config.update({ accessKeyId: 'xxx', secretAccessKey: 'xxx', region: 'us-east-1', }); // 利用する AWS Rekognition のバージョンを設定 AWS.config.apiVersions = { rekognition: '2016-06-27', }; // hhtpサーバの作成 http.createServer(function (req, res) { var rekognition = new AWS.Rekognition(); // Rekoginiton API に渡すパラメータを設定する // バケット名、画像名を設定、最大取得ラベル数、ラベルの確度を指定している var params = { Image: { S3Object: { Bucket: "image-categorize", Name: "cat.jpg" } }, MaxLabels: 100, MinConfidence: 70 }; res.writeHead(200, {'Content-Type': 'text/plain'}); rekognition.detectLabels(params, function(err, data) { var mes = ""; if (err){ console.log(err, err.stack); // an error occurred } else { // successful response data.Labels.forEach(function(label) { mes += label.Name + ": " + Math.round(label.Confidence) + "\%\n"; }); } res.end(mes); }); }).listen(3000);// ポート番号3000版でコネクションの受入を行う // 実行時、コンソールに表示されるメッセージ console.log('Server running at http://[your_public_ip]:3000/');
よしよし。とりあえず想定通り動いたぞー。
これをいい感じに変えていきます。
しかし、EC2をTOKYOリージョンにして、S3をUSリージョンにしてあるんだけど、
VPC周りとかどうなるんじゃ?