2011-10-23(日) [長年日記]
■ Sinatra版Amazon-Auth-Proxyの運用を始めた
試験的に作ってみたSinatra版Amazon-Auth-Proxyだが、忙しさにかまけて放置していたら、当初のGAE値上げに続いて今度はAmazonのAPIが11月から変更になるということで、まじめに運用しないといけない感じになってきたのでなんとか実装したのだった。ソースはいつものようにGitHubで:
ちなみに今回のAmazonのAPI変更は、正式なAssociateTagが含まれていないクエリは受け付けなくなるというものなので、今まで日本のAmazon用AssociateTagを使い回して各国向けのクエリを処理していたプロキシは、軒並みダメになる。ちゃんとそれぞれの国向けのAmazonで専用のAssociateTagを発行してもらわなくてはいけないのだ。現在プロキシを運用している人は、今月末までに自分の環境を見なおしましょう。
で、今までCGI版を動かしていた人も今後はSinatra版をHerokuで動かすのがオススメ。Herokuのアカウントはもう持っているとして、改めて手順をここに書いておく:
# コードを取得 % git clone git://github.com/tdtds/amazon-auth-proxy.git % cd amazon-auth-proxy # 必要なGemを取得 % gem install heroku bundler % bundle install # Heroku上にアプリを作成、Amazonのキーを設定 % heroku apps:create 【ここにアプリの名前(URLの一部になる)】 --stack cedar % heroku config:add AMAZON_ACCESS_KEY=【ここに自分のアクセスキー】 % heroku config:add AMAZON_SECRET_KEY=【ここに自分のシークレットキー】 # 設定ファイルをいじる # name: 自分のプロキシの名前をつける # aid: 自分が保有しているAssociateTagを各国分 % vi amazon-auth-proxy.yaml # アプリをリリース % git commit -a -m 'update settings.' % git push heroku
あとは、「http://指定したアプリ名.heroku.com」でアクセスできるようになる(トップページにアクセスすると指定した国のディレクトリ配下にアクセスするようにというメッセージが出る)。
これだけでは意味がないので、ちゃんとProduct Advertising API用リバースプロキシに登録して、みんなで共同利用できるようにしておこう。「エンドポイント」にアプリのトップページのURLを入力すれば良い*1。ついでに風柳版に登録している人はそっちも変えておきましょう。
追記 - 参考リンク
- dotcloudで動かす方法 by @hsbt
*1 Sinatra版は指定されたAssociateTagを見て動的にrpaproxy.yamlを生成することにしたので、特に設定は不要。
アプリをローカルで動かさないのであれば、「bundle install」の手順は不要ですね。
いやぁ、それはそうなんだけど、サポートするときにローカルでも動くようにしておいてもらわないと困るのでw
風柳版とrpaproxy.tdiary.org版の違いってなんですか? (CGI版を継続利用でも、両方に登録して良いのでしょうか)
結論から先に言うと、両方に登録すべきですね。
風柳版はGAE上でサービスしているので、(値上げの影響を受けて)閉鎖の恐れがあります。代わりに設置されたのがtdiary.org版で、こっちは現在Heroku上でサービスしている上にロックインされていないので何かあっても他のPaaSに移行でき、永続性が期待できます。
現在公開中のtDiaryでは風柳版を使っていますが、今月末に出る3.1.1からはtdiary.org版を使うようになります。他の利用者にも移転するように促していくつもりですが、しばらく並行して使えると思うのでプロキシ設置者は両方に登録すると良いです。
なるほど。了解です。