風柳メモ

ソフトウェア・プログラミング関連の覚書が中心

Amazon API認証プロキシ用のリバース・プロキシ作ってみた

作ろうと思う」って書いちゃったしね

複数のAmazon API認証プロキシを順に使いまわすリバース・プロキシ(reverse proxy)です。
↓のページから、プロキシ登録が出来ます。

Product Advertising API用リバースプロキシ

あ、登録する際にはOpenIDでログインする必要があります。現状、自分のやつをひとつだけしか登録していないのでちょっと寂しい。だれか登録してください(笑)。

リバース・プロキシの負荷の関係から、2009/07/22現在、

認証signature付きのURLを302でリダイレクト

Amazon API認証のPROXYを書いたよ(2) - ただのにっき(2009-07-06)

で返すようになっていないと、登録出来なくなっています。申し訳ありませんが、ご了承願います。
amazon-auth-proxyの方は、現在対応いただいているところです。


ただただし(id:sho)さんの

というわけで、誰かreverse proxyを提供してくれないかのぅ。

Amazon API認証のPROXYを書いたよ(2) - ただのにっき(2009-07-06)

に触発されて。
amazon-auth-proxyの仕様』に従ったプロキシを登録しておくと、ラウンドロビンに要求を出して負荷分散をはかります。

ソースコードはこちら
この中にAmazon API認証プロキシ(paproxy)のコードも入っているので、Google App Engine/Python使いでAmazonのAccess Key ID持っている人なら誰でも簡単に設置出来ます。
ぜひ設置して、リバース・プロキシの方に登録して下さい!

ちなみに

Amazon API認証のPROXYを書いたよ(2) - ただのにっき(2009-07-06)にコメントしようとして2回けられてしまった内容はつぎのようなものでした。

私が実際にreverse proxyを作るかどうかはひとまず置いといて(笑)。

想定していたのは、

  1. http://〜
  2. jp
  3. (なし)

で登録されていたのが(reverse proxyはhttp://〜をjp用として解釈)、後から

  1. http://〜
  2. jp
  3. us

のように追加される(reverse proxyはhttp://〜をjp用、http://〜/us/をus用として解釈 ※当該proxyはhttp://〜/jp/未サポート)、というパターンでした。

proxy提供者が必ずhttp://〜/(Locale)/形式をサポート、という仕様なら問題無い(デフォルト指定不要)です。

その後、仕様に

  • 提供するURLは「http://(任意)/(locale)/」とする。(locale)はca、de、fr、jp、uk、usから任意のものを選択できるが、それぞれに対応するAmazon APIを呼び出すこと
Amazon API認証のPROXYを書いたよ(2) - ただのにっき(2009-07-06)

という内容が加わっていたので、余計なことを考えずにすむようになりました。

追記1:うーむ

たださんの記事にトラックバックを打とうとすると、

http://sho.tdiary.net/tb.rb/20090706 へのトラックバックに失敗しました。 (500 Internal Server Error)

とかって怒られる……なぜ?
これもスパムフィルタのせい?

追記2:あ、忘れてた……

かなりまずい問題があるなぁ……具体的にはデータストアの排他制御やってない(をい)。
db.run_in_transaction()使ってごにょごにょとやらないといけないらしいのだけれども、なんか難しそうなのでずっと保留したままだったしなぁ……ちょっと時間とってまじめに調べないと→まじめには調べてないけれど、とりあえず対策。