Fonction Lambda (version python) qui décompresse et génère des éléments dans CloudWatch Logs lorsqu'un fichier compressé est téléchargé vers s3

Pour étudier Lambda. Extrayez le fichier gz téléchargé dans le bucket s3 et exportez-le dans CloudWatch Logs.

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

Fonction Lambda (version python) qui décompresse et génère des éléments dans CloudWatch Logs lorsqu'un fichier compressé est téléchargé vers s3
[Python] Exportez régulièrement de CloudWatch Logs vers S3 avec Lambda
Déplacer régulièrement les journaux CloudWatch vers S3 avec Lambda
Une histoire que j'ai corrigée lorsque j'ai obtenu le journal Lambda de Cloudwatch Logs
J'ai essayé de développer un formateur qui génère des journaux Python en JSON
La synchronisation de la sortie est incorrecte lorsque la sortie standard (erreur) est convertie en fichier en Python
[Python] Solution au problème que les éléments sont liés lors de la copie d'une liste
Exporter la version Python3 OpenCV KeyPoint dans un fichier
Une histoire bloquée lors de la tentative de mise à niveau de la version Python avec GCE
Lors de l'écriture dans un fichier csv avec python, une histoire que j'ai fait une légère erreur et n'a pas respecté la date de livraison
Utilisons AWS Lambda pour créer un mécanisme pour notifier Slack lorsque la valeur surveillée par CloudWatch est dépassée sur Python
Essayez de créer un fichier compressé en utilisant Python et zlib
[C / C ++] Passez la valeur calculée en C / C ++ à une fonction python pour exécuter le processus et utilisez cette valeur en C / C ++.
Un script Python qui enregistre une image de presse-papiers (GTK) dans un fichier.
Exporter les journaux CloudWatch vers S3 avec AWS Lambda (Pythyon ver)
Créez le code qui renvoie "A et prétendant B" en python
Comment écrire une classe méta qui prend en charge à la fois python2 et python3
Écrivez un script dans Shell et Python pour vous avertir dans Slack lorsque le processus est terminé
Traitez le fichier gzip UNLOADed avec Redshift avec Python de Lambda, gzipez-le à nouveau et téléchargez-le sur S3