2017-09-19 2 views
0

Comment obtenir aws sqs client et envoyer un message à la file d'attente dans ruby ​​sdk?Comment obtenir aws sqs client et envoyer un message à la queue?

$sqs = Aws::SQS::Client.new(
    :access_key_id => SQS_CONFIG[:access_key_id], 
    :secret_access_key => SQS_CONFIG[:secret_access_key], 
    :region => 'us-east-1' 
) 

Après cela, comment envoyer un message à une file d'attente?

+0

Est-ce que vous allez voir les [exemples pour le SDK Ruby] (https://docs.aws.amazon.com/sdk-for-ruby/v2/developer- guide/sqs-exemple-send-et-receive-messages.html)? – spickermann

+0

J'ai besoin de la file d'attente fifo. Aws :: SQS :: Errors :: MissingParameter (La requête doit contenir le paramètre MessageGroupId.): –

Répondre

1

De l'AWS Developer Guide

require 'aws-sdk' 

sqs = Aws::SQS::Client.new(region: 'us-east-1') 

# Send a message to a queue. 
queue_name = "my-queue" 

begin 
    queue_url = sqs.get_queue_url(queue_name: queue_name).queue_url 

    # Create a message with three custom attributes: Title, Author, and WeeksOn. 
    send_message_result = sqs.send_message({ 
    queue_url: queue_url, 
    message_body: "Information about current NY Times fiction bestseller for week of 2016-12-11.", 
    message_attributes: { 
     "Title" => { 
     string_value: "The Whistler", 
     data_type: "String" 
     }, 
     "Author" => { 
     string_value: "John Grisham", 
     data_type: "String" 
     }, 
     "WeeksOn" => { 
     string_value: "6", 
     data_type: "Number" 
     } 
    } 
    }) 
rescue Aws::SQS::Errors::NonExistentQueue 
    puts "A queue named '#{queue_name}' does not exist." 
    exit(false) 
end 

puts send_message_result.message_id 
+0

Dans SDK v1, il existe une interrogation de méthode à interroger à partir de la file d'attente à l'infini. Comment puis-je y parvenir en V2? @ robbie-chiha –

+0

v2: http://docs.aws.amazon.com/sdkforruby/api/Aws/SQS/QueuePoller.html v3: http://docs.aws.amazon.com/sdk-for-ruby /v3/api/Aws/SQS/QueuePoller.html –