Billing API 테스트하기

이제 Billing API 설정이 완료되었으니, 로컬 환경에서 간단히 테스트해 보겠습니다.

Change indicator mocks/billing-event.json 파일을 생성하고 다음 내용을 추가합니다.

{
  "body": "{\"source\":\"tok_visa\",\"storage\":21}",
  "requestContext": {
    "identity": {
      "cognitoIdentityId": "USER-SUB-1234"
    }
  }
}

여기서는 Stripe 테스트 토큰인 tok_visa와 저장하려는 노트의 개수 21을 사용해 테스트할 예정입니다. Stripe 테스트 카드와 토큰에 대한 자세한 내용은 Stripe API 문서에서 확인할 수 있습니다.

이제 프로젝트 루트에서 다음 명령어를 실행해 Billing API를 호출합니다.

$ serverless invoke local --function billing --path mocks/billing-event.json

응답은 다음과 비슷하게 나타납니다.

{
    "statusCode": 200,
    "body": "{\"status\":true}"
}

변경 사항 배포

지금까지 만든 변경 사항을 빠르게 배포해 보겠습니다.

Change indicator 프로젝트 루트에서 다음 명령어를 실행하세요.

$ serverless deploy

배포가 완료되면 콘솔에 다음과 같은 내용이 표시됩니다.

Service Information
service: notes-api
stage: prod
region: us-east-1
stack: notes-api-prod
resources: 38
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}
  POST - https://0f7jby961h.execute-api.us-east-1.amazonaws.com/prod/billing
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
  billing: notes-api-prod-billing
layers:
  None

새로 추가된 /billing 엔드포인트와 notes-api-prod-billing 함수가 목록에 있는 것을 확인할 수 있습니다.

이제 서버리스 백엔드가 완성되었습니다!

다음 선택 섹션에서는 IaC(Infrastructure as Code)를 사용해 리소스를 프로그래밍 방식으로 구성하는 방법을 살펴보겠습니다.