Chalice는 Python으로 서버리스 앱을 작성하기 위한 프레임워크입니다. 이를 통해 AWS Lambda를 사용하는 애플리케이션을 빠르게 생성하고 배포할 수 있습니다. 다음을 제공합니다:
Rest API를 만들 수 있습니다.
from chalice import Chalice
app = Chalice ( app_name = "helloworld" )
@ app . route ( "/" )
def index ():
return { "hello" : "world" }
주기적으로 실행되는 작업:
from chalice import Chalice , Rate
app = Chalice ( app_name = "helloworld" )
# Automatically runs every 5 minutes
@ app . schedule ( Rate ( 5 , unit = Rate . MINUTES ))
def periodic_task ( event ):
return { "hello" : "world" }
람다 함수를 S3 이벤트에 연결할 수 있습니다.
from chalice import Chalice
app = Chalice ( app_name = "helloworld" )
# Whenever an object is uploaded to 'mybucket'
# this lambda function will be invoked.
@ app . on_s3_event ( bucket = 'mybucket' )
def handler ( event ):
print ( "Object uploaded for bucket: %s, key: %s"
% ( event . bucket , event . key ))
SQS 대기열뿐만 아니라:
from chalice import Chalice
app = Chalice ( app_name = "helloworld" )
# Invoke this lambda function whenever a message
# is sent to the ``my-queue-name`` SQS queue.
@ app . on_sqs_message ( queue = 'my-queue-name' )
def handler ( event ):
for record in event :
print ( "Message body: %s" % record . body )
그리고 다른 여러 AWS 리소스도 있습니다.
코드를 작성한 후 chalice deploy
실행하면 Chalice가 앱 배포를 처리합니다.
$ 성배 배포 ... https://엔드포인트/dev $ 컬 https://endpoint/api {"안녕하세요": "세계"}
30초 이내에 설치 및 실행됩니다. 이 프로젝트를 시도해보고 여기 Github에서 피드백을 공유해 주세요.
문서는 여기에서 확인할 수 있습니다.
이 튜토리얼에서는 chalice
명령줄 유틸리티를 사용하여 기본 REST API를 생성하고 배포합니다. 이 빠른 시작에서는 Python 3.7을 사용하지만 AWS Chalice는 Python 3.7부터 Python 3.12까지를 포함하여 AWS Lambda에서 지원하는 모든 버전의 Python을 지원합니다.
Python 다운로드 페이지에서 최신 버전의 Python을 찾을 수 있습니다.
Chalice를 설치하기 위해 먼저 python3.7에서 가상 환경을 만들고 활성화합니다.
$ python3 --버전 파이썬 3.7.3 $ python3 -m venv venv37 $. venv37/bin/활성화
다음으로 pip
사용하여 Chalice를 설치하겠습니다.
$ python3 -m pip 설치 성배
다음을 실행하여 성배가 설치되었는지 확인할 수 있습니다.
$ 성배 --도움말 사용법: 성배 [OPTIONS] 명령 [ARGS]... ...
애플리케이션을 배포하기 전에 자격 증명이 구성되어 있는지 확인하세요. 이전에 boto3(Python용 AWS SDK) 또는 AWS CLI를 실행하도록 머신을 구성한 경우 이 섹션을 건너뛸 수 있습니다.
AWS에 대한 자격 증명을 처음 구성하는 경우 다음 단계에 따라 빠르게 시작할 수 있습니다.
$ mkdir ~/.aws $ 고양이 >> ~/.aws/config [기본] aws_access_key_id=YOUR_ACCESS_KEY_HERE aws_secret_access_key=YOUR_SECRET_ACCESS_KEY 지역=YOUR_REGION(예: us-west-2, us-west-1 등)
자격 증명 구성을 위해 지원되는 모든 방법에 대한 자세한 내용을 보려면 boto3 문서를 참조하세요.
다음으로 할 일은 chalice
명령을 사용하여 새 프로젝트를 만드는 것입니다.
$ 성배 새 프로젝트 helloworld
그러면 helloworld
디렉터리가 생성됩니다. 이 디렉토리에 CD를 넣으십시오. 다음과 같은 여러 파일이 생성된 것을 볼 수 있습니다.
$ CD 헬로월드 $ ls -la drwxr-xr-x .chalice -rw-r--r-- app.py -rw-r--r-- 요구사항.txt
지금은 .chalice
디렉터리를 무시할 수 있습니다. 우리가 집중할 두 가지 주요 파일은 app.py
및 requirements.txt
입니다.
app.py
파일을 살펴보겠습니다.
from chalice import Chalice
app = Chalice ( app_name = 'helloworld' )
@ app . route ( '/' )
def index ():
return { 'hello' : 'world' }
new-project
명령은 호출 시 JSON 본문 {"hello": "world"}
를 반환하는 단일 보기 /
정의하는 샘플 앱을 생성했습니다.
이 앱을 배포해 보겠습니다. helloworld
디렉터리에 있는지 확인하고 chalice deploy
실행하세요.
$ 성배 배포 배포 패키지를 만드는 중입니다. IAM 역할 생성: helloworld-dev 람다 함수 생성: helloworld-dev 나머지 API 만들기 배포된 리소스: - Lambda ARN: arn:aws:lambda:us-west-2:12345:function:helloworld-dev - 나머지 API URL: https://abcd.execute-api.us-west-2.amazonaws.com/api/
이제 API Gateway와 Lambda를 사용하여 API를 실행하고 있습니다.
$ 컬 https://qxea58oupc.execute-api.us-west-2.amazonaws.com/api/ {"안녕하세요": "세계"}
index()
함수에서 반환된 사전을 변경해 보세요. 그런 다음 chalice deploy
실행하여 변경 사항을 다시 배포할 수 있습니다.
이제 chalice
사용하여 첫 번째 앱을 만들었습니다. app.py
파일을 수정하고 chalice deploy
다시 실행하여 변경 사항을 재배포할 수 있습니다.
이 시점에서 취할 수 있는 몇 가지 다음 단계가 있습니다.
Chalice 실험을 마치고 정리하고 싶다면 chalice delete
명령을 사용할 수 있습니다. 그러면 Chalice는 chalice deploy
명령을 실행할 때 생성된 모든 리소스를 삭제합니다.
$ 성배 삭제 Rest API 삭제: abcd4kwyl4 aws:arn:lambda:region:123456789:helloworld-dev 함수 삭제 중 IAM 역할 삭제 helloworld-dev
우리는 또한 당신의 의견을 듣고 싶습니다. https://github.com/aws/chalice/issues에서 확인하고 싶은 추가 기능에 대한 Github 이슈를 생성하세요. Gitter(https://gitter.im/awslabs/chalice)에서 우리와 채팅하실 수도 있습니다.