As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Enviar, receber e excluir mensagens do Amazon SQS
As mensagens são sempre entregues usando uma fila do SQS. Esses exemplos de C++ mostram como usar o AWS SDK para C++ para enviar, receber e excluir mensagens do Amazon SQS das filas do SQS.
Pré-requisitos
Antes de começar, recomendamos que você leia Getting started using the AWS SDK para C++.
Baixe o exemplo código de código e crie a solução conforme descrito em Conceitos básicos dos exemplos de código.
Para executar os exemplos, o perfil de usuário que seu código usa para fazer as solicitações deve ter as permissões adequadas na AWS (para o serviço e a ação). Para acessar mais informações, consulte Fornecer credenciais da AWS.
Enviar uma mensagem
Você pode adicionar uma mensagem única a uma fila do Amazon SQS chamando a função de membro SendMessage da classe do SQSClient. Forneça uma SendMessage com um objeto SendMessageRequest com o URL da fila, o corpo da mensagem e o valor de atraso opcional (em segundos).
Inclui
#include <aws/core/Aws.h> #include <aws/sqs/SQSClient.h> #include <aws/sqs/model/SendMessageRequest.h> #include <iostream>
Código da
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 o exemplo completo
Receber mensagens
Recupere todas as mensagens que estão atualmente na fila chamando a função de membro ReceiveMessage da classe do SQSClient, transmitindo a ela o URL da fila. As mensagens são retornadas como uma lista de objetos Message.
Inclui
#include <aws/core/Aws.h> #include <aws/sqs/SQSClient.h> #include <aws/sqs/model/ReceiveMessageRequest.h> #include <iostream>
Código da
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 o exemplo completo
Excluir mensagens depois do recebimento
Após receber uma mensagem e processar o conteúdo, exclua-a da fila enviando o identificador de recebimento da mensagem e o URL da fila para a função de membro DeleteMessage da classe do SQSClient.
Inclui
#include <aws/core/Aws.h> #include <aws/sqs/SQSClient.h> #include <aws/sqs/model/DeleteMessageRequest.h> #include <iostream>
Código da
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 o exemplo completo
Mais informações
-
How Amazon SQS Queues Work no Guia do desenvolvedor do Amazon Simple Queue Service.
-
SendMessage na Referência de API do Amazon Simple Queue Service.
-
SendMessageBatch na Referência de API do Amazon Simple Queue Service.
-
ReceiveMessage na Referência da API do Amazon Simple Queue Service.
-
DeleteMessage na Referência de API do Amazon Simple Queue Service.