[Python] Memo zur erneuten Verarbeitung (Exponential Backoff) in AWS Lambda

Was soll ich mit dem Wiederholungsvorgang in der Lambda-Funktion tun? Es ist ein Memo, über das ich nachgedacht habe.

Die folgende Folie war hilfreich für den Wiederholungsprozess in Lambda.

Darüber hinaus werden die folgenden Artikel ausführlich zu Exponential Backoff beschrieben.

Ich werde tatsächlich schreiben

Lambda-Funktionen sind in AWS Chalice geschrieben. (Die Wiederholungsverarbeitung kann problemlos durchgeführt werden, auch wenn es sich nicht um Kelch handelt.) Verwenden Sie für Wiederholungsversuche die folgenden Bibliotheken.

$ pip install retrying

Es gibt auch Wiederholung, die ebenfalls leicht zu wiederholen scheint.

app.py


from chalice import Chalice                                                                                                                    
from datetime import datetime
from retrying import retry
import boto3
from botocore.exceptions import ClientError

app = Chalice(app_name='exponential-backoff')

def retryIfClientError(exception):
    print(datetime.now().strftime("%Y/%m/%d %H:%M:%S"))
    print('retrying...')
    #Wiederholen Sie diesen Vorgang, bis False zurückgegeben wird
    return isinstance(exception, ClientError)

# retry_on_exception:Eine bestimmte Ausnahme abholen
# stop_max_attempt_number:Anzahl von Versuchen
# wait_exponential_multiplier:Multiplikator
@retry(retry_on_exception=retryIfClientError, stop_max_attempt_number=3, wait_exponential_multiplier=1000)
def retryS3Test():
    s3 = boto3.resource('s3')
    client = s3.meta.client
    response = client.get_object(Bucket='mybucket', Key='Dateien, die möglicherweise nicht vorhanden sind')

@app.route('/')
def index():
    retryS3Test()

requirements.txt


retrying==1.3.3

Wenn Sie das Kelchprojekt bereitstellen und auf Endpoint klicken, sollte das folgende Protokoll im CloudWatch-Protokoll angezeigt werden und es wird erneut versucht.

スクリーンショット 2017-07-29 18.40.38.png

Recommended Posts

[Python] Memo zur erneuten Verarbeitung (Exponential Backoff) in AWS Lambda
[Python] Scraping in AWS Lambda
Zusammenfassung bei Verwendung von AWS Lambda (Python)
Effektives Python-Memo Element 11 Verwenden Sie zip, um Iteratoren parallel zu verarbeiten
Führen Sie Python planmäßig auf AWS Lambda aus
Best Practice für die Anmeldung im JSON-Format unter AWS Lambda / Python
[Python / AWS Lambda-Ebenen] Ich möchte nur Module in AWS Lambda-Ebenen wiederverwenden
Ich habe Node.js und Python beim Erstellen eines Miniaturbilds mit AWS Lambda verglichen
Benachrichtigen Sie HipChat mit AWS Lambda (Python)
Einfache Serverüberwachung mit AWS Lambda (Python) und Ergebnisbenachrichtigung mit Slack
Das Modul kann nicht in Python auf EC2 importiert werden, das von AWS Lambda ausgeführt wird
[AWS] Hinweise zur Problemvermeidung bei der Installation von awscli und boto3 in einer Python 2.7-Umgebung
Laden Sie das, was Sie angefordert haben, mit AWS Lambda Python in S3 hoch
[AWS] Verwenden von INI-Dateien mit Lambda [Python]
Verwenden Sie print in Python2 lambda expression
Abrufen temporärer AWS-Anmeldeinformationen in PHP, Python
Verarbeiten Sie mehrere Listen mit for in Python
[Python] Führen Sie Headless Chrome unter AWS Lambda aus
Stellen Sie mit AWS Lambda Python eine Verbindung zu s3 her
Memo zum Senden und Empfangen von Bildern mit Python (Flask)
Hinweise zur Bewertung der CG-Bildqualität in Python
Python-Memo
Python-Memo
Python-Memo
Python-Memo
Erstellen Sie Einstellungen in Terraform, um Nachrichten von AWS Lambda Python3.8 an Slack zu senden
Python-Memo
Führen Sie regelmäßig Python-Programme auf AWS Lambda aus
Ein Memo, das ich schnell in Python geschrieben habe
Unterschiede zwischen queryStringParameters und multiValueQueryStringParameters in AWS Lambda
Erstellen eines Nummerierungsprozesses mit Python im lokalen DynamoDB-Nummerierungsprozess
Python: Ich konnte in Lambda rekursieren
Ein Memo, das ich in Python zusammengeführt habe
LINE BOT mit Python + AWS Lambda + API Gateway
Serverlose Anwendung mit AWS SAM! (APIGATEWAY + Lambda (Python))
[AWS / Lambda] Laden einer externen Python-Bibliothek
Erste Schritte mit AWS IoT in Python
Zusammenfassung des Studiums von Python zur Verwendung von AWS Lambda
Konvertieren Sie den exponentiellen Float in Python in str
Amazon API Gateway und AWS Lambda Python-Version