AWS SQS:使用boto发送动态消息

时间:2016-07-05 06:56:09

标签: python-2.7 amazon-web-services boto amazon-sqs

我有一个工作的python / boto脚本,它将消息发布到我的AWS SQS队列。然而,邮件正文被硬编码到脚本中。

我创建了一个名为〜/ file的文件,其中包含两个值

$ cat ~/file
Username 'encrypted_password_string'

我希望我的boto脚本(见下文)将消息发送到包含这两个值的AWS SQS队列。

任何人都可以建议如何修改我的脚本,以便发送到SQS的消息体包含文件〜/ file的内容。另请注意加密密码字符串中存在的特殊字符

实施例: 〜/文件 用户名d5MopV / EsfSKk8BExCyLHFwNfBrOTzQ1

#!/usr/bin/env python

conf = {
  "sqs-access-key": "xxxx",
  "sqs-secret-key": "xxxx",
  "sqs-queue-name": "UserPassChange",
  "sqs-region": "xxxx",
  "sqs-path": "sqssend"
}

import boto.sqs
conn = boto.sqs.connect_to_region(
        conf.get('sqs-region'),
        aws_access_key_id       = conf.get('sqs-access-key'),
        aws_secret_access_key   = conf.get('sqs-secret-key')
)

q = conn.create_queue(conf.get('sqs-queue-name'))

from boto.sqs.message import RawMessage
m = RawMessage()
m.set_body('hardcoded message')
retval = q.write(m)
print 'added message, got retval: %s' % retval

让它运转的一种方法:

在我添加的脚本中

import commands

然后补充说,

USERNAME = commands.getoutput("echo $(who am i | awk '{print $1}')")    
PASS = commands.getoutput("cat /tmp/.s")

然后将这些值添加到我的邮件正文中:

MSG = RawMessage()    
MSG.set_body(json.dumps({'pass': PASS, 'user': USERNAME}))

1 个答案:

答案 0 :(得分:0)

以下示例显示如何使用Boto3将文件发送到接收方。

test_sqs.py

#id1 .active {}