Amazon SNS(简单通知服务)Perl库

Bra*_*rad 5 perl amazon-sns

我想开始使用Amazon Simple Notification Service,但我没有找到任何可用于访问该服务的Perl库.我宁愿不创建自己的库,我想看看是否有人为SNS服务使用过任何Perl库,如果他们推荐任何.

Bra*_*rad 1

我将 Net::Amazon::AWSSign 与一个小脚本结合使用:

#!/usr/bin/perl

use Net::Amazon::AWSSign;

$ACCESS_KEY_ID="<my key id>";
$SECRET_KEY="<my secret key>";
$TOPIC_ARN='<my topic arn>';
$TOPIC_ARN =~ s/:/%3A/g;
$MESSAGE="This is a test";

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);

$year += 1900;
$mon+=1;

$timestamp = sprintf("%4.4d-%2.2d-%2.2dT%2.2d:%2.2d:%2.2d.000Z",
        $year,$mon,$mday,$hour,$min,$sec);
$timestamp =~ s/:/%3A/g;

$REQUEST="http://sns.us-east-1.amazonaws.com/".
"?TopicArn=$TOPIC_ARN".
"&Message=$MESSAGE".
"&Action=Publish".
"&SignatureVersion=2".
"&SignatureMethod=HmacSHA256".
"&Timestamp=$timestamp".
"&AWSAccessKeyId=$ACCESS_KEY_ID";

my $awsSign=new Net::Amazon::AWSSign("$ACCESS_KEY_ID", "$SECRET_KEY");

$signed = $awsSign->addRESTSecret($REQUEST);

$res = `curl -s -o- '$signed'`;
if ($res =~ /<error>/) {
        print "ERROR!\n";
        return 1;
}

0;
Run Code Online (Sandbox Code Playgroud)

我实际上最终使用了 XML::Simple,并将 Curl 的结果传递到 XMLIn,以解析 Amazon 返回的 XML。做你想做的事...