как ограничить количество раз aws лямбда выполняется при ошибке? - PullRequest
0 голосов
/ 04 августа 2020

Я новичок в Python и AWS. Следуя инструкциям, я создал корзину S3, когда объект создается в s3, он запускает следующую лямбда-функцию (см. Код ниже). во время тестирования я обнаружил, что изначально у меня была некоторая ошибка в моем коде, поэтому, когда я загружал файл, лямбда выполняется, а затем, если это вызывает ошибку. он пытается выполняться снова и снова. Я предполагаю, что это характер лямбда-функции по умолчанию, если она не работает, она пытается выполнить ее снова. Я хочу добавить некоторую обработку ошибок и, возможно, тоже ведение журнала. кроме того, если возникает ошибка при обработке файла, могу ли я ограничить ее, чтобы лямбда выполнялась только один раз и не пыталась повторять попытки.

import boto3
import os
from requests_aws4auth import AWS4Auth

session = boto3.Session()
credentials = session.get_credentials()
aws4auth = AWS4Auth(credentials.access_key,credentials.secret_key,region, service, session_token=credentials.token)
                    
s3 = boto3.resource('s3')

name = event['Records'][0]['s3']['bucket']['name']
key = event['Records'][0]['s3']['object']['key']

obj = s3.Object(name,key) 

# get the object
response = obj.get()

print(response)

1 Ответ

2 голосов
/ 04 августа 2020

S3 вызывает вашу функцию асинхронно:

Amazon S3 вызывает вашу функцию асинхронно с событием, содержащим подробную информацию об объекте. В следующем примере показано событие, которое Amazon S3 отправил, когда пакет развертывания был загружен в Amazon S3.

Таким образом, вы можете установить количество попыток повтора с 2 по умолчанию на 0:

введите описание изображения здесь

...