通过PHP向SQS发送消息

时间:2020-05-25 06:17:57

标签: php amazon-web-services aws-sdk amazon-sqs

我正在尝试向SQS发送消息,并且已按照此处的说明进行操作

https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/sqs-examples-send-receive-messages.html

但是,当我遵循这些步骤时,我什么也没得到,甚至没有错误消息。代码如下:

use Aws\Exception\AwsException;
use Aws\Credentials\Credentials;
use Aws\Sqs\SqsClient; 
$credentials = new Credentials('IAM account key', 'IAM secret key')
    $sqsClient = new SqsClient([
        'version' => '2012-11-05',
    'credentials' => $credentials,
    'region' => 'eu-north-1',
  ]);

//Debug values, these would later be filled from database
$params = [
    'DelaySeconds' => 10,
    'MessageAttributes' => [
        "SocialSecurityCode" => [
            'DataType' => "String",
            'StringValue' => "111111-1"
        ],
        "Name" => [
            'DataType' => "String",
            'StringValue' => "Teemu Testaaja"
        ],
        "PeriodStart" => [
            'DataType' => "String",
            'StringValue' => "1-1-2019"
        ],
        "PeriodEnd" => [
            'DataType' => "String",
            'StringValue' => "31-1-2019"
        ],
        "EventDate" => [
            'DataType' => "String",
            'StringValue' => "12-1-2019"
        ],
        "Code" => [
            'DataType' => "Number",
            'StringValue' => "12"
        ],
        "Amount" => [
            'DataType' => "Number",
            'StringValue' => "7.5"
        ]
    ],
    'MessageBody' => "Test message",
    'QueueUrl' => 'sqs-url from the console'
];

try {
    print("Sending message");
    $result = $sqsClient->sendMessage($params);
    print("Message send");
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    print("ERROR!");
    var_dump($e->getMessage());
}

但是,我唯一得到的就是“发送消息”。我在这里做错了什么?我已经设置了一个IAM帐户,该帐户可以发送和读取来自队列的消息。

我试图查看队列以查看消息是否确实通过了,还有其他问题,但是队列中没有任何项目,并且目前没有任何内容可以阅读。

代码托管在Amazon AWS服务器上。

更新

到目前为止,消息已正确传递到队列,但代码未从sendMessages部分向前进行。

0 个答案:

没有答案