小编ari*_*elb的帖子

Lambda 函数在 DynamoDB 事件上触发两次

我有附加到 DynamoDB 更改事件的 Lambda 函数。当我更改/修改 DynamoDB 中的测试机表中的项目时,Lambda 会触发两次。

我正在将IsMachineOn值从修改TrueFalse,它触发Test-Machine-On-alert-statusLambda 函数两次。

我不明白为什么两次 lambda 是触发器。

我观察到Lambda 参数records发生了微小变化。event

对于第一个触发器

NewImage["IsMachineOn"]["BOOL"]的值为False

OldImage["IsMachineOn"]["BOOL"]的值为True

对于第二个触发器

NewImage["IsMachineOn"]["BOOL"]的值为False

OldImage["IsMachineOn"]["BOOL"]的值为False

我打开了业务逻辑,NewImage["IsMachineOn"]["BOOL"]==False以便我的业务逻辑运行两次。

有两件事:

  1. 为什么 Lambda 运行了两次?
  2. 解决此问题的解决方法是什么?

amazon-dynamodb aws-lambda

5
推荐指数
1
解决办法
2397
查看次数

给定许多“开始”和“结束”日期时间对象,如何找到间隙?

我有成对的 DateTime 对象。每个 DateTime 对象都是时间范围的“开始”或“结束”。时间范围有时会重叠。我需要找到差距。

我在 pypi 上尝试了 DateTimeRange 模块,测试相交范围,然后构建包含的范围(根据他们的文档),但我无法将这些组件构建到一段代码中来做我想要的

编辑:在这种情况下,“间隔”被定义为最早的“开始”和最新的“结束”之间的任何时间段,该时间段不包含在“开始”和“结束”DateTime 对象对中

import dateparser
from pprint import pprint

foo = []

foo.append({
    "start": dateparser.parse("8:00 AM"),
    "end": dateparser.parse("8:06 AM")
})

foo.append({
    "start": dateparser.parse("8:03 AM"),
    "end": dateparser.parse("8:07 AM")
})

foo.append({
    "start": dateparser.parse("8:02 AM"),
    "end": dateparser.parse("8:16 AM")
})

foo.append({
    "start": dateparser.parse("8:20 AM"),
    "end": dateparser.parse("8:30 AM")
})

pprint(foo)

#[{'end': datetime.datetime(2019, 2, 15, 8, 6),
#  'start': datetime.datetime(2019, 2, 15, 8, 0)},
# {'end': datetime.datetime(2019, 2, 15, 8, 7),
#  'start': datetime.datetime(2019, 2, 15, 8, …
Run Code Online (Sandbox Code Playgroud)

python datetime

2
推荐指数
1
解决办法
452
查看次数

标签 统计

amazon-dynamodb ×1

aws-lambda ×1

datetime ×1

python ×1