トップ 最新

ただのにっき

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。ついでに風柳版に登録している人はそっちも変えておきましょう。

追記 - 参考リンク

Tags: amazon

*1 Sinatra版は指定されたAssociateTagを見て動的にrpaproxy.yamlを生成することにしたので、特に設定は不要。