Schreiben Sie CSV-Daten mit AWS-Lambda + Python in AWS-S3

Schreiben Sie CSV-Daten mit AWS-Lambda + Python in AWS-S3

Einführung

`Dies ist ein Artikel über die Mac-Umgebung, aber die Vorgehensweise ist für die Windows-Umgebung dieselbe. Bitte lesen und probieren Sie den umweltabhängigen Teil. ``

Zweck

Nachdem Sie diesen Artikel bis zum Ende gelesen haben, können Sie:

No. Überblick Stichwort
1 Codierung Python, boto3
2 Lambda-Einstellungen Lambda

Ausführungsumgebung

Umgebung Ver.
macOS Catalina 10.15.3
Python 3.7.3
boto3 1.11.17

Quellcode

Ich denke, dass Sie Ihr Verständnis vertiefen können, indem Sie den Implementierungsinhalten und dem Quellcode tatsächlich folgen. Bitte benutzen Sie es auf jeden Fall.

GitHub

Zum Thema passende Artikel

Merkmale von AWS-Lambda

Dieser Service ist ein Pay-as-you-go-System. Bitte beachten Sie.

Gesamtdurchfluss

  1. Schreiben Sie Python-Code
  2. Erstellen Sie eine Lambda-Funktion
  3. Legen Sie Umgebungsvariablen fest

1. Schreiben Sie Python-Code

Codierung

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. Erstellen Sie eine Lambda-Funktion

Führen Sie das WEB-Scraping regelmäßig mit AWS-Lambda + Python + Cron aus (https://qiita.com/nsuhara/items/0d36600511fc162827f6) und führen Sie bis zu "zip upload" durch

3. Legen Sie Umgebungsvariablen fest

Umgebungsvariable

  1. Stellen Sie unter "Bearbeiten" im Abschnitt "Umgebungsvariablen" ein
Schlüssel Wert
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

`{} ist für jede Umgebung unterschiedlich. ``

Recommended Posts

Schreiben Sie CSV-Daten mit AWS-Lambda + Python in AWS-S3
Schreiben Sie mit Python in csv
[Python] Mit Python in eine CSV-Datei schreiben
[Python] Ein Memo zum vertikalen Schreiben von CSV mit Pandas
Ausgabe in eine CSV-Datei mit Python
Konvertieren Sie Excel-Daten mit Python in JSON
[Teil1] Scraping mit Python → Organisieren Sie bis zu CSV!
Komprimieren Sie Python-Daten und schreiben Sie in SQLite
Datenanalyse mit Python 2
Erstellen von CSV-Beispieldaten mit Hypothese
Lesen einer CSV-Datei mit Python 2/3
Kratzen Sie das Essen mit Python und geben Sie es an CSV aus
[Data Science-Grundlagen] Ich habe versucht, mit Python von CSV auf MySQL zu speichern
[Mit Plotly auf die Karte schreiben] Dynamische Visualisierung mit Plotly [Python]
Ich möchte mit Python in eine Datei schreiben
Datenanalyse mit Python
Zusammenfassung zum Lesen numerischer Daten mit Python [CSV, NetCDF, Fortran Binary]
Konvertieren Sie CSV- und TsV-Daten in eine Matrix mit Python als Beispiel für MovieLens
So kratzen Sie Bilddaten von Flickr mit Python
Ich habe versucht, eine CSV-Datei mit Python zu berühren
Lesehinweis: Einführung in die Datenanalyse mit Python
So konvertieren Sie eine JSON-Datei mit Python Pandas in eine CSV-Datei
Schreiben Sie mit Lambda (Python, JavaScript) mehrere Datensätze in DynamoDB.
Für diejenigen, die Python mit vim schreiben möchten
Verarbeiten Sie CSV-Daten mit Python (Zählverarbeitung mit Pandas)
[Python-pptx] Gibt PowerPoint-Schriftinformationen mit Python in CSV aus
Mit Python erstellte Beispieldaten
Stellen Sie mit Python eine Verbindung zu BigQuery her
Extrahieren Sie Twitter-Daten mit CSV
Stellen Sie mit Python eine Verbindung zu Wikipedia her
Holen Sie sich Youtube-Daten mit Python
Schalten Sie Python mit Alternativen auf 2.7 um
Laden Sie die CSV-Datei mit Python herunter
Lesen von JSON-Daten mit Python
Ich möchte Daten mit Python analysieren können (Teil 3)
Ich habe versucht, mit Python faker verschiedene "Dummy-Daten" zu erstellen
Ich möchte Daten mit Python analysieren können (Teil 1)
20200329_Einführung in die Datenanalyse mit Python 2nd Edition Personal Summary
Ich möchte Daten mit Python analysieren können (Teil 4)
Ich möchte Daten mit Python analysieren können (Teil 2)
Stilvolle Technik zum Einfügen von CSV-Daten in Excel mit Python
Python-Code zum Schreiben von CSV-Daten in den DSX-Objektspeicher
[Einführung in Python] Kombinieren Sie Nikkei-Durchschnitts- und NY Dow-CSV-Daten
Holen Sie sich zusätzliche Daten zu LDAP mit Python (Writer und Reader)
Ein Python-Skript, das Oracle-Datenbankdaten in CSV konvertiert
[Einführung in Python] So erhalten Sie Daten mit der Funktion listdir
So schreiben Sie offline in Echtzeit Lösen von E05-Problemen mit Python
[Python] Wie man MP3-Daten fFT
Python: So verwenden Sie Async mit
Link, um mit Python zu beginnen
Schön dich mit Python zu treffen
Versuchen Sie, Facebook mit Python zu betreiben
Umgang mit unausgeglichenen Daten
[Python] Mit DataReader Wirtschaftsdaten abrufen