Вам нужен уникальный идентификатор и проверьте его перед обработкой. Посмотрите, есть ли оно у события. Например, пример события для «выражения cron» в правиле наблюдения за облаком предполагает, что вы получите что-то вроде этого:
{
"version": "0",
"id": "89d1a02d-5ec7-412e-82f5-13505f849b41",
"detail-type": "Scheduled Event",
"source": "aws.events",
"account": "123456789012",
"time": "2016-12-30T18:44:49Z",
"region": "us-east-1",
"resources": [
"arn:aws:events:us-east-1:123456789012:rule/SampleRule"
],
"detail": {}
}
В этом случае ваш код будет читать event.id и записывать его в S3 (например, yourbucket/running/89d1a02d-5ec7-412e-82f5-13505f849b41). Когда лямбда запускается, она может перечислить ключи в разделе «yourbucket/running» и посмотреть, соответствует ли event.id любому из них.
Если ничего не совпадает, создайте его.
Это не пуленепробиваемое решение, вы, вероятно, можете столкнуться с некоторыми условиями гонки, скажем, если сработает другая лямбда, в то время как AWS медленно создает ключ, но быстро запускает другую лямбду, но это то, с чем вам придется жить, если вы хотите нравится использовать s3.
person
Adil Hindistan
schedule
26.06.2019