2011-04-15

Amazon Simple Queue Service (Amazon SQS)をperlで使ってみた

オフィシャルのGetting Startを見てやってみようとしたけど、ドキュメントやらソースが古いようで上手いこと動いてくれませんでしたヽ(`Д´)ノ

てなわけで、Cpanを漁ってみるとAmazon::SQS::Simpleってのがあったのでこれを使ってみることにしましたよ(’’
まずは、インストール

cpan install Amazon::SQS::Simple
関連モジュールをインストールするかと何度か聞かれるのでyesと答えておけばインストールは成功しました。

あとは、こんな感じのサンプルスクリプトを作ってみました
#!/usr/bin/env perl                                                                                                        
use strict;
use warnings;
use Amazon::SQS::Simple;

my $access_key = $ENV{AWS_ACCESS_KEY};
my $secret_key = $ENV{AWS_SECRET_KEY};
my $queue_name = "hoge";

set_message($queue_name,'test');
print get_message($queue_name) . "\n";

sub set_message{
 # SQSオブジェクトを作成
 my $sqs = new Amazon::SQS::Simple( $access_key, $secret_key );

 # キューオブジェクトを取得
 my $q = $sqs->CreateQueue($_[0]);

 # キューにメッセージを送信
 $q->SendMessage($_[1]);
}

sub get_message{
 # SQSオブジェクトを作成
 my $sqs = new Amazon::SQS::Simple( $access_key, $secret_key );

 # キューオブジェクトを取得
 my $q = $sqs->CreateQueue($_[0]);

 # キューからメッセージを取得
 my $msg = $q->ReceiveMessage();

 # メッセージの内容を出力
 return ($msg) ? $msg->MessageBody() : "" ;
}
exit 0;

AccesskeyとSecretkeyは環境変数から読みこむようにしてるので環境変数へセット
export AWS_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxx
export AWS_SECRET_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

これであとは実行してやればSQSに値を登録して、そこから取得して表示できると思われます

0 件のコメント:

コメントを投稿