-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathto_aws.py
54 lines (35 loc) · 1.14 KB
/
to_aws.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# coding=utf-8
import argparse
import json
import logging
from retry import retry
import helpers
import requests
logger = logging.getLogger('to_sqlite')
handler = logging.FileHandler('to_sqlite.log')
formatter = logging.Formatter('%(asctime)s %(levelname)s %(funcName)s: %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.setLevel(logging.DEBUG)
logger.info('----- START -----')
@retry(tries=10, delay=20)
def send_to_aws(name, data_in):
data = {
'sensorId': name,
'ts': data_in['ts'],
'temperature': data_in['temperature'],
}
requests.post(helpers.STORAGE_ROOT_URL + 'addOne', data=json.dumps(data))
@helpers.exception(logger=logger)
def main():
parser = argparse.ArgumentParser(
description='Read temperature from stdin and send it to AWS.')
parser.add_argument('--name', type=str, help='Name of the sensor.')
args = parser.parse_args()
data_in = helpers.read_stdin()
send_to_aws(args.name, data_in)
# data_out = json.dumps(data_in)
# print(data_out.encode('utf-8'))
logger.info('----- END -----')
if __name__ == '__main__':
main()