그래서 두 개의 EC2 인스턴스간에 파이썬 객체를 전달하기 위해 SQS를 사용하려고합니다. 여기 내 실패한 시도는 다음과 같습니다Amazon SQS 메시지에 임의의 Python 객체가 있습니까?
import boto.sqs
from boto.sqs.message import Message
class UserInput(Message):
def set_email(self, email):
self.email = email
def set_data(self, data):
self.data = data
def get_email(self):
return self.email
def get_data(self):
return self.data
conn = boto.sqs.connect_to_region('us-west-2')
q = conn.create_queue('user_input_queue')
q.set_message_class(UserInput)
m = UserInput()
m.set_email('[email protected]')
m.set_data({'foo': 'bar'})
q.write(m)
그것은 The request must contain the parameter MessageBody
것을 말하는 오류 메시지를 반환합니다. 실제로 tutorial은 메시지를 대기열에 쓰기 전에 m.set_body('something')
을 수행해야한다고 말합니다. 하지만 여기에서는 문자열을 전달하지 않고, UserInput 클래스의 인스턴스를 전달하려고합니다. MessageBody는 무엇이되어야합니까? 나는 docs 읽은 그들은
The constructor for the Message class must accept a keyword parameter “body” which represents the content or body of the message. The format of this parameter will depend on the behavior of the particular Message subclass. For example, if the Message subclass provides dictionary-like behavior to the user the body passed to the constructor should be a dict-like object that can be used to populate the initial state of the message.
는 내 질문에 대한 답은 그 단락에있을 수 있습니다 생각이라고,하지만 난 그것을 이해 할 수 없습니다. 누구든지 그들이 말하는 것에 대해 설명하기 위해 구체적인 코드 예제를 제공 할 수 있습니까?
그랬습니다. 감사! – Parzival