Lambda-Funktion (Python-Version), die Elemente dekomprimiert und in CloudWatch-Protokolle ausgibt, wenn eine komprimierte Datei auf s3 hochgeladen wird

Für das Studium von Lambda. Extrahieren Sie die in den s3-Bucket hochgeladene gz-Datei und geben Sie sie in CloudWatch-Protokolle aus.

analyze_s3logs


from __future__ import print_function

import json
import urllib
import boto3

import gzip

print('Loading function')

s3 = boto3.client('s3')

def lambda_handler(event, context):
    print("[LambdaLog] Received event: " + json.dumps(event, indent=2))

    # Get the object from the event and show its content type
    bucket = event['Records'][0]['s3']['bucket']['name']
    key = urllib.unquote_plus(event['Records'][0]['s3']['object']['key']).decode('utf8')
    try:
        s3.download_file(bucket, key, '/tmp/file.dat')

        if ('.gz' in key):
            f = gzip.open('/tmp/file.dat', 'rb')
        else:
            f = open('/tmp/file.dat', 'r')
        content = f.read()
        f.close
        print(content)

        return 0
    except Exception as e:
        print(e)
        print('[LambdaLog] Error getting object {} from bucket {}. Make sure they exist and your bucket is in the same region as this function.'.format(key, bucket))
        raise e

Recommended Posts

Lambda-Funktion (Python-Version), die Elemente dekomprimiert und in CloudWatch-Protokolle ausgibt, wenn eine komprimierte Datei auf s3 hochgeladen wird
[Python] Exportieren Sie regelmäßig mit Lambda aus CloudWatch-Protokollen nach S3
Verschieben Sie CloudWatch-Protokolle regelmäßig mit Lambda nach S3
Eine Geschichte, die ich behoben habe, als ich das Lambda-Protokoll von Cloudwatch Logs erhalten habe
Ich habe versucht, einen Formatierer zu entwickeln, der Python-Protokolle in JSON ausgibt
Das Ausgabe-Timing ist falsch, wenn die Standardausgabe (Fehlerausgabe) in eine Datei in Python konvertiert wird
[Python] Lösung für das Problem, dass Elemente beim Kopieren einer Liste verknüpft werden
Exportieren Sie PythonC Version OpenCV KeyPoint in eine Datei
Eine Geschichte, die beim Versuch, die Python-Version mit GCE zu aktualisieren, hängen blieb
Beim Schreiben in eine CSV-Datei mit Python habe ich einen kleinen Fehler gemacht und den Liefertermin nicht eingehalten
Verwenden Sie AWS Lambda, um einen Mechanismus zu erstellen, der Slack benachrichtigt, wenn der von CloudWatch überwachte Wert in Python überschritten wird
Versuchen Sie, eine komprimierte Datei mit Python und zlib zu erstellen
[C / C ++] Übergeben Sie den in C / C ++ berechneten Wert an eine Python-Funktion, um den Prozess auszuführen, und verwenden Sie diesen Wert in C / C ++.
Ein Python-Skript, das ein GTK-Bild (Clipboard) in einer Datei speichert.
Ausgabe von CloudWatch-Protokollen an S3 mit AWS Lambda (Pythyon ver)
Erstellen Sie den Code, der in Python "A und vorgeben B" ausgibt
So schreiben Sie eine Meta-Klasse, die sowohl Python2 als auch Python3 unterstützt
Schreiben Sie ein Skript in Shell und Python, um Sie in Slack zu benachrichtigen, wenn der Vorgang abgeschlossen ist
Verarbeiten Sie die mit Redshift entladene gzip-Datei mit Python of Lambda, gzipen Sie sie erneut und laden Sie sie in S3 hoch