Amazon-SQS-Client
view release on metacpan or search on metacpan
bin/create-queue.pl view on Meta::CPAN
#!/usr/bin/env perl
# script to create a queue w/an associated dead letter queue
# perl create-queue.pl -h
use strict;
use warnings;
use Amazon::SQS::Client;
use Data::Dumper;
use English qw(-no_match_vars);
use Getopt::Long qw(:config no_ignore_case);
use JSON;
use Pod::Usage;
use Readonly;
Readonly::Scalar our $DEFAULT_MAX_RECEIVE_COUNT => 10;
Readonly::Scalar our $DEFAULT_MAXIMUM_MESSAGE_SIZE => 256 * 1024;
Readonly::Scalar our $DEFAULT_VISIBILITY_TIMEOUT => 30;
Readonly::Scalar our $DEFAULT_MESSAGE_RETENTION_PERIOD => 4 * 24 * 60 * 60;
Readonly::Scalar our $DEFAULT_DELAY_SECONDS => 0;
Readonly::Scalar our $DEFAULT_RECEIVE_MESSAGE_WAIT_TIME_SECONDS => 0;
Readonly::Scalar our $DEFAULT_ENDPOINT_URL => 'https://queue.amazonaws.com';
########################################################################
sub list_queues {
########################################################################
my ($client) = @_;
my $queues = $client->listQueues()->getListQueuesResult->getQueueUrl;
return $queues;
}
########################################################################
sub get_queue_names {
########################################################################
my ( $client, $options ) = @_;
my $queue_list = list_queues($client);
return map { /([^\/]+)$/xsm ? ( "$1" => $_ ) : () } @{$queue_list};
}
########################################################################
sub get_queue_url {
########################################################################
my ( $client, $options ) = @_;
my %queue_names = get_queue_names( $client, $options );
return $queue_names{ $options->{queue} };
}
########################################################################
sub get_queue_attributes {
########################################################################
my ( $client, $queue_url ) = @_;
my $rslt = $client->getQueueAttributes(
{ QueueUrl => $queue_url,
AttributeName => ['All'],
}
);
my $attributesResult = $rslt->getGetQueueAttributesResult;
return $attributesResult->getAttribute;
( run in 0.774 second using v1.01-cache-2.11-cpan-39bf76dae61 )