веб-сервисы Amazon — не могу написать простой php-код для вызова aws sqs

У меня очень мало опыта работы с PHP, поэтому, пожалуйста, потерпите меня. Я пытаюсь следовать примеру документации AWS, чтобы подтвердить, что я могу подключиться к AWS SQS с помощью AWS PHP SDK, но я застреваю … и это определенно что-то глупое, что я делаю. Вот мой php-файл (называемый stuff.php):

<?php
header('Content-Type: text/plain; charset=utf-8');
require '/home/ubuntu/vendor/autoload.php';
// Create the queue using the AWS-PHP-SDK function, create_queue, and store it
// in the '$newqueue' variable.
$newqueue = $sqs->create_queue($queuename);
// Print the created queue results.
echo '<br></br><h2>CREATE QUEUE</h2>';
print '<pre>' . print_r($newqueue, true) . '<pre><br/><br/>';
?>

Который в основном скопирован из документации AWS с обновленным адресом запроса.
Я создал файл ~ / .aws / credentials, используя этот формат:

[default]
aws_access_key_id = YOUR_AWS_ACCESS_KEY_ID
aws_secret_access_key = YOUR_AWS_SECRET_ACCESS_KEY

Но когда я загружаю файл в мой браузер, Apache2 error.log отправляет мне это:

[Mon Dec 15 20:46:26.460172 2014] [:error] [pid 2625] [client 10.0.3.1:48211] PHP Notice:  Undefined variable: sqs in /var/www/html/stuff.php on line 7
[Mon Dec 15 20:46:26.460203 2014] [:error] [pid 2625] [client 10.0.3.1:48211] PHP Fatal error:  Call to a member function create_queue() on a non-object in /var/www/html/stuff.php on line 7

Я предполагал, что $ sqs будет иметь предустановленное значение, назначенное из SDK, но, возможно, я должен вручную назначить что-то: я понятия не имею, что это может быть.
Спасибо,

2

Решение

Согласно последней версии Документация по AWS PHP SDK, вам нужно создать экземпляр объекта SqsClient, используя предоставленный фабричный метод, а затем вы сможете создавать очереди SQS, получать / отправлять сообщения от них к ним и так далее.

Скачать последняя ZIP-версия AWS PHP SDK, распакуйте его в свой проект каталога и используйте следующий скрипт для создания и отправки сообщения с использованием SQS Client.
N.B .: не забудьте указать реальный относительный путь к файлу aws-autoloader и правильные учетные данные AWS.

<?php
require './relative/path/to/aws-autoloader.php';
use Aws\Sqs\SqsClient;
use Aws\Common\Credentials\Credentials;

$credentials = new Credentials('YOUR_ACCESS_KEY', 'YOUR_SECRET_KEY');

// Instantiate the SQS client with your AWS credentials
$client = SqsClient::factory(array(
'credentials' => $credentials,
'region'  => '<region name>'
));

$result = $client->createQueue(array('QueueName' => 'my-queue'));
$queueUrl = $result->get('QueueUrl');

echo "SQS queue url: $queueUrl";

$client->sendMessage(array(
'QueueUrl'    => $queueUrl,
'MessageBody' => 'Hello World!',
));
5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]