![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FclZjyf%2Fbtr9NnzcTWl%2FOxNeXwi7Bm3vrL22nVKyYK%2Fimg.png)
코드 수정이 많이 없을줄 알았는데 하다보니 계속 건드리게 되서 pipeline 을 만들어보려고 한다. Pipeline - EC2 2023.04.12 1. Jenkins Container -TradeServer - Ansible 새로 젠킨스 컨테이너를 띄우고 ec2 로 동작하는 TradeServer(Prod) 를 Ansible 로 연결해줄꺼다 Jenkins container docker run -itd --name -p 8080:8080 -p 50000:50000 -v /jenkins:/var/jenkins_home -u root jenkins/jenkins:latest 필요한 툴 설치 #ansible apt install python3-pip pip install ansible #docker curl -..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdkYykh%2Fbtr8vsO8c0s%2FykXXkGgKkf6JQJLkQNWHCk%2Fimg.png)
ethereum_autotrade.py 를 nohup 으로 실행할때 발생하는 로그들을 flush 모듈을 사용해 바로바로 output.log 에 기록하고 그날 프로그램이 종료할때 s3 버킷에 저장하도록 해보자 S3 버킷 생성 ACL 비활성화 모든 퍼블릭 액세스 차단 버전 관리 비활성화 테스트 import os import boto3 def send_logs_to_s3(): bucket_name="logs-ethereum-autotrade" session = boto3.Session(profile_name='default') s3=session.client('s3') f=open("test.log", 'rb') s3.upload_fileobj(f, bucket_name, "test.log") send_log..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrBjPr%2Fbtr75tf2rxd%2FqgopLrAekHUmfuVaqGi9K1%2Fimg.png)
EC2 에서 동작하는 python 코드를 수정 - 만약 보유 이더리움이 있다면 매일 오전 8시 55분에 매각하고 프로그램을 종료하도록 구성 lambda function 을 새로 생성 - dynamoDB 에서 값을 얻어와 매일 오전 9시에 python 스크립트를 백앤드로 동작하도록 하는 shell script 실행 명령을 전달하도록 구성 python 코드 수정 3개의 python 파일로 나눴음 ethereum_autotrade.py import pyupbit import aws_defs as m_aws import upbit_defs as m_upbit def main(): try : upbit_access_key, upbit_secret_key = m_aws.get_parameter_fromSSM() b..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJ7OaD%2Fbtr7Hhasygr%2FgYLWw87xsB33H3Ts62k0lk%2Fimg.png)
람다 함수를 빌드하는 컨테이너 이미지 안의 python 코드에 dynamoDB 를 수정하는 코드와 x-ray-sdk 를 추가 람다 코드 수정 - dynamoDB table 업데이트 + X-Ray-SDK python-boto3 lambda-bestk/lambda/app.py import pyupbit import numpy as np import boto3 def get_ror(k=0.5): df = pyupbit.get_ohlcv("KRW-BTC", count=7) df['range'] = (df['high'] - df['low']) * k df['target'] = df['open'] + df['range'].shift(1) df['ror'] = np.where(df['high'] > df['targe..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnjhG8%2Fbtr7gyYbZ3c%2FNEBLFgxf6Vq950HJj4Dl5k%2Fimg.png)
timebase cloudwatch eventbridge 를 lambda function 에 연결 매시간 정각 - endprice 8시 50분 - bestk 8시 55분 매각, 프로그램 종료 9시 프로그램 시작 cloudwatch 로는 매일 오전 8시 55분에 발생할 이벤트와 매시간 정각 실행될 이벤트를 생성할 예정 일정 그룹 생성 Event for lambda-bestk KST 와 UTC 를 변환해서 사용해야 함 https://savvytime.com/converter/utc-to-kst UTC to KST Converter - Savvy Time Universal Time Coordinated Universal Time Coordinated is 9 hours behind Korea Standard ..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcdxr22%2Fbtr7hxxlNPm%2FLKaYJFIh2GVXEBFhBAZM4K%2Fimg.png)
프로젝트에서 사용할 레퍼런스이다. 이미 존재하는 항목의 속성 값만 수정해줄꺼다 python 최신 런타임으로 demo function 을 만들어줬다 테이블도 대충 만들어주고 항목을 생성해줬다 chatGPT 에게 물어봤다 import boto3 def lambda_handler(event, context): # create a DynamoDB client dynamodb = boto3.client('dynamodb') # define the table name and the key of the item to be updated table_name = 'your-table-name' item_key = {'id': {'S': 'your-item-key'}} # define the attribute to be ..