lambda_PublishMQTT.py 1.63 KB
import json
import os # os.path/os.environ
import io # for use file-object, only in memory
import urllib.request  # download file
import sys
import boto3
import datetime 
 
# js = {
#         "state":{
#             "desired":{
#                 "protperty":"someValue"
#             }
#         }
#     }
 

ACCESS_KEY = os.environ.get('ACCESS_KEY')
SECRET_KEY = os.environ.get('SECRET_KEY')
BUCKET_NAME = os.environ.get('BUCKET_NAME')

line = 'string'

# download weight,name,cfg file with this
def downloadFromS3(strBucket, s3_path, local_path):
    s3_client = boto3.client(
        's3',
        aws_access_key_id=ACCESS_KEY,
        aws_secret_access_key=SECRET_KEY,
    )
    s3_client.download_file(strBucket, s3_path, local_path)


def lambda_handler(event, context):
    print(event)
    global line 
    
    bucket_name = event['Records'][0]['s3']['bucket']['name']
    file_name = event['Records'][0]['s3']['object']['key'] 
    print('Image to be processed, from: bucket [%s], object key: [%s]' % (bucket_name, file_name))

    #donwload image and files (location : /tmp folder in lambda )
    downloadFromS3(bucket_name, file_name, '/tmp/' + file_name)
    
    print('finished download')
    print('filename: ', '/tmp/' + file_name)
    file_path = '/tmp/' + file_name
    
    f = open(file_path,'r')
    line = f.readline()
    print(line)
    f.close()
    
    client = boto3.client('iot-data', region_name='ap-northeast-1')
    
    response = client.publish(
        topic = 'fromlambda',
        qos = 1, 
        payload = line
        )
    
    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }