[AWS] Lambda

Areum Choi·2022년 6월 21일
0

1. aws 홈페이지 접속 (검색창에 IAM검색)

  • 사용자 > 보안 자격 증명 > 엑세스 키 만들기 (엑세스 키 ID,PW를 받습니다.)
  • 받은 엑세스 키 ID,PW는 꼭 저장 !!

2. Pycharm 환경설정

  • file > new project > AWS Serverless Application

3. 개인 액세스 키 ID입력

  • 아래 코드 입력 후 > ID와 KEY입력 후 아래와 똑같이 입력
aws configure

4. 만들어진 내 액세스 키,ID확인

aws configure list

5. Function 생성 (주석 처리와 funtion이름을 변경해야 합니다.)

  • template.yaml 파일에서 function이름 변경 (저는 jennyfunction으로 변경하였습니다.)
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: >
  project_aws

  Sample SAM Template for project_aws

# More info about Globals: https://github.com/awslabs/serverless-application-model/blob/master/docs/globals.rst
Globals:
  Function:
    Timeout: 10

Resources:
  jennyFunction:
    Type: AWS::Serverless::Function # More info about Function Resource: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction
    Properties:
      CodeUri: hello_world/
      Handler: app.lambda_handler
      Runtime: python3.8

#      Architectures:
#        - x86_64
#     Events:
#      HelloWorld:
#          Type: Api # More info about API Event Source: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api
#          Properties:
#            Path: /hello
#            Method: get

Outputs:
  # ServerlessRestApi is an implicit API created out of Events key under Serverless::Function
  # Find out more about other implicit resources you can reference within SAM
  # https://github.com/awslabs/serverless-application-model/blob/master/docs/internals/generated_resources.rst#api
#  HelloWorldApi:
#    Description: "API Gateway endpoint URL for Prod stage for Hello World function"
#    Value: !Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/hello/"
  jennyFunction:
    Description: "Hello World Lambda Function ARN"
    Value: !GetAtt jennyFunction.Arn
  jennyFunctionIamRole:
    Description: "Implicit IAM Role created for Hello World function"
    Value: !GetAtt jennyFunctionRole.Arn
  • 수정 후 터미널 창에 코드 입력
sam build #수정할 때마다 매번 build해주어야 합니다.

jennyfunction 생성 완료!!

6.local에서 함수 호출하기

sam local invoke 

sam build #수정할 때마다 매번 build해주어야 합니다.

7.local에서 event함수 호출하기

sam local invoke -e events/event.json

sam build #수정할 때마다 매번 build해주어야 합니다.

8.test해보기 위해 test.json 생성

  • events 하위 폴더 > new > file생성 (이름은 test.json으로)

  • test.json파일에 아래 코드 입력
{
  "code": "300",
  "body": "test.json call ok"
}

9. local에서 test함수 호출하기

sam local invoke -e events/test.json

10. 로컬 api 실행

sam local start-api
sam local start-lambda

sam build #실행

11. SAM deploy을 이용하여 코드 패키징과 배포

  • 지정할 때 선택적으로 저장되는 설정에 대한 자세한 내용은-guided옵션
sam deploy --guided
  • Stack name만 입력 후 나머지는 다 enter > Y/n은 다 y 입렵!!

12. aws에서 확인

  • lambda검색 후 함수에 들어가보면 볼 수 있음

13. 데이터 삭제

sam delete 

0개의 댓글