AWS Lambda + API Gateway 사용법 [초보자]

7693 단어 5람다APIGatewayAWS
직장에서 WEB API를 작성할 필요가 나왔기 때문에 개인 메모로 기재.
프로그램 언어는 자유롭게 선택할 수 있으므로 Go를 선택.

Lambda에 대한 함수 만들기



다음과 같은 함수를 작성.
json에서 값을 2개 받으면 추가하고 반환하는 함수.

sampelAdd.go
package main

import (
    "fmt"

    "github.com/aws/aws-lambda-go/lambda"
)

type GetData struct {
    Value1 int `json:"Value1"`
    Value2 int `json:"Value2"`
}

type ReturnData struct {
    Answer string `json:"Answer"`
}

func HandleLambdaEvent(event GetData) (ReturnData, error) {

    return ReturnData{Answer: fmt.Sprintf("%d + %d = %d", event.Value1, event.Value2, event.Value1+event.Value2)}, nil
}

func main() {
    lambda.Start(HandleLambdaEvent)
}

AWS에서 실행하기 위해 리눅스용으로 컴파일한다.
GOOS=linux GOARCH=amd64 go build -o sampleAdd sampleAdd.go

AWS에 업로드할 때 zip으로 설정해야 하므로 zip으로 설정
zip sampleAdd.zip ./sampleAdd

Lambda 만들기



처음부터 만들기를 선택합니다.



원하는 함수 이름을 입력하고 런타임에 Go 1.x를 선택합니다.
액세스 권한은 기본 상태로 유지됩니다. (권한에 대해 나중에 배울 예정)
이 상태에서 함수 만들기 버튼을 클릭합니다.



「핸들러」의 명칭을, 컴파일로 지정한 명칭으로 합니다.
함수 패키지에 위에서 만든 zip 파일을 지정하고 화면 오른쪽 상단의 버튼을 클릭합니다.



아래와 같이 「인라인 코드 편집할 수 없다」라고 나옵니다만 문제 없습니다.
Go 이외라면 인라인으로 코드를 편집할 수 있는 것 같습니다.



테스트 이벤트 설정



테스트 이벤트 설정을 선택합니다.



다음과 같이 테스트 내용을 작성하고 [만들기] 버튼을 클릭합니다.



테스트를 실행하면 예상대로 출력을 확인할 수 있습니다.



API Gateway 만들기



다음 상태에서 API 만들기 버튼을 클릭합니다.



메서드 만들기를 클릭합니다.



Get(쿼리 문자열) 만들기



GET을 선택합니다.



Lambda 함수에 sampleAdd를 지정합니다.



메소드 요청 편집



메소드 요청을 선택합니다.
요청 유효성 검사를 쿼리 문자열 매개 변수 및 헤더 유효성 검사로 변경합니다.
URL 쿼리 문자열 매개변수에 Value1, Value2를 추가합니다.



통합 요청 편집



통합 요청을 선택합니다.
매핑 템플릿에서 템플릿이 정의되지 않은 경우(권장)를 선택하고,
application/json을 추가합니다.
"Lambdaで受け取る値": "$input.params('URLパラメータ')" 에서 값을 얻을 수 있습니다.
추가 내용은 다음 내용입니다.
{
"Value1": $input.params('Value1'),
"Value2": $input.params('Value2')
}

다음과 같은 화면 상태로 저장합니다.



API Gateway 테스트



테스트를 클릭합니다.



쿼리 문자열을 작성하고 테스트 버튼을 클릭합니다.



예상대로 "응답 본문"이 반환됩니다.



배포



API 배포를 선택합니다.



원하는 스테이지 이름을 입력하고 배포 버튼을 클릭합니다.



URL이 지정되므로 URL 매개 변수를 추가하고 실행합니다.
예상되는 값이 표시됩니다.

좋은 웹페이지 즐겨찾기