Invio e ricezione di messaggi in Amazon SQS con AWS SDK for PHP la versione 3 - AWS SDK for PHP

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Invio e ricezione di messaggi in Amazon SQS con AWS SDK for PHP la versione 3

Per ulteriori informazioni sui messaggi Amazon SQS, consulta Invio di un messaggio a una coda SQS e Ricezione ed eliminazione di un messaggio da una coda SQS nella Guida per l'utente di Service Quotas.

Gli esempi seguenti mostrano come:

  • Invia un messaggio a una coda specificata utilizzando. SendMessage

  • Recupera uno o più messaggi (fino a 10) da una coda specificata utilizzando. ReceiveMessage

  • Elimina un messaggio da una coda utilizzando. DeleteMessage

Tutto il codice di esempio per il AWS SDK for PHP è disponibile GitHub qui.

Credenziali

Prima di eseguire il codice di esempio, configurate AWS le vostre credenziali, come descritto inCredenziali. Quindi importate il fileAWS SDK for PHP, come descritto inUtilizzo di base.

Invio di un messaggio

Importazioni

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

Codice di esempio

$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()); }

Ricevere ed eliminare messaggi

Importazioni

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

Codice di esempio

$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()); }