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, recepción y eliminación de mensajes de Amazon SQS
Los mensajes se envían siempre a través de una cola de SQS. Estos ejemplos de C++ muestran cómo utilizar el AWS SDK para C++ para enviar, recibir y eliminar mensajes de Amazon SQS de las colas de SQS.
Requisitos previos
Antes de comenzar, le recomendamos que lea Primeros pasos con el AWS SDK para C++.
Descargue el código de ejemplo y compile la solución tal y como se describe en Introducción a los ejemplos de código.
Para ejecutar los ejemplos, el perfil de usuario que su código utilice para realizar las solicitudes debe tener los permisos adecuados en AWS (para el servicio y la acción). Para obtener más información, consulte Proporcionar credenciales de AWS.
Enviar un mensaje
Puede añadir un único mensaje a una cola de Amazon SQS llamando a la función miembro SendMessage de la clase SqsClient. Proporcione a SendMessage un objeto SendMessageRequest que contenga la URL de la cola, el cuerpo del mensaje y un valor de retraso opcional (en segundos).
Incluye
#include <aws/core/Aws.h> #include <aws/sqs/SQSClient.h> #include <aws/sqs/model/SendMessageRequest.h> #include <iostream>
Código de
Aws::SQS::SQSClient sqsClient(clientConfiguration); Aws::SQS::Model::SendMessageRequest request; request.SetQueueUrl(queueUrl); request.SetMessageBody(messageBody); const Aws::SQS::Model::SendMessageOutcome outcome = sqsClient.SendMessage(request); if (outcome.IsSuccess()) { std::cout << "Successfully sent message to " << queueUrl << std::endl; } else { std::cerr << "Error sending message to " << queueUrl << ": " << outcome.GetError().GetMessage() << std::endl; }
Consulte el ejemplo completo
Recibir mensajes
Recupere todos los mensajes que se encuentran actualmente en la cola llamando a la función miembro ReceiveMessage de la clase SQSClient y transfiriéndole la URL de la cola. Los mensajes se devuelven como una lista de objetos Message.
Incluye
#include <aws/core/Aws.h> #include <aws/sqs/SQSClient.h> #include <aws/sqs/model/ReceiveMessageRequest.h> #include <iostream>
Código de
Aws::SQS::SQSClient sqsClient(clientConfiguration); Aws::SQS::Model::ReceiveMessageRequest request; request.SetQueueUrl(queueUrl); request.SetMaxNumberOfMessages(1); const Aws::SQS::Model::ReceiveMessageOutcome outcome = sqsClient.ReceiveMessage( request); if (outcome.IsSuccess()) { const Aws::Vector<Aws::SQS::Model::Message> &messages = outcome.GetResult().GetMessages(); if (!messages.empty()) { const Aws::SQS::Model::Message &message = messages[0]; std::cout << "Received message:" << std::endl; std::cout << " MessageId: " << message.GetMessageId() << std::endl; std::cout << " ReceiptHandle: " << message.GetReceiptHandle() << std::endl; std::cout << " Body: " << message.GetBody() << std::endl << std::endl; } else { std::cout << "No messages received from queue " << queueUrl << std::endl; } } else { std::cerr << "Error receiving message from queue " << queueUrl << ": " << outcome.GetError().GetMessage() << std::endl; }
Consulte el ejemplo completo
Eliminar mensajes después de su recepción
Tras recibir un mensaje y procesar su contenido, elimine el mensaje de la cola enviando el identificador de recepción y la URL de la cola del mensaje a la función miembro DeleteMessage de la clase SQSClient.
Incluye
#include <aws/core/Aws.h> #include <aws/sqs/SQSClient.h> #include <aws/sqs/model/DeleteMessageRequest.h> #include <iostream>
Código de
Aws::SQS::Model::DeleteMessageRequest request; request.SetQueueUrl(queueUrl); request.SetReceiptHandle(messageReceiptHandle); const Aws::SQS::Model::DeleteMessageOutcome outcome = sqsClient.DeleteMessage( request); if (outcome.IsSuccess()) { std::cout << "Successfully deleted message from queue " << queueUrl << std::endl; } else { std::cerr << "Error deleting message from queue " << queueUrl << ": " << outcome.GetError().GetMessage() << std::endl; }
Consulte el ejemplo completo
Más información
-
Cómo funcionan las colas de Amazon SQS en la Guía para desarrolladores de Amazon Simple Queue Service
-
SendMessage en la Referencia de la API de Amazon Simple Queue Service
-
SendMessageBatch en la Referencia de la API de Amazon Simple Queue Service
-
ReceiveMessage en la Referencia de la API de Amazon Simple Queue Service
-
DeleteMessage en la Referencia de la API de Amazon Simple Queue Service