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 la versión 3 de AWS SDK for PHP
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 mediante 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 for PHP está disponible aquí en GitHub
Credenciales
Antes de ejecutar el código de ejemplo, configure sus credenciales de AWS, como se indica en Credentials. A continuación, importe AWS SDK for PHP, como se indica en Uso básico.
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()); }