0
私はAWS SQSキューにメッセージを投稿する作業用python/botoスクリプトを用意しています。ただし、メッセージ本体はスクリプトにハードコードされています。AWS SQS:botoを使用して動的メッセージを送信
私はこれらの2つの値が含まれている私のAWS SQSキューにメッセージを送信するために私のbotoスクリプト(下記参照)を希望の二つの値
$ cat ~/file
Username 'encrypted_password_string'
が含まれている〜/ファイルと呼ばれるファイルを作成します。
誰でも以下のスクリプトを修正して、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}))
まず、** STOPのboto使用して、** boto3使用を開始。 boto3に入ったら、次の例に従ってください:http://boto3.readthedocs.io/en/latest/guide/sqs.html boto3はリソースメソッドboto3.resource()と低レベルのboto3.client()メソッドを使用することもできます。ラッパーを作成する場合は、それらを文書化することを忘れないでください。 – mootmoot
ありがとうmootmootしかし、私は上記のスクリプトに動的な値を入力する方法の質問に答えることはありません。 – KarlH
正直なところ、あなたの質問とあなたの意図を明確にする必要があります。あなたの質問には言及されていないが、ユーザー名を取得するために 'who am i'を使用するのは奇妙です。それから突然 '/ tmp/.s'にジャンプします。それを明確にするか、モダンになる危険性があります。 – mootmoot