Écrire des données CSV sur AWS-S3 avec AWS-Lambda + Python

Écrire des données CSV sur AWS-S3 avec AWS-Lambda + Python

introduction

`Ceci est un article sur l'environnement Mac, mais la procédure est la même pour l'environnement Windows. Veuillez lire et essayer la partie dépendant de l'environnement. ''

Objectif

Après avoir lu cet article jusqu'au bout, vous pourrez:

No. Aperçu mot-clé
1 codage Python, boto3
2 Paramètres Lambda Lambda

Environnement d'exécution

environnement Ver.
macOS Catalina 10.15.3
Python 3.7.3
boto3 1.11.17

Code source

Je pense que vous pouvez approfondir votre compréhension en suivant réellement le contenu de l'implémentation et le code source. Veuillez l'utiliser par tous les moyens.

GitHub

Articles Liés

Fonctionnalités d'AWS-Lambda

Ce service est un système de paiement à l'utilisation. Notez s'il vous plaît.

Flux global

  1. Écrivez du code Python
  2. Créez une fonction Lambda
  3. Définissez les variables d'environnement

1. Écrivez du code Python

codage

app/lambda_function.py


"""app/lambda_function.py
"""

import os
import sys
from datetime import datetime, timedelta, timezone

from boto3.session import Session


def _localtime(time_zone):
    """_localtime
    """
    return datetime.now(timezone.utc)+timedelta(hours=int(time_zone))


def _write_to_s3(param):
    """_write_to_s3
    """
    access_key_id = param.get('aws_access_key_id')
    secret_access_key = param.get('aws_secret_access_key')
    region_name = param.get('aws_region_name')
    bucket_name = param.get('s3_bucket_name')
    file_name_format = param.get('s3_file_name_format')
    encode = param.get('s3_encode')
    data = param.get('data')

    session = Session(aws_access_key_id=access_key_id,
                      aws_secret_access_key=secret_access_key,
                      region_name=region_name)
    s3 = session.resource('s3')
    bucket = s3.Bucket(bucket_name)  # pylint: disable=no-member

    fname = '{}.csv'.format(_localtime(time_zone=9).strftime(file_name_format))
    print('fname: {}'.format(fname))
    obj = bucket.Object(fname)

    try:
        obj.put(
            Body=data.encode(encode, 'ignore'),
            ContentEncoding=encode,
            ContentType='text/csv'
        )
    except AttributeError as e:
        print(e)
        sys.exit()


def lambda_handler(event, context):
    """lambda_handler
    """
    print('event: {}'.format(event))
    print('context: {}'.format(context))

    param = {
        'aws_access_key_id': os.getenv('S3_ACCESS_KEY_ID', ''),
        'aws_secret_access_key': os.getenv('S3_SECRET_ACCESS_KEY', ''),
        'aws_region_name': os.getenv('S3_REGION_NAME', ''),
        's3_bucket_name': os.getenv('S3_BUCKET_NAME', ''),
        's3_file_name_format': os.getenv('S3_FILE_NAME_FORMAT', ''),
        's3_encode': os.getenv('S3_ENCODE', ''),
        'data': _localtime(time_zone=0).strftime('%Y-%m-%dT%H:%M:%S+00:00')
    }
    _write_to_s3(param=param)

    return {
        'status_code': 200
    }


if __name__ == '__main__':
    lambda_handler(event=None, context=None)

2. Créez une fonction Lambda

Exécutez régulièrement le scraping WEB avec AWS-Lambda + Python + Cron](https://qiita.com/nsuhara/items/0d36600511fc162827f6) et effectuez jusqu'à zip upload

3. Définissez les variables d'environnement

Variable d'environnement

  1. Définir à partir de ʻEdit dans la section Variables d'environnement`
Clé valeur
S3_ACCESS_KEY_ID {aws_access_key_id}
S3_SECRET_ACCESS_KEY {aws_secret_access_key}
S3_REGION_NAME {region_name}
S3_BUCKET_NAME {bucket}
S3_FILE_NAME_FORMAT e.g. release/%Y-%m/%Y-%m-%d
S3_ENCODE e.g. cp932

`{} est différent pour chaque environnement. ''

Recommended Posts

Écrire des données CSV sur AWS-S3 avec AWS-Lambda + Python
Écrire en csv avec Python
[Python] Ecrire dans un fichier csv avec Python
[Python] Un mémo pour écrire du CSV verticalement avec Pandas
Sortie vers un fichier csv avec Python
Convertir des données Excel en JSON avec python
Convertissez des données FX 1 minute en données 5 minutes avec Python
[Part1] Scraping avec Python → Organisez jusqu'à csv!
Compressez les données python et écrivez sur sqlite
Analyse de données avec python 2
Comment créer des exemples de données CSV avec hypothèse
Comment lire un fichier CSV avec Python 2/3
Grattage de la nourriture avec python et sortie en CSV
[Bases de la science des données] J'ai essayé d'enregistrer de csv à mysql avec python
[Écrire sur la carte avec plotly] Visualisation dynamique avec plotly [python]
Je veux écrire dans un fichier avec Python
Analyse de données avec Python
Résumé de la lecture des données numériques avec python [CSV, NetCDF, Fortran binary]
Convertir les données csv, tsv en une matrice avec MovieLens en utilisant python comme exemple
Comment récupérer des données d'image de Flickr avec Python
J'ai essayé de toucher un fichier CSV avec Python
Note de lecture: Introduction à l'analyse de données avec Python
Comment convertir un fichier JSON en fichier CSV avec Python Pandas
Écrire plusieurs enregistrements dans DynamoDB avec Lambda (Python, JavaScript)
Pour ceux qui veulent écrire Python avec vim
Traiter les données csv avec python (traitement du comptage à l'aide de pandas)
[Python-pptx] Afficher les informations de police PowerPoint au format csv avec python
Exemple de données créées avec python
Connectez-vous à BigQuery avec Python
Extraire les données Twitter avec CSV
Connectez-vous à Wikipedia avec Python
Obtenez des données Youtube avec python
Basculer python vers 2.7 avec des alternatives
Télécharger le fichier csv avec python
Lire des données json avec python
Je veux pouvoir analyser des données avec Python (partie 3)
J'ai essayé de créer diverses "données factices" avec Python faker
Je veux pouvoir analyser des données avec Python (partie 1)
20200329_Introduction à l'analyse de données avec Python 2nd Edition Personal Summary
Je veux pouvoir analyser des données avec Python (partie 4)
Je veux pouvoir analyser des données avec Python (partie 2)
Technique élégante pour coller des données CSV dans Excel avec Python
Code Python pour l'écriture de données CSV dans le stockage d'objets DSX
[Introduction à Python] Combinaison des données Nikkei Average et NY Dow CSV
Obtenez des données supplémentaires vers LDAP avec python (Writer et Reader)
Un script python qui convertit les données Oracle Database en csv
[Introduction à Python] Comment obtenir des données avec la fonction listdir
Comment écrire hors ligne en temps réel Résolution des problèmes E05 avec Python
[Python] Comment FFT des données mp3
Python: comment utiliser async avec
Lien pour commencer avec python
Ravi de vous rencontrer avec python
Essayez d'exploiter Facebook avec Python
Comment gérer les données déséquilibrées
[Python] Obtenez des données économiques avec DataReader