Serverless Framework 설치에서 AWS 디버그로
8886 단어 AWSPythonServerlesstech
Serverless Framework 설치
Serverless Framework 설치는 를 따릅니다공식 사이트.
Mac OS/Linux는 아래에 설치할 수 있습니다.
$ curl -o- -L https://slss.io/install | bash
새 Serverless 서비스 작성
설치가 완료되면 새 Serverless 서비스가 만들어집니다.
클라우드가 AWS이고 언어가 Python 3.8이면 다음 템플릿을 만들 수 있습니다.
$ sls create -t aws-python3
참고로 aws-python
로 제작하면 파이톤 2.7로 제작되었으니 파이톤 2 시스템을 사용하고 싶으면 사용하세요.실행하면 다음 파일이 생성됩니다.
$ tree -a
.
├── .gitignore
├── handler.py
└── serverless.yml
0 directories, 3 files
각 문서에 대해 설명한다.gitignore에 관해서는 Giit에 관한 것이기 때문에 설명하지 않습니다.serverless.Serverless Framework의 다양한 설정에서 AWS Lambda 동작의 함수 바디가 됩니다.
serverless.yml 설명
sls create가 실행된 지 얼마 되지 않은 서버less입니다.다음은 yml입니다.
실제로 많은 댓글이 달렸지만 모두 삭제하면 다음과 같은 내용밖에 없다.
service: serverless-sample
frameworkVersion: "2"
provider:
name: aws
runtime: python3.8
lambdaHashingVersion: 20201221
functions:
hello:
handler: handler.hello
service
는 서비스를 만드는 서비스 이름으로 기본적으로 디렉터리 이름을 사용합니다.frameworkVersion
는 Serverless Framework에서 사용하는 버전입니다.현재의 최신판을 사용한다면 2가 될 것이다.provider
는 구름을 둘러싼 설정이고 name
는 사용하는 구름이며 runtime
는 사용하는 언어이다.lambdaHashingVersion
는 이가조식에 추가된 옵션이지만 새로운 서비스라면 기본적으로 이렇다.functions
는 AWS 람다의 설정이다.hello 섹션은 Lambda에 사용되는 함수 이름입니다.Serverless Framework에서 만든 Lambda 함수 이름은 <service>-<stage>-<関数名>
입니다.스테이지 이름의 기본값이 dev이기 때문에 함수 serverless-sample-dev-hello
를 만들었습니다.handler
실제 실행 중인 프로그램의 위치를 표시합니다.handler.Hello는handler입니다.py 파일을 실행하는 Hello 함수를 의미합니다.handler.py의 설명
handler.py의 내용은 다음과 같다.
handler.py
import json
def hello(event, context):
body = {
"message": "Go Serverless v1.0! Your function executed successfully!",
"input": event
}
response = {
"statusCode": 200,
"body": json.dumps(body)
}
return response
serverless.yml에 설정된 것처럼 hello 함수는 Lambda의 시작점입니다.매개 변수의 이벤트는 Lambda의 입력 값입니다.람바다가 어떤 행사에서 시동을 걸었는지에 따라 가격이 달라진다.
AWS로 설계
그럼 이 Serverless 서비스를AWS로 진행합시다.
awscli에서credentials 설정
디버깅을 위해 AWS에 대한 credentials를 설정합니다.awscli를 설치한 후 다음 명령을 통해 설정할 수 있습니다 (serverless 명령도 설정할 수 있으며 이 부분은 개인의 취향에 따라 진행할 수 있습니다).
$ aws credentials
상세한 설정 방법은 공식 사이트 설정 방법을 참고하세요.공식 홈페이지에는 상세히 기재돼 있지만, 사용하는 IAM 이용자에 대해 설정
AdministratorAccess
하면 거의 문제가 없을 것으로 보인다.디버그 전에 일부 설정 변경
디자인 서비스에 앞서 도쿄에 개발지를 두고 싶어서 서버리스.yml 좀 수정할게요.
수정된 내용은 다음과 같습니다.
provider
에는 region
가 추가됐다.serverless.yml
service: serverless-sample
frameworkVersion: "2"
provider:
name: aws
runtime: python3.8
lambdaHashingVersion: 20201221
region: ap-northeast-1 # 追加部分
functions:
hello:
handler: handler.hello
디자인 서비스
다음 명령을 통해 디버깅을 할 수 있습니다.
$ sls deploy
디버그 함수 실행
AWS의 Management Constore에서 수행할 수 있지만 Serverless Framework 명령은 다음과 같습니다.
$ sls invoke -f hello -d '{"key":"value"}'
invoke 명령의 f 옵션은 함수 이름이고 d 옵션에 입력 값을 설정합니다.결과는 다음과 같다.
{
"statusCode": 200,
"body": "{\"message\": \"Go Serverless v1.0! Your function executed successfully!\", \"input\": {\"key\": \"value\"}}"
}
설계 서비스 삭제
프로그램과 함수의 조작을 확인했기 때문에 서비스를 삭제하는 방법도 설명했다.
다음 명령을 실행하면 삭제할 수 있습니다.
$ sls remove
덤
이번에 사용한 코드는 아래 Giithub 창고에 업로드되었습니다. 모든 코드를 확인하고 싶은 분들은 저쪽(v1.0 라벨은 이번 코드)을 보세요.
Reference
이 문제에 관하여(Serverless Framework 설치에서 AWS 디버그로), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/ombran/articles/serverless-install-and-aws-deploy텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)