Envío y recepción de mensajes en Amazon SQS con AWS SDK para PHP la versión 3 - AWS SDK para PHP

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Envío y recepción de mensajes en Amazon SQS con AWS SDK para PHP la versión 3

Para obtener información sobre los mensajes de Amazon SQS, consulte Envío de un mensaje a una cola de SQS y ecepción y eliminación de un mensaje de una cola de SQS en la Guía del usuario de Service Quotas.

Los siguientes ejemplos muestran cómo:

  • Entregue un mensaje a una cola específica utilizando. SendMessage

  • Recupere uno o más mensajes (hasta 10) de una cola específica utilizando. ReceiveMessage

  • Elimine un mensaje de una cola utilizando. DeleteMessage

Todo el código de ejemplo para el AWS SDK para PHP está disponible aquí en GitHub.

Credenciales

Antes de ejecutar el código de ejemplo, configure sus AWS credenciales, tal y como se describe enAutenticación AWS con la AWS SDK para PHP versión 3. A continuación, importe las AWS SDK para PHP, tal y como se describe enInstalación de la AWS SDK para PHP versión 3.

Enviar un mensaje

Importaciones

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sqs\SqsClient;

Código de muestra

$client = new SqsClient([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2012-11-05' ]); $params = [ 'DelaySeconds' => 10, 'MessageAttributes' => [ "Title" => [ 'DataType' => "String", 'StringValue' => "The Hitchhiker's Guide to the Galaxy" ], "Author" => [ 'DataType' => "String", 'StringValue' => "Douglas Adams." ], "WeeksOn" => [ 'DataType' => "Number", 'StringValue' => "6" ] ], 'MessageBody' => "Information about current NY Times fiction bestseller for week of 12/11/2016.", 'QueueUrl' => 'QUEUE_URL' ]; try { $result = $client->sendMessage($params); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

Recibir y eliminar mensajes

Importaciones

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sqs\SqsClient;

Código de muestra

$queueUrl = "QUEUE_URL"; $client = new SqsClient([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2012-11-05' ]); try { $result = $client->receiveMessage([ 'AttributeNames' => ['SentTimestamp'], 'MaxNumberOfMessages' => 1, 'MessageAttributeNames' => ['All'], 'QueueUrl' => $queueUrl, // REQUIRED 'WaitTimeSeconds' => 0, ]); if (!empty($result->get('Messages'))) { var_dump($result->get('Messages')[0]); $result = $client->deleteMessage([ 'QueueUrl' => $queueUrl, // REQUIRED 'ReceiptHandle' => $result->get('Messages')[0]['ReceiptHandle'] // REQUIRED ]); } else { echo "No messages in queue. \n"; } } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }