728x90
레퍼런스 : https://hello-bryan.tistory.com/453
컨테이너 준비
# app.py
import json
import requests
def handler(event, context):
url = 'https://jsonplaceholder.typicode.com/albums'
response = requests.get(url)
status_code = response.status_code
body = response.reason
if status_code == 200:
album_list = json.loads(response.content)
body = f'album count = {len(album_list)}'
if 'album_id' in event:
album = next(filter(lambda x: x['id'] == event['album_id'], album_list), None)
body = album if album else f'not found album id : {event["album_id"]}'
return {
'statusCode': status_code,
'body': json.dumps(body)
}
#Dockerfile
FROM public.ecr.aws/lambda/python:3.8
# Copy function code
COPY app.py ${LAMBDA_TASK_ROOT}
# Install the function's dependencies using file requirements.txt
# from your project folder.
COPY requirements.txt .
RUN pip3 install -r requirements.txt --target "${LAMBDA_TASK_ROOT}"
# Set the CMD to your handler (could also be done as a parameter override outside of the Dockerfile)
CMD [ "app.handler" ]
# requirements.txt
requests==2.27.1
컨테이너 업로드
리파지토리 생성 완료
<푸시 명령 보기> 버튼 클릭
명령어 4개가 나오는데 이를 터미널에서 실행해주면 리파지토리가 자동으로 업로드 된다. 단, Docker은 켜둬야 한다. 왜냐하면 도커 빌드 명령어를 사용하기 때문이다.
컨테이너 이미지로 함수 만들기
Lambda 서비스 메뉴에서 '함수 생성' 버튼 클릭
[컨테이터 이미지] 옵션 선택 후 [이미지 찾아보기] 버튼을 눌러 우리가 업로드 했던 리파지토리의 이미지를 올리고 함수를 생성해준다. 아키텍처는 맥북 m1에서 도커이미지를 생성했기 때문에 arm64를 선택해주었다. 그렇지 않다면 x86_64를 선택해주면 된다.
위와 같이 JSON을 지정해주고 [테스트] 버튼을 눌러본다.
테스트가 정상적으로 진행되었다.
728x90
'Research > AWS' 카테고리의 다른 글
Cloud computing (0) | 2023.04.14 |
---|---|
AWS Lambda_REST API Trigger로 함수 호출하기 (0) | 2023.04.12 |
AWS Lambda_HTTP API Trigger로 함수 호출하기 (0) | 2023.04.12 |
AWS Lambda_serverless로 간단한 lambda 함수 생성하기 (0) | 2023.04.10 |
AWS_ELB(Elastic Load Balancer) (0) | 2023.03.10 |
댓글