Программа работает в python, но в EC2-Cronjob / AWS Lambda пропускает добавляемый список - PullRequest
0 голосов
/ 08 мая 2020
def power(self):
        #json= jsonObj.json()
        buildingName='someName'
        now= datetime.datetime.now()
        end= now.strftime('%Y-%m-%d %H:%M:%S')
        start=  (now - datetime.timedelta(minutes=30)).strftime('%Y-%m-%d %H:%M:%S')
        jsonObj= self.solarEdgeClient("power", startTime= start, endTime= end)
        values = jsonObj['power']['values']
        tsData= []
        for value in values:
            ts= str(SolarEdge.timetoUTC(value['date']))
            unit = str(jsonObj['power']['unit'])
            point_id='{}.SolarEdge.Power'.format(buildingName)
            if value['value'] == None:
                pass
            else:
                quantity = float(value['value'])
                tsData.append({'point_id':point_id,'ts':ts, 'quantity': quantity, 'unit': unit})
        return tsData

Это функция, которую я вызываю для получения данных, список добавляется сюда. Это работает, когда я запускаю код в возвышенном виде. Однако, когда я использую cron, я получаю пустой список. Вот как я вызываю функцию:

def create_history(self, history):
    #print(history)
    client = Client(url=STAGNIG_URL)
    return client.api_request('POST', DEVICE_HOSTORY_ENDPOINT, payload= history)

def  semi_hourly(event= None, context= None):
     history = SolarEdge.power() 
     time.sleep(15)
     SolarEdge.create_history(history)
     return print(history)

Это всего лишь фрагмент. Я знаю, что код работает, но при работе в Cron функция power () пропускается. То же самое для функции AWS lamda.

semi_hourly()
...