カテゴリー : Amazon Web Services

[Ruby on Rails] Amazon SES (Simple Email Service)の設定方法

Ruby on Rails 3.2.5 にて、Amazon SES (Simple Email Service)を使ってメール送信ができるようにする設定方法をメモ。

■ config/environments/production.rb

  # Amazon SES
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.default_url_options = { host: 'your-domain.example.com' }
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.smtp_settings = {
    :address              => "email-smtp.us-east-1.amazonaws.com",
    :port                 => 465,
    :domain               => 'your-domain.example.com',
    :user_name            => 'XXXXXXXXXXXXXXXXXX',
    :password             => 'SGNIHinBVUSHLGHVIUSHIRHIIHFIL',
    :authentication       => :plain
  }

■ config/initializers/amazon_ses.rb

module Net
  class SMTP
    def tls?
      true
    end
  end
end

■ Gemfile

# Amazon SES
gem "aws-ses", "~> 0.4.4", :require => 'aws/ses'

drewblas/aws-ses · GitHub はてなブックマーク - drewblas/aws-ses · GitHub

以上です。

【参考】

Amazon SES SMTP Emails using Rails 3.1 in Three Easy Steps | | ReadyPulse BlogReadyPulse Blog はてなブックマーク - Amazon SES SMTP Emails using Rails 3.1 in Three Easy Steps | | ReadyPulse BlogReadyPulse Blog

EOFError error trying to use Amazon SES via SMTP with Rails 3.1.3 – Stack Overflow はてなブックマーク - EOFError error trying to use Amazon SES via SMTP with Rails 3.1.3 - Stack Overflow

Amazon SES(Simple Email Service)でメールを送ってみなイカ? | Pocketstudio.jp log3 はてなブックマーク - Amazon SES(Simple Email Service)でメールを送ってみなイカ? | Pocketstudio.jp log3

Amazon SESでメールを送ったときにGmailでvia email-bounces.amazonses.comって表示されないようにする – Startup Reality はてなブックマーク - Amazon SESでメールを送ったときにGmailでvia email-bounces.amazonses.comって表示されないようにする - Startup Reality

Amazon’s Simple Email Service on rails using aws-ses and devise – Tee Parham’s posterous はてなブックマーク - Amazon's Simple Email Service on rails using aws-ses and devise - Tee Parham's posterous

一番いいメール配信を頼む « サーバーワークス エンジニアブログ はてなブックマーク - 一番いいメール配信を頼む « サーバーワークス エンジニアブログ

[Heroku] Amazon EC2 北米リージョンで動いるので、日本からのレスポンスタイムは300msぐらい

Heroku が動いているサーバーはどこの国にあるのか調べてみると、現在は Amazon EC2 北米リージョンのみだそうです。(2012年1月7日 時点)

情報元をいくつか引用します。

HerokuはAmazon EC2で動いていますが、東京リージョンでは動きません。もちろん、太平洋を往復する数百msの遅延を気にしなければ、日本から北米リージョンのHerokuを使うことに何の問題もないわけですが、遅延は小さいに越したことはありません。静的ファイルをCDNに置くなどの工夫も少なくて済むケースがあることでしょう。

・引用元:Rails Hub情報局: Herokuは東京リージョンにいつ来るのか? はてなブックマーク - Rails Hub情報局: Herokuは東京リージョンにいつ来るのか?

Amazon EC2 East Region の Response Times をグラフ化している資料があります。

HTTP Response Time \ ms
0 to 300, (31%)
300 to 400, (15%)
400 to 500, (13%)
500 to 750, (20%)
>750, (21%)

・引用元:Cedexisという企業のMarty Kagan氏が公開した各種クラウドのレスポンスを可視化した資料

これを見ると、日本からのアクセスだとレスポンスタイムは高々、300msということが分かります。

Amazon EC2 の東京リージョンに Heroku が対応してくれると嬉しいのですが、現状でもそんなにストレス無く日本から使えるのではないかと思います。

【その他、参考】

Heroku runs on Amazon Web Services in the US East Region, which means that transfers to the S3 US Standard Region are completely free.

・引用元:Heroku | Dev Center | Uploading Files to S3 はてなブックマーク - Heroku | Dev Center | Uploading Files to S3

Amazonクラウドの大規模障害を経て、これからは「データセンターはいつか落ちる」ことがサービス設計の前提となる - Publickey はてなブックマーク - Amazonクラウドの大規模障害を経て、これからは「データセンターはいつか落ちる」ことがサービス設計の前提となる - Publickey

以上です。

[PEAR] Services_Amazon にて setProxy でプロキシ情報を設定する方法

PEAR の Services_Amazon クラスを利用するとエラーが発生しました。
 

■ エラー内容

Amazonの情報取得に失敗しました(HTTP_Request::sendRequest failed: Malformed response)

原因は、認証プロキシを利用しているせいでした。

よって、Services_Amazon クラスの setProxy で proxy 情報をセットしてあげる必要があります。

$amazon = new Services_Amazon($access_key_id, $secret_access_key);
$amazon->setProxy($host, $port, $user, $pass);

以下、Services_Amazon のマニュアルから引用。

setProxy

void setProxy( string $host, [int $port = 8080], [string $user = null], [string $pass = null])

Sets a proxy
Access: public

Parameters:

string $host — Proxy host
int $port — Proxy port
string $user — Proxy username
string $pass — Proxy password

[引用元]:Docs For Class Services_Amazon

以上です。

[API] PHP で Amazon API を使うときに参考になるサイトまとめ

PHP で Amazon API を使うときに参考にしたサイトをまとめてみました。

「PHP Amazon API」というキーワードでGoogle検索すれば、たくさん記事が見つかると思います。

利用例は色んな記事を参考にしても良いと思いますが、メインで参考にするのはこれらのサイトだけで良いんじゃないかと思います。

■ リファレンス的な記事

Amazon 公式のリファレンス(英語)

Documentation Archive : Amazon Web Services はてなブックマーク - Documentation Archive : Amazon Web Services

Amazon API界隈では有名なサイト

Amazon Web サービス入門(Product Advertising API) はてなブックマーク - Amazon Web サービス入門(Product Advertising API)

■ まとめ記事

AmazonのAPI(通称Amazon Product Advertising API)覚え書き – Csideのダイアリー はてなブックマーク - AmazonのAPI(通称Amazon Product Advertising API)覚え書き - Csideのダイアリー

■ 体型的に学べる参考記事

PHPでAmazon Web Servicesを利用する(1/5):CodeZine はてなブックマーク - PHPでAmazon Web Servicesを利用する(1/5):CodeZine

以上です。

Amazon Product Advertising APIの仕様変更が2011年10月26日(水)に実施

 

Amazonの提供する、Product Advertising APIの仕様変更が、当初の予定通り2011年10月26日(水)に実施されるそうです。
 


 

仕様変更に先立ちProduct Advertising API開発者のみなさまに余裕を持ってご準備頂けるよう、実際の変更内容を体験頂く機会をご用意いたしました。
 

日程:

■2011年10月19日(水)午後3:00 – 午後7:00
 

期間中は仕様変更後と同じオペレーションおよびレスポンスグループを体験頂くことができます。

仕様変更の詳細については、以下のリンクをご参照ください。

Product Advertising API はてなブックマーク - Product Advertising API

Product Advertising API はてなブックマーク - Product Advertising API
 

以上です。
 

[PEAR] Amazon API の ItemSearch を使った複数キーワードでの検索方法

 

Amazon API を使える PEAR :: Services_Amazon の ItemSearch を使って、複数キーワードでの検索をしてみました。
 

・参考:Docs For Class Services_Amazon
 

ItemSearch の使い方サンプルは以下のようになっています。
 

1
2
3
4
5
6
7
8
9
10
11
<?php
 
$amazon = new Services_Amazon('[your Access Key ID here]', '[your Secret Access key here]');
 
$options = array();
$options['Keywords'] = 'sushi';
$options['ResponseGroup'] = 'ItemIds,ItemAttributes,Images';
 
$result = $amazon->ItemSearch('Books', $options);
 
 ?>

これの $options[‘Keywords’] の部分を下記のようにすれば、「書籍名」「著者名」「出版社名」と複数のキーワードで検索できます。
 

1
2
3
4
5
$title = '検索したい書籍名';
$author = '検索したい著者名';
$publisher = '検索したい出版社名';
 
$options['Keywords'] = $title . $author . $publisher;

 

このとき、キーワードに含まれる「書籍名」「著者名」「出版社名」は、検索時にAmazon側での区別はされていません。
 

Amazonには、これらの文字列3つを連結した文字列の内容で検索しています。
 

以上です。
 

[PEAR] Services_Amazon をインストールして Amazon API を使ってみました

PEARの Services_Amazon をインストールして Amazon API を使ってみました。

・参考:Amazon APIを使って簡単にランキングを取得する – EC studio 技術ブログ はてなブックマーク - Amazon APIを使って簡単にランキングを取得する - EC studio 技術ブログ
 

1. PEAR HTTP_Request2 のインストール

# pear install -a HTTP_Request2-alpha

※Services_Amazonで使用しているHTTP_Request内で使用しているので、まずこちらをインストール。

※インストールのバージョン(state)は最新のものを指定してください

※インストールする際に、依存するパッケージも合わせてインストールするため、オプションに「-a」を指定しています。

 

2. PEAR Services_Amazon のインストール

# pear install -a Services_Amazon-beta

 

3. ちゃんとインストールされたか確認

# pear list

以下の4つがインストールされていればOKです。(バージョンは、2011/05/17 時点)

Cache            1.5.6    stable
HTTP_Request2    2.0.0RC1 beta
Services_Amazon  0.8.0    beta
XML_Serializer   0.20.2   beta

 

以上です。
 

[Python] Amazon API で商品のコンディションコメントを取得してみた

Amazon マーケットプレイスに出品されている情報から「商品のコンディションのコメント」を取得する方法を調べたのでご紹介します。

Python

その他に、商品の情報を取得したい場合も応用できます。

続きを読む

[AWS] Amazon Product APIで検索できる本のカテゴリ(BrowseNode)一覧

Amazon APIで検索できる本のカテゴリは、BrowseNode(ブラウズノード)という数字で区別されています。

以下のものが一番上の階層で、この下に細かくカテゴリが分かれています。

466284 -> 文学・評論
571582 -> 人文・思想
571584 -> 社会・政治
492152 -> ノンフィクション
466286 -> 歴史・地理
466282 -> ビジネス・経済
492054 -> 投資・金融・会社経営
466290 -> 科学・テクノロジー
492166 -> 医学・薬学
466298 -> コンピュータ・IT
466294 -> アート・建築・デザイン
466292 -> 実用・スポーツ・ホビー
492228 -> 資格・検定
466304 -> 暮らし・健康・子育て
492090 -> 旅行ガイド
466302 -> 語学・辞事典・年鑑
3148931 -> 教育・学参・受験
466306 -> こども
466280 -> 漫画・アニメ・BL
500592 -> タレント写真集
492266 -> ゲーム攻略本
466296 -> エンターテイメント
466300 -> 新書・文庫
13384021 -> 雑誌
746102 -> 楽譜・スコア・音楽書
255460011 -> 古書
886928 -> カレンダー
13383771 -> ポスター
10667101 -> アダルト

【参考】

BrowseNode一覧取得ツール | みつりん

BrowseNode= 一覧トップ

詳細なカテゴリーの指定(BrowseNode) – 商品検索(ItemSearch) – Amazon Web サービス

Amazon Product Advertising APIの仕様変更(2011年10月26日)

AmazonのProduct Advertising APIの機能が、2011年10月26日に一部変更されるそうです。

・全てのAPIへのリクエストにおいて、AssociateTagが必須パラメータとなり、リクエスト処理時の確認対象となります。

・SellerLookup, SellerListingLookup および SellerListingSearch オペレーションはAPIでのサポートを終了いたします。

・ItemSearch リクエストの結果として返されるItemPage パラメータは、最大10ページまでに制限されます。

・MerchantId パラメータは、オファー、バリエーションおよび検索結果の絞り込み要素としてのサポートを終了いたします。

・Offers および ItemAttributes レスポンスグループにおいて返されるデータは、最も頻繁に使用される属性に制限されます。

詳しくは以下のページに書かれています。

Product Advertising API

仕様変更が多くて開発者泣かせで有名なAmazon APIですが、個人的にはMerchantIdが使えなくなるのが辛いです。