많은 시나리오에서는 JSON 형식의 데이터로 작업해야 하며, 데이터를 추출하고 처리한 다음 나중에 사용할 수 있도록 테이블에 저장하려고 합니다.
이 기사에서는 Lambda 함수를 사용하여 S3 버킷에서 DynamoDB 테이블로 JSON 형식의 데이터를 로드하는 방법에 대해 설명합니다
전제 조건
- S3에 객체를 업로드할 권한이 있는 IAM 사용자
- S3 및 DynamoDB에 대한 권한이 있는 Lambda 실행 역할
아키텍처 및 구성 요소
아래 아키텍처는 우리가 3가지 AWS 서비스를 사용하고 있음을 보여줍니다
- S3 버킷
- 람다 함수
- DynamoDB 테이블
아래의 다과 서비스에 대한 간략한 설명:
- S3 버킷: 확장성, 보안성, 고성능 서비스를 갖춘 객체 스토리지 서비스가 데이터 스토리지 서비스로 사용됩니다
- Lambda 기능: 인프라에 대한 걱정 없이 코드를 실행할 수 있고 설정이 쉬우며 다양한 프로그래밍 언어를 지원하는 서버리스 컴퓨팅 서비스입니다. 우리는 이를 활용하여 코드를 실행하고 로직을 배포할 것입니다.
- DynamoDB: 데이터를 테이블에 저장하는 데 사용되는 서버리스 NoSQL 데이터베이스는 Lambda 함수로 처리된 데이터를 저장하는 데 사용됩니다.
흐름
- 사용자는 PutObject API 뒤에 있는 콘솔이나 CLI를 통해 JSON 파일을 S3 버킷에 업로드합니다
- 객체가 성공적으로 업로드되면 S3 이벤트가 트리거되어 람다 함수를 호출하여 파일을 로드하고 처리합니다
- Lambda가 데이터를 처리하여 DynamoDB 테이블에 로드합니다
구현 단계
위 다이어그램 배포를 위한 단계 및 구성을 살펴보겠습니다
1- 아래 구성으로 Lambda 함수 생성
처음부터 저자
함수 이름: ParserDemo
런타임: Python 3.1x
나머지는 기본값으로 둡니다
Lambda가 생성된 후 아래와 같이 제한 시간 구성 및 실행 역할을 수정해야 합니다.
논리를 수행하기 위해 이 Python 코드를 작성했습니다
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 버킷 생성
버킷 이름: 고유한 이름을 사용하세요
나머지 구성은 기본값으로 둡니다
생성된 S3 버킷을 아래와 같이 람다 함수에 대한 트리거로 추가합니다.
3- 아래 구성으로 DynamoDB에 테이블을 생성합니다
테이블 이름: DemoTable
파티션 키: UserId
테이블 세팅: 맞춤형
용량 모드: 프로비저닝
비용을 절약하려면 낮은 값(1 또는 2개 단위)으로 읽기/쓰기용으로 프로비저닝된 용량 단위를 구성하세요.
이제 설정이 준비되었습니다. S3에 파일을 업로드하여 테스트하면 파일에 업로드한 레코드와 함께 DynamoDB 테이블에 생성된 항목을 찾을 수 있습니다.
Lambda 함수용 CloudWatch Logs
DynamoDB 항목
이 내용이 흥미로웠기를 바라며 의견이 있으면 알려주시기 바랍니다.
참고자료
S3 API
다이나모DB API
AWS 서비스를 위한 boto3 실습
위 내용은 Lambda 함수를 사용하여 So DynamoDB에서 데이터 구문 분석 및 로드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Python List 슬라이싱의 기본 구문은 목록 [start : stop : step]입니다. 1. Start는 첫 번째 요소 인덱스, 2.Stop은 첫 번째 요소 인덱스가 제외되고 3. Step은 요소 사이의 단계 크기를 결정합니다. 슬라이스는 데이터를 추출하는 데 사용될뿐만 아니라 목록을 수정하고 반전시키는 데 사용됩니다.

ListSoutPerformArraysin : 1) DynamicsizingandFrequentInsertions/Deletions, 2) StoringHeterogeneousData 및 3) MemoryEfficiencyForsParsEdata, butMayHavesLightPerformanceCosceperationOperations.

TOCONVERTAPYTHONARRAYTOALIST, USETHELIST () CONSTUCTORORAGENERATERATOREXPRESSION.1) importTheArrayModuleAndCreateAnarray.2) USELIST (ARR) 또는 [XFORXINARR] TOCONVERTITTOALIST.

chooSearRaysOverListSinpyTonforBetTerferformanceAndMemoryEfficiencyInspecificscenarios.1) arrgenumericalDatasets : arraysreducememoryUsage.2) Performance-CriticalOperations : ArraysofferspeedboostsfortaskslikeApenorsearching.3) TypeSenforc

파이썬에서는 루프에 사용하여 열거 및 추적 목록에 대한 이해를 나열 할 수 있습니다. Java에서는 루프를 위해 전통적인 사용 및 루프가 트래버스 어레이를 향해 향상시킬 수 있습니다. 1. Python 목록 트래버스 방법에는 다음이 포함됩니다. 루프, 열거 및 목록 이해력. 2. Java 어레이 트래버스 방법에는 다음이 포함됩니다. 루프 용 전통 및 루프를위한 향상.

이 기사는 버전 3.10에 도입 된 Python의 새로운 "매치"진술에 대해 논의하며, 이는 다른 언어로 된 문장과 동등한 역할을합니다. 코드 가독성을 향상시키고 기존 IF-ELIF-EL보다 성능 이점을 제공합니다.

Python 3.11의 예외 그룹은 여러 예외를 동시에 처리하여 동시 시나리오 및 복잡한 작업에서 오류 관리를 향상시킵니다.

Python의 기능 주석은 유형 확인, 문서 및 IDE 지원에 대한 기능에 메타 데이터를 추가합니다. 코드 가독성, 유지 보수를 향상 시키며 API 개발, 데이터 과학 및 라이브러리 생성에 중요합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

드림위버 CS6
시각적 웹 개발 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기
