Created
October 25, 2020 09:48
-
-
Save sagar-rout/dff30a03b31d847d6430a635bf812937 to your computer and use it in GitHub Desktop.
Revisions
-
sagar-rout created this gist
Oct 25, 2020 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,55 @@ import os import requests from datetime import datetime, timedelta import json import json_logging import logging import sys # log is initialized without a web framework name json_logging.init_non_web(enable_json=True) logger = logging.getLogger("weather-data-download") logger.setLevel(logging.INFO) logger.addHandler(logging.StreamHandler(sys.stdout)) CITY_CODE = os.getenv('CITY_CODE') OPEN_WEATHER_API_KEY = os.getenv('OPEN_WEATHER_API_KEY') OPEN_WEATHER_API = os.getenv('OPEN_WEATHER_API') def download_city_next_hour_weather_data(): """ Download weather data for city """ start_time = datetime.now() end_time = (start_time + timedelta(hours=1)) requests_params = {'id': CITY_CODE, 'appid': OPEN_WEATHER_API_KEY} response = requests.get(url=OPEN_WEATHER_API, params=requests_params) logger.info(msg='Response status ' + str(response.status_code)) city_weather = json.loads(response.text)['main'] is_data_valid = validate_weather_data(city_weather) if not is_data_valid: logger.error("Data is missing for this hour.") def validate_weather_data(city_weather): required_fields = ['temp', 'temp_min', 'temp_max', 'pressure', 'humidity'] is_data_valid = True for required_field in required_fields: if required_field not in city_weather: is_data_valid = False return is_data_valid def lambda_handler(event, context): logger.info(event) download_city_next_hour_weather_data()