示例#1
0
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)
示例#2
0
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')
示例#4
0
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)
示例#5
0
    }


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()