사용 라이브러리
<aside>
1. import datetime
=> 현재 날짜 및 시간을 가져오고 형식 변환
사용된 함수/메서드
-----------------
dateimte.datetime.today() - 현재 날짜 및 시간 가져옴
strftime("%Y-%m-01") - 날짜를 문자열로 변환
-------------------------------------------------------------------------------
2. import os
=> 환경 변수 값 가져옴
-------------------------------------------------------------------------------
3. import json
=> json데이터를 인코딩, 디코딩
사용된 함수/메서드
-----------------
json.loads(source) - json 문자열 -> python dictionary 변환
-------------------------------------------------------------------------------
4. urllib.request
=> HTTP 요청을 전송 및 응답 받음
사용된 함수/메서드
-----------------
urllib.request.urlopen(url) - URL에 GET 요청 전송
urllib.request.Request(TELEGRAM_URL, data=data) - Post 요청 생성
urllib.request.urlopen(req) - POST 요청 전송 및 응답 받기
-------------------------------------------------------------------------------
5. import urllib.parse as parse
=> URL에 포함될 데이터를 인코딩
사용된 함수/메서드
-----------------
parse.urlencode({...}).encode() - dictionary를 URL-encoded 문자열로 변환 후, UTF-8 인코딩
-------------------------------------------------------------------------------
6. import boto3
=> AWS 서비스와 상호작용
사용된 함수/메서드
-----------------
boto3.client("ce") - AWS Cost Explorer API 클라이언트 생성
client.get_cost_and_usage(...) - AWS 비용 데이터 갖고오기
-------------------------------------------------------------------------------
7. from dateutil import relativedelta
=> 날짜 간격을 쉽게 계산
사용된 함수/메서드
-----------------
relativedelta.relativedelta(months=1) - 한 달을 더하는 연산
</aside>
환경 변수 설정
<aside>
API_KEY = os.environ["API_KEY"]
TOKEN = os.environ["TOKEN"]
GROUP_ID = os.environ["GROUP_ID"]
</aside>
Telegram API URL
<aside>
TELEGRAM_URL = "<https://api.telegram.org/bot{}/sendMessage>".format(TOKEN)
환율 정보
<aside>
def get_exchange_rate(api_key):
url = f"<https://v6.exchangerate-api.com/v6/{api_key}/pair/USD/KRW>"
with urllib.request.urlopen(url) as response:
source = response.read().decode("utf-8")
data = json.loads(source)
exchange_rate = data["conversion_rate"]
return exchange_rate
AWS 비용 조회