


In vielen Szenarien müssen Sie mit Daten arbeiten, die als JSON formatiert sind, und Sie möchten die Daten extrahieren und verarbeiten und sie dann zur späteren Verwendung in einer Tabelle speichern
In diesem Artikel besprechen wir das Laden von JSON-formatierten Daten aus dem S3-Bucket in die DynamoDB-Tabelle mithilfe der Lambda-Funktion
Voraussetzungen
- IAM-Benutzer mit Berechtigungen zum Hochladen von Objekten in S3
- Lambda-Ausführungsrolle mit Berechtigungen für S3 und DynamoDB
Architektur & Komponenten
Die Architektur unten zeigt, dass wir drei AWS-Dienste verwenden
- S3-Eimer
- Lambda-Funktion
- DynamoDB-Tabelle
Eine kurze Beschreibung der Leistungen unten als Erfrischung:
- S3 Bucket: Objektspeicherdienst mit Skalierbarkeit, Sicherheit und Hochleistungsdienst wird als unser Speicherdienst für die Daten verwendet
- Lambda-Funktion: Serverloser Rechendienst, der es Ihnen ermöglicht, Ihren Code auszuführen, ohne sich Gedanken über die Infrastruktur machen zu müssen, einfach einzurichten und viele Programmiersprachen zu unterstützen. Wir werden ihn nutzen, um unseren Code auszuführen und unsere Logik bereitzustellen.
- DynamoDB: Serverlose NoSQL-Datenbank, die zum Speichern unserer Daten in Tabellen verwendet wird. Wir werden sie zum Speichern unserer verarbeiteten Daten durch die Lambda-Funktion verwenden
Fließen
- Der Benutzer lädt die JSON-Datei über die Konsole oder die CLI in den S3-Bucket hoch, was hinter den Kulissen der PutObject-API erfolgt
- Objekt wurde erfolgreich hochgeladen, S3-Ereignis wird ausgelöst, um die Lambda-Funktion aufzurufen, um die Datei zu laden und zu verarbeiten
- Lambda verarbeitet die Daten und lädt sie in die DynamoDB-Tabelle
Implementierungsschritte
Wir werden die Schritte und Konfigurationen für die Bereitstellung des obigen Diagramms durchgehen
1- Erstellen Sie eine Lambda-Funktion mit der folgenden Konfiguration
Autor von Grund auf
Funktionsname: ParserDemo
Laufzeit: Python 3.1x
Belassen Sie den Rest als Standard
Nachdem Lambda erstellt wurde, müssen Sie die Timeout-Konfiguration und die Ausführungsrolle wie folgt ändern:
Ich habe diesen Python-Code geschrieben, um die Logik auszuführen
import json import boto3 s3_client = boto3.client('s3') dynamodb = boto3.resource('dynamodb') def lambda_handler(event, context): bucket_name = event['Records'][0]['s3']['bucket']['name'] # Getting the bucket name from the event triggered by S3 object_key = event['Records'][0]['s3']['object']['key'] # Getting the Key of the item when the data is uploaded to S3 print(f"Bucket: {bucket_name}, Key: {object_key}") response = s3_client.get_object( Bucket=bucket_name, Key=object_key ) # We will convert the streamed data into bytes json_data = response['Body'].read() string_formatted = json_data.decode('UTF-8') #Converting data into string dict_format_data = json.loads(string_formatted) #Converting Data into Dictionary # Inserting Data Into DynamoDB table = dynamodb.Table('DemoTable') if isinstance(dict_format_data, list): #check if the file contains single record for record in dict_format_data: table.put_item(Item=record) elif isinstance(dict_format_data, dict): # check if the file contains multiple records table.put_item(Item=data) else: raise ValueError("Not Supported Format") # Raise error if nothing matched
2- S3-Bucket erstellen
BucketName: verwenden Sie einen eindeutigen Namen
Belassen Sie den Rest der Konfiguration als Standard
Fügen Sie den erstellten S3-Bucket wie folgt als Auslöser zur Lambda-Funktion hinzu:
3- Erstellen Sie eine Tabelle in DynamoDB mit der folgenden Konfiguration
Tabellenname: DemoTable
Partitionsschlüssel: UserId
Tabelleneinstellungen: Angepasst
Kapazitätsmodus: Bereitgestellt
Um Kosten zu sparen, konfigurieren Sie die bereitgestellten Kapazitätseinheiten für Lese-/Schreibvorgänge mit einem niedrigen Wert (1 oder 2 Einheiten)
Jetzt ist das Setup fertig. Sie können es testen, indem Sie eine Datei auf den S3 hochladen. Anschließend finden Sie in der DynamoDB-Tabelle erstellte Elemente mit den Datensätzen, die Sie in die Datei hochgeladen haben.
CloudWatch Logs für Lambda-Funktion
DynamoDB-Elemente
Ich hoffe, Sie fanden das interessant und lassen Sie mich bitte wissen, wenn Sie Kommentare haben.
Referenzen
S3-API
DynamoDB-API
boto3-Praxis für AWS-Dienste
Das obige ist der detaillierte Inhalt vonAnalysieren und Laden von Daten aus So DynamoDB mit der Lambda-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Die grundlegende Syntax für die Python -Liste ist die Liste [START: STOP: STEP]. 1.Start ist der erste Elementindex, 2.Stop ist der erste Elementindex, und 3.Step bestimmt die Schrittgröße zwischen den Elementen. Scheiben werden nicht nur zum Extrahieren von Daten verwendet, sondern auch zum Ändern und Umkehrlisten.

ListSoutPer -CharakterArraysin: 1) Dynamics und Dynamics und 3), 2) StoringHeterogenData und 3) MemoryefficiencyForSparsedata, ButmayHavesLightPerformanceCostIncustonTectorationOperationen.

Toconvertapythonarraytoalist, Usethelist () constructororageneratorexpression.1) ImportThearrayModuleandCreateanarray.2) Uselist (arr) oder [xForxinarr] Toconvertittoalist in Betracht, überlegt Performance undMoryefficiencyForlargedatasets.

ChoosearraySoverlistsinpythonforbetterperformanceAndMemoryefficienceInspezifizarios.1) largenumericalDatasets: ArraysReDucemoryusage.2) leistungskritische Operationen: ArraysOfferspeedboostsForsforsarching.3) TypeSafety: ArraysStety

In Python können Sie Verständnissen für Schleifen, Aufzählungen und Listen für durchqueren Listen verwenden. In Java können Sie traditionelle für Schleifen verwenden und für Schleifen zu durchqueren Arrays erweitert. 1. Python List Traversal Methods gehören: für Schleifen, Aufzählung und Listenverständnis. 2. Java Array Traversal -Methoden umfassen: traditionell für Schleife und erweitert für die Schleife.

In dem Artikel wird die in Version 3.10 eingeführte "Match" -serklärung von Python erörtert, die als Äquivalent zum Wechseln von Aussagen in anderen Sprachen dient. Es verbessert die Code-Lesbarkeit und bietet Leistungsvorteile gegenüber herkömmlichen IF-ELIF-EL

Ausnahmegruppen in Python 3.11 ermöglichen die gleichzeitige Behandlung mehrerer Ausnahmen, wodurch die Fehlermanagement in gleichzeitigen Szenarien und komplexen Vorgängen verbessert wird.

Funktionsanmerkungen in Python Fügen Sie Metadaten zu Funktionen für Typprüfungen, Dokumentation und IDE -Unterstützung hinzu. Sie verbessern die Lesbarkeit, die Wartung der Code und die API -Entwicklung, die Datenwissenschaft und die Erstellung der Bibliothek von entscheidender Bedeutung.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.
