API 배포하기
API 배포하기
지금까지는 로컬 환경에서 Lambda 함수를 작업했습니다. 이번 장에서는 이를 배포해 보겠습니다.
작업 디렉토리에서 다음 명령어를 실행하세요.
$ serverless deploy
AWS SDK 자격 증명에 여러 프로필이 있는 경우, 명시적으로 하나를 선택해야 합니다. 대신 다음 명령어를 사용하세요.
$ serverless deploy --aws-profile myProfile
여기서 myProfile
은 사용하려는 AWS 프로필 이름입니다. Serverless에서 AWS 프로필을 다루는 방법에 대한 더 많은 정보가 필요하다면, 여러 AWS 프로필 구성하기 장을 참고하세요.
이 명령어의 출력 하단에는 서비스 정보가 표시됩니다.
Service Information
service: notes-api
stage: prod
region: us-east-1
stack: notes-api-prod
resources: 32
api keys:
None
endpoints:
POST - https://0f7jby961h.execute-api.us-east-1.amazonaws.com/prod/notes
GET - https://0f7jby961h.execute-api.us-east-1.amazonaws.com/prod/notes/{id}
GET - https://0f7jby961h.execute-api.us-east-1.amazonaws.com/prod/notes
PUT - https://0f7jby961h.execute-api.us-east-1.amazonaws.com/prod/notes/{id}
DELETE - https://0f7jby961h.execute-api.us-east-1.amazonaws.com/prod/notes/{id}
functions:
create: notes-api-prod-create
get: notes-api-prod-get
list: notes-api-prod-list
update: notes-api-prod-update
delete: notes-api-prod-delete
layers:
None
여기에는 생성된 API 엔드포인트 목록이 포함되어 있습니다. 이 엔드포인트를 기록해 두세요. 나중에 프론트엔드를 만들 때 사용할 예정입니다. 또한 이 엔드포인트의 리전과 ID도 기록해 두세요. 다음 장에서 사용할 것입니다. 이 예제에서는 us-east-1
이 API Gateway 리전이고, 0f7jby961h
가 API Gateway ID입니다.
앱 배포 중 문제가 발생한다면, Seed에서 가장 일반적인 Serverless 오류 모음을 참고하세요.
단일 함수 배포하기
모든 API 엔드포인트를 배포하는 대신 단일 엔드포인트만 배포하고 싶은 경우가 있을 수 있습니다. serverless deploy function
커맨드를 사용하면 전체 배포 과정을 거치지 않고 개별 함수만 배포할 수 있습니다. 이 방법은 변경 사항을 더 빠르게 배포할 때 유용합니다.
예를 들어, list 함수를 다시 배포하려면 다음 명령어를 실행합니다.
$ serverless deploy function -f list
API 테스트하기
지금까지는 serverless invoke local
명령어를 사용해 Lambda 함수를 로컬에서 테스트했습니다. 이제 API를 배포했으니 엔드포인트를 통해 테스트할 수 있습니다.
노트 목록 API 엔드포인트로 이동해 보세요. 우리의 경우 엔드포인트는 다음과 같습니다.
https://0f7jby961h.execute-api.us-east-1.amazonaws.com/prod/notes
이 엔드포인트에 접속하면 다음과 같은 결과를 볼 수 있습니다.
[{"attachment":"hello.jpg","content":"hello world","createdAt":1487800950620,"noteId":"578eb840-f70f-11e6-9d1a-1359b3b22944","userId":"123"}]
이것은 DynamoDB에 저장된 노트 객체들의 JSON 인코딩된 배열입니다.
우리의 API는 공개적으로 사용 가능하므로 누구나 접근하여 노트를 생성할 수 있습니다. 또한 항상 123
사용자 ID에 연결됩니다. 다음으로 사용자와 인증을 처리하여 이 문제를 해결해 보겠습니다.
For help and discussion
Comments on this chapter