코드 생로병사의 비밀
  • 코드 생로병사의 비밀
  • 시작하기
  • Amazon Q Business
    • Amazon Q Business 애플리케이션 설정
    • 데이터 소스 구성
      • 웹 크롤러 데이터 소스 커넥터 활용하기
      • 문서 업로드
      • Amazon S3 데이터 소스 커넥터 구성
    • 관리자 컨트롤 및 가드레일 구성
      • 글로벌 컨트롤 구성하기
      • 주제 수준 컨트롤 구성
  • Amazon Q Developer
    • Amazon Q Developer 애플리케이션 로그인
    • 프롬프트 유형
      • 함수명 프롬프트
      • 한 줄 주석
      • 한 줄 프롬프트
      • 여러 줄 주석
      • 여러 줄 프롬프트
      • 변수명 기준
      • 고려 사항
    • 알고리즘 생성
      • 버블 정렬
      • 합병 정렬
    • 정규표현식
      • 정규 표현식 - 이메일
      • 정규 표현식 - 휴대폰
      • 정규 표현식 - 커스텀 표현식
    • 클래스 생성
      • Folder 클래스
      • User 클래스
      • 객체 지향 프로그래밍(OOP): 다형성 & 상속
    • SQL
      • SQL - Users
      • SQL - E-commerce Schema
    • 가짜 데이터 생성
      • 가짜 데이터 - 주가
      • Faker 패키지를 활용한 가짜 유저
    • AWS 서비스
      • S3 서비스
      • DynamoDB 서비스
      • SQS 서비스
Powered by GitBook
On this page
  • 예시 #1
  • 테이블 생성
  • 예시 #2
  • 레코드 삽입
  • 예시 #3
  • 테이블 업데이트
  • 예시 #4
  • Item 삭제
  1. Amazon Q Developer
  2. AWS 서비스

DynamoDB 서비스

Amazon Q Developer를 사용해 DynamoDB 서비스를 위한 코드를 생성합니다.


예시 #1

테이블 생성

일반적인 프롬프트

Create a function to create a dynamodb table with the following parameters:
- Table name
- PartitionKey Name = 'id'
- Sort key Name = 'name'

Python 프롬프트

VSCode에서 파일을 생성하고 이름을 dynamodb.py로 지정하고 다음 코드를 입력합니다.

"""
Create a function to create a dynamodb table with the following parameters:
- Table name
- PartitionKey Name = 'id'
- Sort key Name = 'name'

"""
Amazon Q Developer 제안
import boto3

def create_table(table_name):
    dynamodb = boto3.resource('dynamodb')
    table = dynamodb.create_table(
        TableName=table_name,
        KeySchema=[
            {
                'AttributeName': 'id',
                'KeyType': 'HASH'
            },
            {
                'AttributeName': 'name',
                'KeyType': 'RANGE'
            }
        ],
        AttributeDefinitions=[
            {
                'AttributeName': 'id',
                'AttributeType': 'N'
            },
            {
                'AttributeName': 'name',
                'AttributeType': 'S'
            }
        ],
        ProvisionedThroughput={
            'ReadCapacityUnits': 10,
            'WriteCapacityUnits': 10
        }
    )
    return table

   

예시 #2

레코드 삽입

일반적인 프롬프트

Given a table_name, id, and a json object with key value pairs
Create a function to insert a record into the DynamoDB table.
The JSON object will have 1 to many key value pairs.
and the json object can be nested and different from the table schema.
create the parameters, attributes names and values from the json object.
if success, return the id.
if failed, return the error.

Python 프롬프트

"""
Given a table_name, id, and a json object with key value pairs
Create a function to insert a record into the DynamoDB table.
The JSON object will have 1 to many key value pairs.
and the json object can be nested and different from the table schema.
create the parameters, attributes names and values from the json object.
if success, return the id.
if failed, return the error.
"""
Amazon Q Developer 제안
import boto3
from botocore.exceptions import ClientError

def create_item(table_name, id, item):
    dynamodb = boto3.resource('dynamodb')
    table = dynamodb.Table(table_name)
    try:
        response = table.put_item(
            Item={
                'id': id,
                **item
            }
        )
    except ClientError as e:
        return e.response['Error']['Message']
    else:
        return response['Attributes']['id']
    

예시 #3

테이블 업데이트

일반적인 프롬프트

Given a table_name, id, and a json object with key value pairs
Create a function to update a record into the DynamoDB table.
The JSON object will have many keys and value pairs.
and the json object can be nested and different from the table schema.
use the json object as list of key value pairs to update the table.
if success, return the id.
if failed, return the error.

Python 프롬프트

"""
Given a table_name, id, and a json object with key value pairs
Create a function to update a record into the DynamoDB table.
The JSON object will have many keys and value pairs.
and the json object can be nested and different from the table schema.
use the json object as list of key value pairs to update the table.
if success, return the id.
if failed, return the error.
"""
Amazon Q Developer 제안
import boto3
from botocore.exceptions import ClientError

def update_item(table_name, id, item):
    dynamodb = boto3.resource('dynamodb')
    table = dynamodb.Table(table_name)
    try:
        response = table.update_item(
            Key={
                'id': id
            },
            UpdateExpression='SET #key = :value',
            ExpressionAttributeValues={
                ':value': item
            },
            ExpressionAttributeNames={
                '#key': 'key'
            }
        )
    except ClientError as e:
        return e.response['Error']['Message']
    else:
        return response['Attributes']['id']

예시 #4

Item 삭제

일반적인 프롬프트

Given a table_name, id, and a json object with key value pairs
Create a function to delete a record into the DynamoDB table.

if success, return the id.
if failed, return the error.

Python 프롬프트

"""
Given a table_name, id, and a json object with key value pairs
Create a function to delete a record into the DynamoDB table.

if success, return the id.
if failed, return the error.
"""
Amazon Q Developer 제안
import boto3
from botocore.exceptions import ClientError

def delete_item(table_name, id):
    dynamodb = boto3.resource('dynamodb')
    table = dynamodb.Table(table_name)
    try:
        response = table.delete_item(
            Key={
                'id': id
            }
        )
    except ClientError as e:
        return e.response['Error']['Message']
    else:
        return response['Attributes']['id']

   
PreviousS3 서비스NextSQS 서비스

Last updated 11 months ago