def lambda_handler(event, context): delayList = get_json_from_s3(bucket_name, 'delay.json') delayPrevList = get_json_from_s3(bucket_name, 'delay_prev.json') if (compare(delayList, delayPrevList)): print('DIFFなし') # message = '電車運行情報で更新情報なし' # send_mail(message, delayList, delayPrevList) else: print('DIFFアリ') message = '電車運行情報で更新情報あり' send_mail(message, delayList, delayPrevList) # 直近のファイルを、前回分として保存。(次回のため) result = json.dumps(delayList, ensure_ascii=False, indent=4, sort_keys=True, separators=(',', ': ')) store_json_to_s3(bucket_name, 'delay_prev.json', result)
def lambda_handler(event, context): source = event['Records'][0]['s3']['object']['key'] #source = 'forecast_130010.json' city_code = source[len( 'forecast_'):-5] #キー名から、city_codeを抽出。temperature_130010.json → 130010 bucket_name = event['Records'][0]['s3']['bucket']['name'] json_data = get_json_from_s3(bucket_name, source) print(bucket_name) print(city_code) #print(key) #print(json_data) create_temperature_info_list(bucket_name, city_code, json_data)
def lambda_handler(event, context): bucket_name = 'nu.mine.kino.temperature' source = 'temperature_130010.json' json_data = get_json_from_s3(bucket_name, source) jst = pytz.timezone('Asia/Tokyo') today = datetime.now(tz=jst) today_str = today.strftime('%Y-%m-%d') yesterday_str = (today + timedelta(days=-1)).strftime('%Y-%m-%d') today_data = [item for item in json_data if item['date'] == today_str][0] yesterday_data = [ item for item in json_data if item['date'] == yesterday_str ][0] today_data_str = json.dumps(today_data['temperature']) yesterday_data_str = json.dumps(yesterday_data['temperature']) send_message = '気温情報\n\n' send_message += today_str + ' :' + today_data_str + ' ave:' + str( mean([ today_data['temperature']['max'], today_data['temperature']['min'] ])) + '\n' send_message += yesterday_str + ' :' + yesterday_data_str + ' ave:' + str( mean([ yesterday_data['temperature']['max'], yesterday_data['temperature']['min'] ])) + '\n' topic = config.get('aws', 'topic') subject = today_str + ' の気温情報' print(send_message) sns = boto3.client('sns') response = sns.publish(TopicArn=topic, Message=send_message, Subject=subject, MessageStructure='Raw')
def create_temperature_info_list(bucket_name, cityCode, json_data): ''' 以下、本当の処理。 ''' file = 'temperature_' + cityCode + '.json' try: data0 = get_temperature_info(json_data, 0) data1 = get_temperature_info(json_data, 1) print(data0) print(data1) temp_series = [] if (exists(bucket_name, file)): print("exist") temp_series = get_json_from_s3(bucket_name, file) ''' 自分と異なる日付のデータをとってきて、自分をAppend。 ''' if (is_replace_data(data0)): fResults0 = replace_temperature_info(data0, temp_series) else: fResults0 = temp_series if (is_replace_data(data1)): fResults1 = replace_temperature_info(data1, fResults0) else: fResults1 = fResults0 result = json.dumps(fResults1, ensure_ascii=False, indent=4, sort_keys=True, separators=(',', ': ')) store_json_to_s3(bucket_name, file, result) except Exception as e: print(file + 'の処理でエラーが発生しました。') print(e)
} if __name__ == "__main__": event_str = ''' { "Records": [ { "s3": { "configurationId": "testConfigRule", "object": { "key": "forecast_130010.json" }, "bucket": { "name": "nu.mine.kino.temperature" } } } ] }''' event = json.loads(event_str) json_data = get_json_from_s3("nu.mine.kino.temperature", "temperature_130010.json") for record in json_data: print(record['temperature']['max']) print(record['temperature']['min']) #lambda_handler(event, '') # create_temperature_info_list()