Lambda에서는 함수에서 처리하는 모든 요청에 대한 로그를 CloudWatch > 로그 그룹을 통해 CloudWatch에 저장할 수 있다.
Lambda 함수가 CloudWatch > 로그 그룹에 로그를 업로드하려면, Lambda에서 제공하는 AWSLambdaBasicExecutionRole AWS 관리형 정책을 역할에 연결하고 이 해당 역할을 Lambda에게 부여해야 한다.
- AWS EventBridge를 사용하여 매일 자정에 람다 함수를 트리거
➡️ 실행 세부 정보를 AWS CloudWatch에 기록
import json
import requests
from datetime import datetime, timedelta
def lambda_handler(event, context):
# 현재 시간으로부터 28일 뒤의 날짜를 계산
business_date = (datetime.now() + timedelta(days=28)).strftime("%Y-%m-%d")
API_ENDPOINT_URL = "http://api.reservation.genesis-airport.com/v2/admin/shop/available"
hours = list(range(6, 23))
for hour in hours:
business_day_with_time = f"{business_date} {hour:02d}:00:00"
data = {
"shopName": "블루핸즈 인천공항점",
"businessDay": business_day_with_time
}
try:
response = requests.post(API_ENDPOINT_URL, json=data)
response.raise_for_status() # 요청이 실패한 경우 오류 발생
response_data = response.json()
print(f"API Response for {hour:02d}:00: {response_data}")
except requests.exceptions.HTTPError as err:
print(f"HTTP error occurred: {err}") #requests module 에러
except json.JSONDecodeError as err:
print(f"Error decoding JSON: {err}") #Json 디코딩 에러
except Exception as err:
print(f"An error occurred: {err}") # 그 외 에러
return {
'statusCode': 200,
'body': json.dumps("Requests sent successfully.")
}