我在這裏有一個小問題。我想使用python從文本文件讀取並創建隊列,然後將這些行從文本文件發送到Amazon Web服務SQS(簡單隊列服務)。首先,我實際上設法使用boto來做到這一點,但問題是這些線不是按順序排列的,只是隨機的,就像4號線,1號線,5號線等等。 這裏是我的代碼:從文本文件讀取併發送到aws sqs fifo隊列
import boto.sqs
conn = boto.sqs.connect_to_region("us-east-2",
aws_access_key_id='AKIAIJIQZG5TR3NMW3LQ',
aws_secret_access_key='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')
q = conn.create_queue('test')
with open('read.txt', 'r') as read_file:
from boto.sqs.message import RawMessage
for line in read_file:
m = RawMessage()
m.set_body(line)
q.write(m)
那麼,該怎麼辦?那麼,我們需要創建一個FIFO隊列(我也設法在Python中使用boto3),但現在問題是我讀取文本文件時遇到問題。下面是我用來在SQS中創建FIFO隊列的代碼:
import boto3
AWS_ACCESS_KEY = 'AKIAIJIQZG5TR3NMW3LQ'
AWS_SECRET_ACCESS_KEY = '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'
sqs_client = boto3.resource(
'sqs',
aws_access_key_id=AWS_ACCESS_KEY,
aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
region_name='us-east-2'
)
queue_name = ('demo_queue.fifo')
response = sqs_client.create_queue(
QueueName=queue_name,
Attributes={
'FifoQueue': 'true',
'ContentBasedDeduplication': 'true'
}
)
with open('read.txt', 'r') as read_file:
from boto.sqs.message import RawMessage
for line in read_file:
m = RawMessage()
m.set_body(line)
queue_name.write(m)
有人知道如何解決這個問題嗎?謝謝。
什麼你得到的錯誤? –
我收到錯誤消息:AttributeError:'str'對象沒有屬性'write' – raxor