つきのさんアソビバ。

IT的なことからアケゲー、オンゲなど趣味もつらつら

Amazon Rekognitionを検証する名目による御遊び

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/');




f:id:tukino_salve:20170317154708p:plain

よしよし。とりあえず想定通り動いたぞー。

これをいい感じに変えていきます。




しかし、EC2をTOKYOリージョンにして、S3をUSリージョンにしてあるんだけど、
VPC周りとかどうなるんじゃ?