Laden Sie AWS-RDS / PostgreSQL-Tabellen mit AWS-Lambda + Python

Laden Sie AWS-RDS / PostgreSQL-Tabellen mit AWS-Lambda + Python

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, psycopg2
2 Lambda-Einstellungen Lambda

Ausführungsumgebung

Umgebung Ver.
macOS Catalina 10.15.3
Python 3.7.3
psycopg2 2.8.4

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
  4. Grundeinstellungen vornehmen
  5. Richten Sie VPC ein

1. Schreiben Sie Python-Code

Codierung

app/lambda_function.py


"""app/lambda_function.py
"""

import os
import sys

import psycopg2


class Database():
    """Database
    """
    class Parameter():
        """Parameter
        """

        def __init__(self, host, port, dbname, table, user, password, query):
            self.host = host
            self.port = port
            self.dbname = dbname
            self.table = table
            self.user = user
            self.password = password
            self.query = query

    def __init__(self, param):
        self.db = param
        self.header = tuple()
        self.records = list()
        self.counts = int()

    def _connection(self):
        """_connection
        """
        print('connect to db: {}/{}'.format(self.db.host, self.db.dbname))
        return psycopg2.connect(
            host=self.db.host,
            port=self.db.port,
            dbname=self.db.dbname,
            user=self.db.user,
            password=self.db.password
        )

    def query(self):
        """query
        """
        with self._connection() as conn:
            with conn.cursor() as cursor:
                try:
                    cursor.execute(self.db.query)
                    self.header = cursor.description
                    self.records = cursor.fetchall()
                    self.counts = len(self.records)
                except psycopg2.Error as e:
                    print(e)
                    sys.exit()
        return True


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

    param = Database.Parameter(
        host=os.getenv('DB_HOST', ''),
        port=os.getenv('DB_PORT', ''),
        dbname=os.getenv('DB_DBNAME', ''),
        table=os.getenv('DB_TABLE', ''),
        user=os.getenv('DB_USER', ''),
        password=os.getenv('DB_PASSWORD', ''),
        query=os.getenv('DB_QUERY', '')
    )

    db = Database(param=param)
    db.query()

    return {
        'status_code': 200,
        'records': str(db.records),
        'counts': db.counts
    }


if __name__ == '__main__':
    print(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
DB_HOST {host}
DB_PORT {port}
DB_DBNAME {dbname}
DB_TABLE {table}
DB_USER {user}
DB_PASSWORD {password}
DB_QUERY {query}

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

4. Grundeinstellungen vornehmen

Grundlegende Konfiguration

  1. Stellen Sie unter "Bearbeiten" im Abschnitt "Grundeinstellungen" ein
  2. Das Timeout kann auf "15 Minuten 0 Sekunden" eingestellt werden
  3. Der Speicher kann auf 3008 MB eingestellt werden

5. Richten Sie VPC ein

VPC

  1. Stellen Sie "Bearbeiten" im Abschnitt "VPC" ein
  2. Stellen Sie "VPC", "Subnetz", "Sicherheitsgruppe" ein

Muss mit den RDS-Einstellungen übereinstimmen

Recommended Posts

Laden Sie AWS-RDS / PostgreSQL-Tabellen mit AWS-Lambda + Python
[Python] Verbinde zwei Tabellen mit Pandas
Laden Sie das GIF-Bild mit Python + OpenCV
Verwenden Sie PostgreSQL mit Lambda (Python + psycopg2)
[Hinweis] Mit Python Daten von PostgreSQL abrufen
Speichern / Laden Sie die In-Memory-Datenbank mit pythons sqlite3
FizzBuzz in Python3
Scraping mit Python
Statistik mit Python
Scraping mit Python
Python mit Go
In Python integrieren
AES256 mit Python
Getestet mit Python
Python beginnt mit ()
mit Syntax (Python)
Bingo mit Python
Schreiben Sie CSV-Daten mit AWS-Lambda + Python in AWS-S3
Zundokokiyoshi mit Python
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
[Linux] [Python] [Pandas] Laden Sie die Microsoft Access-Datenbank (* .mdb) mit Pandas
Serielle Kommunikation mit Python
Zip, entpacken mit Python
Primzahlbeurteilung mit Python
Python mit Eclipse + PyDev.
Socket-Kommunikation mit Python
Datenanalyse mit Python 2
Scraping in Python (Vorbereitung)
Versuchen Sie es mit Python.
Sequentielle Suche mit Python
"Objektorientiert" mit Python gelernt
Führen Sie Python mit VBA aus
Löse AtCoder 167 mit Python
Serielle Kommunikation mit Python
[Python] Verwenden Sie JSON mit Python
Lerne Python mit ChemTHEATER
Führen Sie prepDE.py mit python3 aus
Tweets mit Python sammeln
3. 3. KI-Programmierung mit Python
Kernel-Methode mit Python
Nicht blockierend mit Python + uWSGI
Scraping mit Python + PhantomJS
Tweets mit Python posten
Fahren Sie WebDriver mit Python
Verwenden Sie Mecab mit Python 3
[Python] Mit CGIHTTPServer umleiten
Sprachanalyse mit Python
Denken Sie an Yaml mit Python
Kinesis mit Python betreiben
Erste Schritte mit Python
Zundko Getter mit Python
Behandle Excel mit Python
Ohmsches Gesetz mit Python
Primzahlbeurteilung mit Python
Führen Sie Blender mit Python aus