P aws :: SQS :: TagQueue завершается с ошибкой «Начало списка найдено там, где не ожидается» - PullRequest
1 голос
/ 23 февраля 2020

https://metacpan.org/pod/Paws :: SQS :: TagQueue говорит:

SYNOPSIS

my $sqs = Paws->service('SQS');
$sqs->TagQueue(
  QueueUrl => 'MyString',
  Tags     => { 'MyTagKey' => 'MyTagValue', },

);

Но эта программа не работает:

use strict;
use warnings;
use Paws;

# Environment defines AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_DEFAULT_REGION
foreach (qw/AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_DEFAULT_REGION/) {
    die("Required environment variable $_ definition missing") if (($ENV{$_} // '') eq '');
}

my $sqs = Paws->service('SQS', 'region' => $ENV{'AWS_DEFAULT_REGION'});
my $create_queue_result = $sqs->CreateQueue('QueueName' => "test_queue");
my $queue_url = $create_queue_result->QueueUrl();

# All's well up to this point; queue is created

$sqs->TagQueue(
    'QueueUrl'  => $queue_url,
    'Tags'      => {'test_tag' => 'abc'},
)
Start of list found where not expected

Trace begun at /opt/perl5/lib/site_perl/5.30.0/Paws/Net/XMLResponse.pm line 46
Paws::Net::XMLResponse::process('Paws::Net::XMLResponse=HASH(0x2a21178)', 'Paws::SQS::TagQueue=HASH(0x3456d38)', 'Paws::Net::APIResponse=HASH(0x3480da8)') called at /opt/perl5/lib/site_perl/5.30.0/Paws/Net/Caller.pm line 46
Paws::Net::Caller::caller_to_response('Paws::Net::Caller=HASH(0x1a20550)', 'Paws::SQS=HASH(0x25bd690)', 'Paws::SQS::TagQueue=HASH(0x3456d38)', 'Paws::Net::APIResponse=HASH(0x3480da8)') called at /opt/perl5/lib/site_perl/5.30.0/Paws/Net/RetryCallerRole.pm line 19
Paws::Net::RetryCallerRole::do_call('Paws::Net::Caller=HASH(0x1a20550)', 'Paws::SQS=HASH(0x25bd690)', 'Paws::SQS::TagQueue=HASH(0x3456d38)') called at /opt/perl5/lib/site_perl/5.30.0/Paws/SQS.pm line 149
Paws::SQS::TagQueue('Paws::SQS=HASH(0x25bd690)', 'QueueUrl', 'https://us-west-2.queue.amazonaws.com/<REDACTED_ACCOUNT_NUMBER>/test_queue', 'Tags', 'HASH(0x2c02080)') called at paws_sqs line 22

Произошла та же ошибка если просто передается 'test_queue' вместо полного $ queue_url. Этот интерфейс неправильно документирован? Я что-то упускаю здесь очевидное?

...