S3にPUTしたらAWS LambdaからYoする

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

全国1000万人のYoユーザーの皆さんこんにちは!需要の有無に関わらず不定期にYoのブログ記事を書き続ける佐々木です。ちなみにこれまで以下の記事を書きました。

どうです最近Yoしてますか?してませんよね?ぶっちゃけ僕もその存在を忘れていました。多くの皆さんにとってもスマホのデータ領域の肥やしになっているのでは無いでしょうか。

しかし!AWS Lambdaがリリースされた今、俄然注目を浴びているのがYoなのです!すみませんノリだけで書いてます!ということで!Amazon S3にファイルが配置されたらYoを投げるLambdaスクリプトを書いてみました!

やってみる

スクリプト用のフォルダを作成します。

$ mkdir yo
$ cd ./yo

今回はrequestモジュールを使いますので、npmコマンドでローカルインストールします。

$ npm install request

そしてスクリプトを作成します。YOUR_API_TOKENには対象のYoアカウントのAPIトークンを埋め込みます。

$ vi index.js
console.log('Loading event');
var request = require('request');

exports.handler = function(event, context) {
    console.log('Sending yo:');
    request.post(
        'http://api.justyo.co/yoall/',
        { form: { 'api_token': '<YOUR_API_TOKEN>' } },
        function (error, response, body) {
            if (!error && response.statusCode == 200) {
                console.log(body);
            }
        }
    );
};

そしてzip圧縮し、出来上がったzipファイルをAWS lambdaへアップロードします。

$ zip -r yo.zip index.js node_modules

後は適宜AWS LambdaやS3のEventを設定すると、S3にファイルがアップロードされるたびにYoが飛んできます!

まとめ

こうしてwebhook的に使えるのもlambdaの良さの一つだと思います。あと久しぶりにYoのドキュメントを読んだらlinkとかlocationとか増えてたのでそのうち試してみようと思います。