我正在使用Azure函数创建触发器,以每小时为基础聚合数据。触发器从blob存储中获取数据,为了避免将相同的数据聚合两次,我想添加一个条件,使我只处理最近一小时修改过的blob。在
我正在使用SDK,我的代码如下所示:
''' Timestamp variables for t.now and t-1 '''
timestamp = datetime.now(tz=utc)
timestamp_negative1hr = timestamp+timedelta(hours=1)
''' Read data from input enivonment '''
data = BlockBlobService(account_name='accname', account_key='key')
generator = data.list_blobs('directory')
dataloaded = []
for blob in generator:
loader = data.get_blob_to_text('collection',blob.name, if_modified_since=timestamp_negative1hr)
trackerstatusobjects = loader.content.split('\n')
for trackerstatusobject in trackerstatusobjects:
dataloaded.append(json.loads(trackerstatusobject))
当我运行这个时,我得到的错误是azure.common.AzureHttpError: The condition specified using HTTP conditional header(s) is not met
。它还被指定是由于超时造成的。blob在我运行它时接收数据,因此在任何情况下它都不是正确的返回消息。如果我在时间戳的末尾添加.strftime("%Y-%m-%d %H:%M:%S:%z")
,我会得到另一个错误AttributeError: 'str' object has no attribute 'tzinfo'
。这一定意味着azure需要一个datetime对象,但由于某些原因它对我不起作用。在
有什么解决办法吗?谢谢
目前没有回答
相关问题 更多 >
编程相关推荐