자습서: HTTP 비 프록시 통합을 사용하여 REST API 빌드
이 자습서에서는 Amazon API Gateway 콘솔을 사용하여 API를 완전히 새로 생성합니다. 콘솔을 API 설계 스튜디오로 간주해 이를 사용하여 API 기능의 범위를 정하고, 동작을 시험하고, API를 구축하고, 단계별로 API를 배포합니다.
HTTP 사용자 지정 통합을 사용하여 API 만들기
이 단원에서는 리소스 생성, 리소스에서 메서드 노출, 원하는 API 동작을 위한 메서드 구성, API 테스트 및 배포 등을 단계별로 살펴봅니다.
https://console.aws.amazon.com/apigateway
에서 API Gateway 콘솔에 로그인합니다. -
API Gateway를 처음 사용하는 경우, 서비스의 기능을 소개하는 페이지가 나타납니다. REST API에서 빌드를 선택합니다. 예제 API 생성 팝업이 나타나면 확인을 선택합니다.
API Gateway를 처음 사용하는 것이 아닌 경우 API 생성을 선택합니다. REST API에서 빌드를 선택합니다.
새 API를 선택합니다.
API 이름에 이름을 입력합니다.
선택적으로, 설명에 간략한 설명을 추가합니다.
API 생성(Create API)을 선택합니다.
그러면 빈 API가 생성됩니다. 리소스 트리에 메서드 없는 루트 리소스(
/
)가 표시됩니다. 이 연습에서는 PetStore 웹 사이트(http://petstore-demo-endpoint.execute-api.com/petstore/pets)의 HTTP 사용자 지정 통합을 사용하여 API를 구축합니다. 설명을 돕기 위해, 루트의 하위 항목으로/pets
리소스를 생성하고, 이 리소스의 GET 메서드를 클라이언트에 공개하여 PetStore 웹사이트에서 판매 중인 Pets 품목의 목록을 가져오겠습니다. -
/pets
리소스를 생성하려면 루트를 선택하고 작업을 선택한 다음 리소스 생성(Create Resource)을 선택합니다.리소스 이름에
Pets
를 입력하고, 리소스 경로(Resource Path) 값은 그대로 두고, API Gateway CORS 활성화(Enable API Gateway CORS)와 리소스 생성(Create Resource)을 선택합니다. -
/pets
리소스에 GET 메서드를 공개하려면 작업을 선택한 다음 메서드 생성(Create Method)을 선택합니다./pets 리소스 노드의 목록에서 GET을 선택하고 확인 표시 아이콘을 선택해 메서드 생성을 완료합니다.
참고
API 메서드의 다른 옵션에는 다음이 포함됩니다.
-
POST는 주로 하위 리소스를 생성하는 데 사용됩니다.
-
PUT은 주로 기존 리소스를 업데이트하는 데 사용되며, 권장되지는 않지만 하위 리소스를 생성하는 데에도 사용될 수 있습니다.
-
DELETE는 리소스를 삭제하는 데 사용됩니다.
-
PATCH는 리소스를 업데이트하는 데 사용됩니다.
-
HEAD는 주로 시나리오를 테스트하는 데 사용됩니다. GET와 동일하지만 리소스 표현을 반환하지 않습니다.
-
OPTIONS는 호출자가 타겟 서비스에 사용 가능한 통신 옵션에 대한 정보를 가져오는 데 사용할 수 있습니다.
생성된 메서드는 아직 백엔드와 통합되지 않습니다. 다음 단계에 이를 설정합니다.
-
-
메서드의 Setup(설정) 창에서 Integration type(통합 유형)에 HTTP를 선택하고, HTTP method(HTTP 메서드) 드롭다운 목록에서 GET을 선택하고, Endpoint URL(엔드포인트 URL) 값으로
http://petstore-demo-endpoint.execute-api.com/petstore/pets
http://petstore-demo-endpoint.execute-api.com/petstore/pets를 입력하고, 다른 모든 설정은 기본값으로 둔 후, 저장장을 선택합니다.참고
통합 요청의 HTTP 메서드(HTTP method)에 백엔드에서 지원하는 항목을 선택해야 합니다.
HTTP
또는Mock integration
의 경우, 메서드 요청과 통합 요청이 동일한 HTTP 동사를 사용하는 것이 합리적입니다. 다른 통합 유형 및 메서드 요청의 경우, 통합 요청과 다른 HTTP 동사를 사용할 가능성이 높습니다. 예를 들어 Lambda 함수를 호출하기 위해 통합 요청은POST
를 이용해 함수를 호출해야 하는 반면, 메서드 요청은 Lambda 함수의 로직에 따라 임의의 HTTP 동사를 사용할 수 있습니다.메서드 설정이 완료되면 메서드 실행(Method Execution) 창이 나타나 메서드 요청을 추가로 구성하여 쿼리 문자열이나 사용자 지정 헤더 파라미터를 추가할 수 있습니다. 통합 요청을 업데이트하여 메서드 요청의 입력 데이터를 백엔드에서 요구한 형식으로 매핑할 수 있습니다.
PetStore 웹사이트 페이지에서 반려 동물 유형별로(예: "개" 또는 "고양이")
Pet
품목의 목록을 가져올 수 있습니다. 웹사이트는type
및page
쿼리 문자열 파라미터를 사용해 이러한 입력을 수락합니다. 이와 같이 메서드 요청에 쿼리 문자열 파라미터를 추가하고, 통합 요청의 해당 쿼리 문자열에 매핑해야 합니다. -
GET 메서드의 메서드 실행(Method Execution) 창에서 메서드 요청(Method Request)을 선택하고, 권한 부여(Authorization)에
AWS_IAM
을 선택한 후 URL 쿼리 문자열 파라미터(URL Query String Parameters) 섹션을 확장하고, 쿼리 문자열 추가(Add query string)를 선택해type
및page
라는 이름의 두 쿼리 문자열 파라미터를 생성합니다. 확인 표시 아이콘을 선택하여 새로 추가한 각각의 쿼리 문자열 파라미터를 저장합니다.이제 클라이언트는 요청을 제출할 때 반려 동물 유형과 페이지 번호를 쿼리 문자열 파라미터로 제공할 수 있습니다. 이러한 입력 파라미터를 통합의 쿼리 문자열 파라미터에 매핑하여 백엔드에서 PetStore 웹사이트에 입력 값을 전달해야 합니다. 메서드는
AWS_IAM
을 사용하기 때문에 요청을 보내 메서드를 호출해야 합니다. -
메서드의 통합 요청(Integration Request) 페이지에서 URL 쿼리 문자열 파라미터(URL Query String Parameters) 섹션을 확장합니다. 기본적으로 메서드 요청 쿼리 문자열 파라미터는 비슷한 이름의 통합 요청 쿼리 문자열 파라미터에 매핑됩니다. 이 기본 매핑은 데모 API에서 작동합니다. 이 값은 그대로 유지하겠습니다. 다른 메서드 요청 파라미터를 해당 통합 요청 파라미터에 매핑하려면, 다음에서 매핑됨(Mapped from) 열에 표시된 대로 파라미터의 연필 아이콘을 선택하여 매핑 표현식을 편집합니다. 메서드 요청 파라미터를 다른 통합 요청 파라미터에 매핑하려면, 먼저 삭제 아이콘을 선택해 기존 통합 요청 파라미터를 삭제하고 쿼리 문자열 추가(Add query string)를 선택해 새 이름과 원하는 메서드 요청 파라미터 매핑 표현식을 지정합니다.
이렇게 하면 단순한 데모 API 구축이 완료됩니다. 이제 API를 테스트할 시간입니다.
-
API Gateway 콘솔을 이용해 API를 테스트하려면 메서드 실행(Method Execution) 창에서
GET /pets
메서드에 테스트(Test)를 선택합니다. Method Test(메서드 테스트) 창에서 유형 및 page(페이지) 쿼리 문자열에 각각Dog
및2
를 입력한 후 테스트를 선택합니다.결과는 다음과 같습니다. (테스트 결과가 보이려면 아래로 스크롤해야 할 수 있습니다.)
테스트에 성공했으므로, API를 배포해 공개적으로 사용 가능하도록 할 수 있습니다.
-
API를 배포하려면 API를 선택한 후 작업 드롭다운 메뉴에서 API 배포를 선택합니다.
Deploy API(API 배포) 대화창에서 단계(또는 API의 첫 번째 배포에 대한
[New Stage]
)를 선택하고, Stage name(단계 이름) 입력 필드에 이름(예: 'test', 'prod', 'dev' 등)을 입력하고, 필요에 따라 Stage description(단계 이름) 및/또는 Deployment description(배포 설명)에 설명을 입력한 후 배포를 선택합니다.API가 배포되면 API의 엔드포인트의 호출 URL(URL 호출(Invoke URL))을 얻을 수 있습니다.
GET 메서드가 개방 액세스를 지원한 경우(예: 메서드의 권한 부여 유형이
NONE
으로 설정된 경우) URL 호출(Invoke URL) 링크를 두 번 클릭하여 기본 브라우저에서 메서드를 호출할 수 있습니다. 경우에 따라, 호출 URL에 필요한 쿼리 문자열 파라미터를 추가할 수도 있습니다. 여기에 설명된AWS_IAM
권한 부여 유형을 이용해 AWS 보안 인증 정보로 요청을 서명해야 합니다. 이렇게 하려면 서명 버전 4(SigV4) 프로토콜을 지원하는 클라이언트를 사용해야 합니다. 이러한 클라이언트의 예로, AWS SDK 또는 Postman애플리케이션이나 cURL 명령 중 하나를 사용하는 앱을 들 수 있습니다. SDK를 이용해 클라이언트를 생성하면 SDK가 공개한 메서드를 호출하여 요청을 보낼 수 있습니다. 구현 세부 정보는 선택한 AWS SDK
를 참조하세요. 참고
API가 변경되면 API를 다시 배포하여 새 기능 또는 업데이트된 기능을 사용할 수 있도록 한 후 요청 URL을 다시 호출해야 합니다.
API Gateway API에 대한 요청 파라미터 매핑
이 연습에서는 메서드 요청 파라미터를 API Gateway API에 대한 해당 통합 요청 파라미터에 매핑하는 방법에 대해 설명합니다. HTTP 사용자 지정 통합을 사용하여 예제 API를 생성하고 이를 통해 API Gateway를 사용하여 메서드 요청 파라미터를 해당하는 통합 요청 파라미터에 매핑하는 방법을 보여줍니다. 그런 다음 다음과 같이 공개적으로 액세스할 수 있는 HTTP 엔드포인트에 액세스합니다.
http://petstore-demo-endpoint.execute-api.com/petstore/pets
위 URL을 복사하여 웹 브라우저의 주소 표시줄에 붙여넣고 Enter
또는 Return
을 누르면 다음과 같은 JSON 형식의 응답 본문이 표시됩니다.
[ { "id": 1, "type": "dog", "price": 249.99 }, { "id": 2, "type": "cat", "price": 124.99 }, { "id": 3, "type": "fish", "price": 0.99 } ]
위의 엔드포인트는 2개의 쿼리 파라미터, 즉 type
및 page
를 가질 수 있습니다. 예를 들어 URL을 다음과 같이 변경합니다.
http://petstore-demo-endpoint.execute-api.com/petstore/pets?type=cat&page=2
다음 JSON 형식의 응답 페이로드를 수신하여 cats의 2페이지만 표시합니다.
[ { "id": 4, "type": "cat", "price": 999.99 }, { "id": 5, "type": "cat", "price": 249.99 }, { "id": 6, "type": "cat", "price": 49.97 } ]
또한 이 엔드포인트는 URL 경로 파라미터로 표시되는 항목 ID 사용을 지원합니다. 예를 들어 다음을 탐색합니다.
http://petstore-demo-endpoint.execute-api.com/petstore/pets/1
ID가 1인 항목에 대한 JSON 형식의 다음 정보가 표시됩니다.
{ "id": 1, "type": "dog", "price": 249.99 }
이 엔드포인트는 GET 작업을 지원하는 것 외에도 페이로드가 있는 POST 요청을 받습니다. 예를 들어 Postman
http://petstore-demo-endpoint.execute-api.com/petstore/pets
헤더 Content-type: application/json
및 다음 요청 본문을 포함합니다.
{ "type": "dog", "price": 249.99 }
응답 본문에 다음 JSON 객체가 수신됩니다.
{ "pet": { "type": "dog", "price": 249.99 }, "message": "success" }
이제 이 PetStore 웹 사이트의 HTTP 사용자 지정 통합을 통해 API Gateway API를 구축하여 이 기능 및 다른 기능을 공개합니다. 작업에는 다음이 포함됩니다.
-
https://
의 HTTP 엔드포인트에 대한 프록시 역할을 하는my-api-id
.execute-api.region-id
.amazonaws.com/test
/petstorewalkthrough/petshttp://petstore-demo-endpoint.execute-api.com/petstore/pets
의 리소스를 사용하여 API를 작성합니다. -
API가
petType
및petsPage
의 두 가지 메서드 요청 쿼리 파라미터를 수락하고, 이를 통합 요청의type
및page
쿼리 파라미터에 각각 매핑하고, 요청을 HTTP 엔드포인트에 전달할 수 있게 합니다. -
항목 ID를 지정하고, 이를 통합 요청 URL의
{petId}
경로 파라미터에 매핑하고, 요청을 HTTP 엔드포인트로 보내려면 API의 메서드 요청 URL에서{id}
의 경로 파라미터를 지원하십시오. -
백엔드 웹 사이트에서 정의한 형식의 JSON 페이로드를 수락하도록 메서드 요청을 사용 가능하게 하고 백엔드 HTTP 엔드포인트에 대한 통합 요청을 통해 페이로드를 수정하지 않고 전달합니다.
참고
이 연습의 단계에서 사용된 대소문자에 주의하십시오. 대문자 대신 소문자를 입력하거나 그 반대로 입력하면 연습 뒷부분에서 오류가 발생할 수 있습니다.
필수 조건
이 연습을 시작하기 전에 다음 작업을 수행해야 합니다.
-
API Gateway를 시작하기 위한 사전 조건의 단계를 수행합니다.
-
최소한, 자습서: HTTP 비 프록시 통합을 사용하여 REST API 빌드에 명시된 단계에 따라 API Gateway 콘솔에서
MyDemoAPI
라는 새 API를 생성합니다.
1단계: 리소스 생성
이 단계에서는 API가 HTTP 엔드포인트와 상호 작용할 수 있도록 세 가지 리소스를 생성합니다.
첫 번째 리소스 생성 방법
-
리소스(Resources) 창에서 단일 슬래시(
/
)로 표시된 리소스 루트를 선택한 다음 작업(Actions) 드롭다운 메뉴에서 리소스 생성(Create Resource)을 선택합니다. -
리소스 이름에
petstorewalkthrough
를 입력합니다. -
리소스 경로(Resource Path)에서 기본값 /petstorewalkthrough를 그대로 적용한 다음, 리소스 생성(Create Resource)를 선택합니다.
두 번째 리소스 생성 방법
-
리소스(Resources) 창에서 /petstorewalkthrough를 선택한 다음 리소스 생성(Create Resource)을 선택합니다.
-
리소스 이름에
pets
를 입력합니다. -
리소스 경로(Resource Path)에서 기본값 /petstorewalkthrough/pets를 그대로 적용한 다음, 리소스 생성(Create Resource)을 선택합니다.
세 번째 리소스 생성 방법
-
리소스(Resources) 창에서 /petstorewalkthrough/pets를 선택한 다음 리소스 생성(Create Resource)을 선택합니다.
-
리소스 이름에
petId
를 입력합니다. 그렇게 하면 HTTP 엔드포인트에 있는 항목 ID로 매핑됩니다. -
리소스 경로(Resource Path)에서 petid를
{petId}
로 덮어씁니다. /petstorewalkthrough/pets/{petId}가 표시되도록{ }
에 중괄호(petId
)를 사용한 다음 리소스 생성(Create Resource)을 선택합니다.그렇게 하면 HTTP 엔드포인트에 있는
/petstore/pets/
로 매핑됩니다.my-item-id
2단계: 메서드 생성 및 테스트
이 단계에서는 메서드를 백엔드 HTTP 엔드포인트와 통합하고 GET 메서드 요청 파라미터를 해당하는 통합 요청 파라미터에 매핑한 다음 메서드를 테스트합니다.
첫 번째 GET 메서드 설정 및 테스트 방법
이 절차에서는 다음을 설명합니다.
-
GET /petstorewalkthrough/pets
의 통합 요청과 더불어GET http://petstore-demo-endpoint.execute-api.com/petstore/pets
의 메서드 요청을 생성하고 통합합니다. -
petType
과petsPage
의 메서드 요청 쿼리 파라미터를 각각type
과page
의 통합 요청 쿼리 문자열 파라미터에 매핑합니다.
-
리소스(Resources) 창에서 /petstorewalkthrough/pets를 선택하고, 작업(Actions) 메뉴에서 메서드 생성(Create Method)을 선택한 다음, 메서드 이름 드롭다운 목록의 /pets에서 GET을 선택합니다.
-
/petstorewalkthrough/pets - GET - Setup 창의 통합 유형(Integration type)에서 HTTP를 선택하고 HTTP 메서드(HTTP method)에서 GET을 선택합니다.
-
엔드포인트 URL(Endpoint URL)에서
http://petstore-demo-endpoint.execute-api.com/petstore/pets
를 입력합니다. -
저장을 선택합니다.
-
메서드 실행(Method Execution) 창에서 메서드 요청(Method Request)을 선택한 다음, URL 쿼리 문자열 파라미터(URL Query String Parameters) 옆에 있는 화살표를 선택합니다.
-
쿼리 문자열 추가(Add query string)를 선택합니다.
-
Name에
petType
를 입력합니다.그렇게 하면
petType
쿼리 파라미터가 API의 메서드 요청에 지정됩니다. -
확인 표시 아이콘을 선택하여 메서드 요청 URL 쿼리 문자열 파라미터의 생성을 완료합니다.
-
쿼리 문자열 추가(Add query string)를 다시 선택합니다.
-
Name에
petsPage
를 입력합니다.그렇게 하면
petsPage
쿼리 파라미터가 API의 메서드 요청에 지정됩니다. -
확인 표시 아이콘을 선택하여 메서드 요청 URL 쿼리 문자열 파라미터의 생성을 완료합니다.
-
메서드 실행(Method Execution)을 선택하고, 통합 요청(Integration Request)을 선택한 다음, URL 쿼리 문자열 파라미터(URL Query String Parameters) 옆에 있는 화살표를 선택합니다.
-
petType
에서 매핑된method.request.querystring.petType
입력과petsPage
에서 매핑된method.request.querystring.petsPage
입력을 삭제합니다. 엔드포인트에는 요청 URL에 대해 기본값 대신type
및page
라는 쿼리 문자열 파라미터가 필요하기 때문에 이 단계를 수행합니다. -
쿼리 문자열 추가(Add query string)를 선택합니다.
-
Name에
type
를 입력합니다. 그러면 통합 요청 URL에 대한 필수 쿼리 문자열 파라미터가 생성됩니다. -
다음에서 매핑됨(Mapped from)에
method.request.querystring.petType
를 입력합니다.그렇게 하면 메서드 요청의
petType
쿼리 파라미터가 통합 요청의type
쿼리 파라미터에 매핑됩니다. -
확인 표시 아이콘을 선택하여 통합 요청 URL 쿼리 문자열 파라미터의 생성을 완료합니다.
-
쿼리 문자열 추가(Add query string)를 다시 선택합니다.
-
Name에
page
를 입력합니다. 그러면 통합 요청 URL에 대한 필수 쿼리 문자열 파라미터가 생성됩니다. -
다음에서 매핑됨(Mapped from)에
method.request.querystring.petsPage
를 입력합니다.그렇게 하면 메서드 요청의
petsPage
쿼리 파라미터가 통합 요청의page
쿼리 파라미터에 매핑됩니다. -
확인 표시 아이콘을 선택하여 통합 요청 URL 쿼리 문자열 파라미터의 생성을 완료합니다.
-
Method Execution(메서드 실행)을 선택합니다. 클라이언트(Client) 상자에서 테스트를 선택합니다. Query Strings(쿼리 문자열) 영역의 petType에서
cat
을 입력합니다. petsPage에2
를 입력합니다. -
테스트를 선택합니다. 올바르게 수행했다면 응답 본문(Response Body)에 다음이 표시됩니다.
[ { "id": 4, "type": "cat", "price": 999.99 }, { "id": 5, "type": "cat", "price": 249.99 }, { "id": 6, "type": "cat", "price": 49.97 } ]
두 번째 GET 메서드 설정 및 테스트 방법
이 절차에서는 다음을 설명합니다.
-
GET /petstorewalkthrough/pets/{petId}
의 통합 요청과 더불어GET http://petstore-demo-endpoint.execute-api.com/petstore/pets/{id}
의 메서드 요청을 생성하고 통합합니다. -
petId
의 메서드 요청 경로 파리미터를id
의 통합 요청 경로 파라미터로 매핑합니다.
-
리소스(Resources) 목록에서 /petstorewalkthrough/pets/{petId}를 선택하고, 작업(Actions) 드롭다운 메뉴에서 메서드 생성(Create Method)을 선택한 다음 GET을 해당 메서드의 HTTP 동사로 선택합니다.
-
설정(Setup) 창의 통합 유형(Integration type)에서 HTTP를 선택하고 HTTP 메서드(HTTP method)에서 GET을 선택합니다.
-
엔드포인트 URL(Endpoint URL)에서
http://petstore-demo-endpoint.execute-api.com/petstore/pets/{id}
를 입력합니다. -
저장을 선택합니다.
-
메서드 실행(Method Execution) 창에서 통합 요청(Integration Request)을 선택한 다음, URL 경로 파라미터(URL Path Parameters) 옆에 있는 화살표를 선택합니다.
-
경로 추가(Add path)를 선택합니다.
-
Name에
id
를 입력합니다. -
다음에서 매핑됨(Mapped from)에
method.request.path.petId
를 입력합니다.그렇게 하면
petId
의 메서드 요청 경로 파리미터가id
의 통합 요청 경로 파라미터로 매핑됩니다. -
확인 표시 아이콘을 선택하여 URL 경로 파라미터의 생성을 완료합니다.
-
메서드 실행(Method Execution)을 선택하고 클라이언트(Client) 상자에서 TEST를 선택합니다. 경로 영역의 petId에
1
을 입력합니다. -
테스트를 선택합니다. 올바르게 수행했다면 응답 본문(Response Body)에 다음이 표시됩니다.
{ "id": 1, "type": "dog", "price": 249.99 }
POST 메서드 설정 및 테스트 방법
이 절차에서는 다음을 설명합니다.
-
POST /petstorewalkthrough/pets
의 통합 요청과 더불어POST http://petstore-demo-endpoint.execute-api.com/petstore/pets
의 메서드 요청을 생성하고 통합합니다. -
메서드 요청 JSON 페이로드를 수정하지 않고 통합 요청 페이로드에 전달합니다.
-
리소스(Resources) 창에서 /petstorewalkthrough/pets를 선택하고, 작업(Actions) 드롭다운 메뉴에서 메서드 생성(Create Method)을 선택한 다음 POST를 해당 메서드의 HTTP 동사로 선택합니다.
-
설정(Setup) 창의 통합 유형(Integration type)에서 HTTP를 선택하고 HTTP 메서드(HTTP method)에서 POST를 선택합니다.
-
엔드포인트 URL(Endpoint URL)에서
http://petstore-demo-endpoint.execute-api.com/petstore/pets
를 입력합니다. -
저장을 선택합니다.
-
메서드 실행(Method Execution) 창의 클라이언트(Client) 상자에서 TEST를 선택합니다. 요청 본문(Request Body)을 확장하고 다음을 입력합니다.
{ "type": "dog", "price": 249.99 }
-
테스트를 선택합니다. 올바르게 수행했다면 응답 본문(Response Body)에 다음이 표시됩니다.
{ "pet": { "type": "dog", "price": 249.99 }, "message": "success" }
3단계: API 배포
이 단계에서는 API를 API Gateway 콘솔 외부에서 호출을 시작할 수 있도록 배포합니다.
API를 배포하려면
-
리소스 창에서 API 배포를 선택합니다.
-
배포 스테이지에서
를 선택합니다.test
참고
입력은 UTF-8로 인코딩된(현지화되지 않은) 텍스트여야 합니다.
-
Deployment description(배포 설명)에
Calling HTTP endpoint walkthrough
을 입력합니다 -
[Deploy]를 선택합니다.
4단계: API 테스트
이 단계에서는 API Gateway 콘솔 외부로 이동하고 API를 사용하여 HTTP 엔드포인트에 액세스합니다.
-
URL 호출(Invoke URL) 옆에 있는 단계 편집기(Stage Editor) 창에서 URL을 클립보드로 복사합니다. 다음과 같아야 합니다.
https://
my-api-id
.execute-api.region-id
.amazonaws.com/test
-
이 URL을 새 브라우저 탭의 주소 표시줄에 붙여 넣습니다.
-
/petstorewalkthrough/pets
을 추가하여 다음과 같이 되도록 정합니다.https://
my-api-id
.execute-api.region-id
.amazonaws.com/test
/petstorewalkthrough/pets해당 URL로 이동합니다. 다음 정보가 표시되어야 합니다.
[ { "id": 1, "type": "dog", "price": 249.99 }, { "id": 2, "type": "cat", "price": 124.99 }, { "id": 3, "type": "fish", "price": 0.99 } ]
-
petstorewalkthrough/pets
뒤에?petType=cat&petsPage=2
를 입력하여 다음과 같이 되도록 합니다.https://
my-api-id
.execute-api.region-id
.amazonaws.com/test
/petstorewalkthrough/pets?petType=cat&petsPage=2 -
해당 URL로 이동합니다. 다음 정보가 표시되어야 합니다.
[ { "id": 4, "type": "cat", "price": 999.99 }, { "id": 5, "type": "cat", "price": 249.99 }, { "id": 6, "type": "cat", "price": 49.97 } ]
-
petstorewalkthrough/pets
뒤의?petType=cat&petsPage=2
를/1
으로 교체하여 다음과 같이 되도록 합니다.https://
my-api-id
.execute-api.region-id
.amazonaws.com/test
/petstorewalkthrough/pets/1 -
해당 URL로 이동합니다. 다음 정보가 표시되어야 합니다.
{ "id": 1, "type": "dog", "price": 249.99 }
-
웹 디버깅 프록시 도구 또는 cURL 명령줄 도구를 사용하여 POST 메서드 요청을 이전 절차에서 URL로 전송합니다.
/petstorewalkthrough/pets
을 추가하여 다음과 같이 되도록 정합니다.https://
my-api-id
.execute-api.region-id
.amazonaws.com/test
/petstorewalkthrough/pets다음 헤더를 추가합니다.
Content-Type: application/json
다음 코드를 요청 본문에 추가합니다.
{ "type": "dog", "price": 249.99 }
예를 들어, cURL 명령줄 도구를 사용하는 경우 다음과 비슷한 명령을 실행합니다.
curl -H "Content-Type: application/json" -X POST -d "{\"type\": \"dog\",\"price\": 249.99}" https://
my-api-id
.execute-api.region-id
.amazonaws.com/test
/petstorewalkthrough/pets응답 본문에 다음의 정보가 반환되어야 합니다.
{ "pet": { "type": "dog", "price": 249.99 }, "message": "success" }
이 연습을 마칩니다.
맵 응답 페이로드
이 연습에서는 API Gateway에서 모델 및 매핑 템플릿을 사용하여 API 호출의 출력을 한 데이터 스키마에서 다른 데이터 스키마로 변환하는 방법을 보여줍니다. 이 연습은 API Gateway 시작하기 및 API Gateway API에 대한 요청 파라미터 매핑의 지침 및 개념을 기반으로 합니다. 아직 연습을 완료하지 못했다면 먼저 완료하는 것이 좋습니다.
이 연습에서는 API Gateway를 사용하여 공개적으로 액세스 가능한 HTTP 엔드포인트 및 생성한 AWS Lambda 함수에서 예제 데이터를 가져옵니다. HTTP 엔드포인트 및 Lambda 함수에서 모두 동일한 예제 데이터를 반환합니다.
[ { "id": 1, "type": "dog", "price": 249.99 }, { "id": 2, "type": "cat", "price": 124.99 }, { "id": 3, "type": "fish", "price": 0.99 } ]
모델 및 매핑 템플릿을 사용하여 이 데이터를 하나 이상의 출력 형식으로 변환합니다. API Gateway에서 모델은 일부 데이터의 형식(스키마 또는 형태라고도 함)을 정의합니다. API Gateway에서 매핑 템플릿은 일부 데이터를 한 형식에서 다른 형식으로 변환하는 데 사용됩니다. 자세한 내용은 데이터 모델 이해 섹션을 참조하세요.
첫 번째 모델 및 매핑 템플릿을 사용하여 id
를 number
로, type
를 class
로, price
를 salesPrice
로 다음과 같이 변경합니다.
[ { "number": 1, "class": "dog", "salesPrice": 249.99 }, { "number": 2, "class": "cat", "salesPrice": 124.99 }, { "number": 3, "class": "fish", "salesPrice": 0.99 } ]
두 번째 모델 및 매핑 템플릿을 사용하여 다음과 같이 id
및 type
을 description
으로 결합하고 price
를 askingPrice
로 이름을 변경합니다.
[ { "description": "Item 1 is a dog.", "askingPrice": 249.99 }, { "description": "Item 2 is a cat.", "askingPrice": 124.99 }, { "description": "Item 3 is a fish.", "askingPrice": 0.99 } ]
세 번째 모델 및 매핑 템플릿을 사용하여 다음과 같이 id
, type
및 price
를 listings
세트로 결합합니다.
{ "listings": [ "Item 1 is a dog. The asking price is 249.99.", "Item 2 is a cat. The asking price is 124.99.", "Item 3 is a fish. The asking price is 0.99." ] }
주제
1단계: Lambda 함수 생성
먼저 Lambda 사용자 지정 통합의 샘플 데이터를 반환하는 Lambda 함수를 생성해야 합니다.
Lambda 함수 생성
https://console.aws.amazon.com/lambda/
에서 AWS Lambda 콘솔을 엽니다. -
함수 생성(Create function)을 선택합니다.
-
새로 작성을 선택합니다.
-
Function Name(함수 이름)에
GetPetsInfo
를 입력합니다. -
함수 생성(Create function)을 선택합니다.
-
다음의 Lambda 함수를 복사한 다음, Lambda의 코드 편집기에 붙여넣습니다. [배포(Deploy)]를 선택하여 함수를 업데이트합니다.
console.log('Loading event'); export const handler = function(event, context, callback) { callback(null, [{"id": 1, "type": "dog", "price": 249.99}, {"id": 2, "type": "cat", "price": 124.99}, {"id": 3, "type": "fish", "price": 0.99}]); // SUCCESS with message };
작은 정보
Node.js로 작성된 앞서 설명한 코드에서는
console.log
가 Amazon CloudWatch 로그에 정보를 기록합니다.event
Lambda 함수에 대한 입력이 포함되어 있습니다.context
는 호출 컨텍스트를 포함합니다.callback
은 결과를 반환합니다. Lambda 함수 코드 작성 방법에 관한 상세 정보는 AWS Lambda: 사용 방법의 '프로그래밍 모델'과 AWS Lambda 개발자 안내서의 예제 안내를 참조하세요.
2단계: 모델 생성
이 단계에서는 4개 모델을 생성합니다. 처음 세 모델은 HTTP 엔드포인트와 함께 사용할 데이터 출력 형식을 나타냅니다. 마지막 모델은 Lambda 함수와 함께 사용할 데이터 입력 스키마를 나타냅니다.
첫 번째 출력 모델 생성 방법
-
https://console.aws.amazon.com/apigateway
에서 API Gateway 콘솔에 로그인합니다. -
MyDemoAPI가 표시되면 모델(Models)을 선택합니다.
-
Create를 선택합니다.
-
모델 이름(Model name)에
PetsModelNoFlatten
을 입력합니다. -
콘텐츠 유형에
application/json
을 입력합니다. -
설명에
Changes id to number, type to class, and price to salesPrice
를 입력합니다. -
모델 스키마(Model schema)에서 다음의 JSON 스키마 호환 정의를 입력합니다.
{ "$schema": "http://json-schema.org/draft-04/schema#", "title": "PetsModelNoFlatten", "type": "array", "items": { "type": "object", "properties": { "number": { "type": "integer" }, "class": { "type": "string" }, "salesPrice": { "type": "number" } } } }
-
모델 생성을 선택합니다.
두 번째 출력 모델 생성 방법
-
Create를 선택합니다.
-
모델 이름(Model name)에
PetsModelFlattenSome
을 입력합니다. -
콘텐츠 유형에
application/json
을 입력합니다. -
설명에
Combines id and type into description, and changes price to askingPrice
를 입력합니다. -
모델 스키마에서 다음을 입력합니다.
{ "$schema": "http://json-schema.org/draft-04/schema#", "title": "PetsModelFlattenSome", "type": "array", "items": { "type": "object", "properties": { "description": { "type": "string" }, "askingPrice": { "type": "number" } } } }
-
모델 생성을 선택합니다.
세 번째 출력 모델 생성 방법
-
Create를 선택합니다.
-
모델 이름(Model name)에
PetsModelFlattenAll
을 입력합니다. -
콘텐츠 유형에
application/json
을 입력합니다. -
설명에
Combines id, type, and price into a set of listings
를 입력합니다. -
모델 스키마에서 다음을 입력합니다.
{ "$schema": "http://json-schema.org/draft-04/schema#", "title": "PetsModelFlattenAll", "type": "object", "properties": { "listings": { "type": "array", "items": { "type": "string" } } } }
-
모델 생성을 선택합니다.
입력 모델 생성 방법
-
Create를 선택합니다.
-
모델 이름(Model name)에
PetsLambdaModel
을 입력합니다. -
콘텐츠 유형에
application/json
을 입력합니다. -
설명에
GetPetsInfo model
를 입력합니다. -
모델 스키마에서 다음을 입력합니다.
{ "$schema": "http://json-schema.org/draft-04/schema#", "title": "PetsLambdaModel", "type": "array", "items": { "type": "object", "properties": { "id": { "type": "integer" }, "type": { "type": "string" }, "price": { "type": "number" } } } }
-
모델 생성을 선택합니다.
3단계: 리소스 생성
이 단계에서는 4개 리소스를 생성합니다. 처음 세 가지 리소스를 사용하면 세 가지 출력 형식으로 HTTP 엔드포인트에서 예제 데이터를 가져올 수 있습니다. 마지막 리소스를 사용하면 동일한 /flattensome 출력 스키마의 Lambda 함수에서 예제 데이터를 가져올 수 있습니다.
첫 번째 리소스 생성 방법
-
링크 목록에서 리소스를 선택합니다.
-
리소스(Resources) 창에서 /petstorewalkthrough를 선택한 다음 리소스 생성(Create Resource)을 선택합니다.
-
리소스 이름에
NoFlatten
를 입력합니다. -
리소스 경로(Resource Path)에서 기본값 /petstorewalkthrough/noflatten을 그대로 적용한 다음, 리소스 생성(Create Resource)을 선택합니다.
두 번째 리소스 생성 방법
-
리소스(Resources) 창에서 /petstorewalkthrough를 다시 선택한 다음 리소스 생성(Create Resource)을 선택합니다.
-
리소스 이름에
FlattenSome
를 입력합니다. -
리소스 경로(Resource Path)에서 기본값 /petstorewalkthrough/flattensome을 그대로 적용한 다음, 리소스 생성(Create Resource)을 선택합니다.
세 번째 리소스 생성 방법
-
리소스(Resources) 창에서 /petstorewalkthrough를 다시 선택한 다음 리소스 생성(Create Resource)을 선택합니다.
-
리소스 이름에
FlattenAll
를 입력합니다. -
리소스 경로(Resource Path)에서 기본값 /petstorewalkthrough/flattenall을 그대로 적용한 다음, 리소스 생성(Create Resource)을 선택합니다.
네 번째 리소스 생성 방법
-
리소스(Resources) 창에서 /petstorewalkthrough를 다시 선택한 다음 리소스 생성(Create Resource)을 선택합니다.
-
리소스 이름에
LambdaFlattenSome
를 입력합니다. -
리소스 경로(Resource Path)에서 기본값 /petstorewalkthrough/lambdaflattensome을 그대로 적용한 다음, 리소스 생성(Create Resource)을 선택합니다.
4단계: GET 메서드 생성
이 단계에서는 이전 단계에서 생성한 각 리소스에 대해 GET 메서드를 생성합니다.
첫 번째 GET 메서드 생성 방법
-
리소스(Resources) 목록에서 /petstorewalkthrough/flattenall을 선택한 다음 메서드 생성(Create Method)을 선택합니다.
-
드롭다운 목록에서 GET을 선택한 다음 확인 표시 아이콘을 선택하여 선택한 메서드를 저장합니다.
-
설정 창의 통합 유형(Integration type)에서 HTTP를, HTTP 메서드(HTTP method)에서 GET을 선택하고, 엔드포인트 URL(Endpoint URL)에서
http://petstore-demo-endpoint.execute-api.com/petstore/pets
를 입력한 다음 저장(Save)을 선택합니다.
두 번째 GET 메서드 생성 방법
-
리소스(Resources) 목록에서 /petstorewalkthrough/lambdaflattensome을 선택한 다음 메서드 생성(Create Method)을 선택합니다.
-
드롭다운 목록에서 GET을 선택한 다음 확인 표시를 선택하여 선택 사항을 저장합니다.
-
Setup(설정) 창의 Integration type(통합 유형)에서 Lambda Function(Lambda 함수)을 선택합니다.
-
Use Lambda Proxy integration(Lambda 프록시 통합 사용) 상자를 선택하지 않은 상태로 놔둡니다.
-
Lambda 함수에
GetPetsInfo
를 입력합니다. -
Lambda 함수에 대한 권한을 추가할 것인지를 묻는 메시지가 나타나면 확인(OK)을 선택합니다.
세 번째 GET 메서드 생성 방법
-
리소스(Resources) 목록에서 /petstorewalkthrough/flattensome을 선택한 다음 메서드 생성(Create Method)을 선택합니다.
-
드롭다운 목록에서 GET을 선택한 다음 확인 표시 아이콘을 선택하여 선택한 메서드를 저장합니다.
-
설정 창의 통합 유형(Integration type)에서 HTTP를, HTTP 메서드(HTTP method)에서 GET을 선택하고, 엔드포인트 URL(Endpoint URL)에서
http://petstore-demo-endpoint.execute-api.com/petstore/pets
를 입력한 다음 저장(Save)을 선택합니다.
네 번째 GET 메서드 생성 방법
-
리소스(Resources) 목록에서 /petstorewalkthrough/noflatten을 선택한 다음 작업(Actions), 메서드 생성(Create Method)을 선택합니다.
-
드롭다운 목록에서 GET을 선택한 다음 확인 표시 아이콘을 선택하여 선택한 메서드를 저장합니다.
-
설정 창의 통합 유형(Integration type)에서 HTTP를, HTTP 메서드(HTTP method)에서 GET을 선택하고, 엔드포인트 URL(Endpoint URL)에서
http://petstore-demo-endpoint.execute-api.com/petstore/pets
를 입력한 다음 저장(Save)을 선택합니다.
5단계: 메서드 설정 및 테스트
이 단계에서는 메서드 응답, 통합 요청 및 통합 응답을 구성하여 HTTP 엔드포인트 및 Lambda 함수와 연결된 GET 메서드에 대한 입력 및 출력 데이터 스키마(또는 모델)를 지정합니다. API Gateway 콘솔을 사용하여 이러한 메서드의 호출을 테스트하는 방법도 알아봅니다.
첫 번째 GET 메서드에 대한 통합을 설정하고 테스트하는 방법
-
API의 리소스(Resources) 트리에서 /petstorewalkthrough/flattenall 노드 아래의 GET을 선택합니다.
-
메서드 실행(Method Execution) 창에서 메서드 응답(Method Response)을 선택한 다음, 200 옆에 있는 화살표를 선택합니다.
-
200에 대한 응답 모델(Response Models for 200) 영역의 application/json에서 연필 아이콘을 선택하여 메서드 출력을 위한 모델 설정을 시작합니다. 모델에서 PetsModelFlattenAll을 선택한 다음 확인 표시 아이콘을 선택하여 설정을 저장합니다.
-
메서드 실행(Method Execution)과 통합 응답(Integration Response)을 차례로 선택한 다음, 200 옆에 있는 화살표를 선택합니다.
-
[매핑 템플릿(Mapping Templates)] 섹션을 확장하고 Content-Type에서 application/json을 선택합니다.
-
모델로부터 템플릿 생성(Generate template from model)에서 PetsModelFlattenAll을 선택하여
PetsModelFlattenAll
모델 이후의 매핑 템플릿을 시작점으로 표시합니다. -
매핑 템플릿 코드를 다음과 같이 수정합니다.
#set($inputRoot = $input.path('$')) { "listings" : [ #foreach($elem in $inputRoot) "Item number $elem.id is a $elem.type. The asking price is $elem.price."#if($foreach.hasNext),#end #end ] }
-
저장을 선택합니다.
-
메서드 실행(Method Execution)을 선택하고, 클라이언트(Client) 상자에서 TEST를 선택한 다음 테스트를 선택합니다. 올바르게 수행했다면 응답 본문(Response Body)에 다음이 표시됩니다.
{ "listings" : [ "Item number 1 is a dog. The asking price is 249.99.", "Item number 2 is a cat. The asking price is 124.99.", "Item number 3 is a fish. The asking price is 0.99." ] }
두 번째 GET 메서드에 대한 통합을 설정하고 테스트하는 방법
-
API의 리소스(Resources) 트리에서 /petstorewalkthrough/lambdaflattensome 노드 아래의 GET을 선택합니다.
-
메서드 실행(Method Execution)에서 메서드 응답(Method Response)을 선택합니다. 그런 다음 200 옆에 있는 화살표를 선택해 해당 섹션을 확장합니다.
-
200에 대한 응답 모델(Response Models for 200) 영역에서 콘텐츠 유형 application/json 열에 있는 연필 아이콘을 선택합니다. 모델(Model)에서 PetsModelFlattenSome을 선택한 다음 확인 표시 아이콘을 선택하여 선택 사항을 저장합니다.
-
메서드 실행(Method Execution)으로 다시 돌아갑니다. 통합 응답(Integration Response)을 선택한 다음, 200 옆에 있는 화살표를 선택합니다.
-
[매핑 템플릿(Mapping Templates)] 섹션에서 Content-Type 아래 application/json을 선택합니다.
-
템플릿 생성(Generate template)에서 PetsModelFlattenSome을 선택하여 이 메서드의 출력에 대한 매핑 스크립트 템플릿을 표시합니다.
-
코드를 다음과 같이 수정한 다음, 저장을 선택합니다.
#set($inputRoot = $input.path('$')) [ #foreach($elem in $inputRoot) { "description" : "Item $elem.id is a $elem.type.", "askingPrice" : $elem.price }#if($foreach.hasNext),#end #end ]
-
메서드 실행(Method Execution)을 선택하고, 클라이언트(Client) 상자에서 TEST를 선택한 다음 테스트를 선택합니다. 올바르게 수행했다면 응답 본문(Response Body)에 다음이 표시됩니다.
[ { "description" : "Item 1 is a dog.", "askingPrice" : 249.99 }, { "description" : "Item 2 is a cat.", "askingPrice" : 124.99 }, { "description" : "Item 3 is a fish.", "askingPrice" : 0.99 } ]
세 번째 GET 메서드에 대한 통합을 설정하고 테스트하는 방법
-
API의 리소스(Resources) 트리에서 /petstorewalkthrough/flattensome 노드 아래의 GET을 선택합니다.
-
메서드 실행(Method Execution) 창에서 메서드 응답(Method Response)을 선택합니다.
-
옆에 있는 화살표를 선택합니다..
-
200에 대한 응답 모델(Response Models for 200) 영역의 application/json에서 연필 아이콘을 선택합니다. 모델(Model)에서 PetsModelFlattenSome을 선택한 다음 확인 표시 아이콘을 선택하여 선택 사항을 저장합니다.
-
메서드 실행(Method Execution)으로 되돌아가 통합(Integration)을 선택합니다.
-
200 옆에 있는 화살표를 선택해 해당 섹션을 확장합니다.
-
[매핑 템플릿(Mapping Templates)] 영역을 확장합니다. Content-Type은 application/json을 선택합니다. 템플릿 생성(Generate template)에서 PetsModelFlattenSome을 선택하여 이 메서드의 출력에 대한 매핑 스크립트 템플릿을 표시합니다.
-
코드를 다음과 같이 수정합니다.
#set($inputRoot = $input.path('$')) [ #foreach($elem in $inputRoot) { "description": "Item $elem.id is a $elem.type.", "askingPrice": $elem.price }#if($foreach.hasNext),#end #end ]
-
저장을 선택합니다.
-
메서드 실행(Method Execution)으로 돌아가서 클라이언트(Client) 상자에서 TEST를 선택합니다. 그런 다음 테스트를 선택합니다. 올바르게 수행했다면 응답 본문(Response Body)에 다음이 표시됩니다.
[ { "description": "Item 1 is a dog.", "askingPrice": 249.99 }, { "description": "Item 2 is a cat.", "askingPrice": 124.99 }, { "description": "Item 3 is a fish.", "askingPrice": 0.99 } ]
네 번째 GET 메서드에 대한 통합을 설정하고 테스트하는 방법
-
API의 리소스(Resources) 트리에서 /petstorewalkthrough/noflatten 노드 아래의 GET을 선택합니다.
-
메서드 실행(Method Execution) 창에서 메서드 응답(Method Response)을 선택한 다음, 200 섹션을 확장합니다.
-
200에 대한 응답 모델(Response Models for 200) 영역의 application/json에서 연필 아이콘을 선택하여 이 메서드의 응답 모델을 업데이트합니다.
-
PetsModelNoFlatten을 application/json의 콘텐츠 유형 모델로 선택한 후 확인 표시 아이콘을 선택하여 선택 사항을 저장합니다.
-
메서드 실행(Method Execution)과 통합 응답(Integration Response)을 차례로 선택한 다음, 200 옆에 있는 화살표를 선택하여 해당 섹션을 확장합니다.
-
매핑 템플릿(Mapping Templates) 섹션을 확장합니다. Content-Type은 application/json을 선택합니다. 템플릿 생성(Generate template)에서 PetsModelNoFlatten을 선택하여 이 메서드의 출력에 대한 매핑 스크립트 템플릿을 표시합니다.
-
코드를 다음과 같이 수정합니다.
#set($inputRoot = $input.path('$')) [ #foreach($elem in $inputRoot) { "number": $elem.id, "class": "$elem.type", "salesPrice": $elem.price }#if($foreach.hasNext),#end #end ]
-
저장을 선택합니다.
-
메서드 실행(Method Execution)으로 되돌아가 클라이언트(Client) 상자에서 TEST를 선택한 다음 테스트를 선택합니다. 올바르게 수행했다면 응답 본문(Response Body)에 다음이 표시됩니다.
[ { "number": 1, "class": "dog", "salesPrice": 249.99 }, { "number": 2, "class": "cat", "salesPrice": 124.99 }, { "number": 3, "class": "fish", "salesPrice": 0.99 } ]
6단계: API 배포
이 단계에서는 API를 API Gateway 콘솔 외부에서 호출을 시작할 수 있도록 배포합니다.
API를 배포하려면
-
리소스 창에서 API 배포를 선택합니다.
-
배포 스테이지에서
test
를 선택합니다. -
Deployment description(배포 설명)에
Using models and mapping templates walkthrough
을 입력합니다 -
[Deploy]를 선택합니다.
7단계: API 테스트
이 단계에서는 API Gateway 콘솔 외부로 이동하여 HTTP 엔드포인트 및 Lambda 함수와 상호 작용합니다.
-
URL 호출(Invoke URL) 옆에 있는 단계 편집기(Stage Editor) 창에서 URL을 클립보드로 복사합니다. 다음과 같아야 합니다.
https://
my-api-id
.execute-api.region-id
.amazonaws.com/test
-
이 URL을 새 브라우저 탭의 주소 표시줄에 붙여 넣습니다.
-
/petstorewalkthrough/noflatten
을 추가하여 다음과 같이 되도록 정합니다.https://
my-api-id
.execute-api.region-id
.amazonaws.com/test
/petstorewalkthrough/noflatten해당 URL로 이동합니다. 다음 정보가 표시되어야 합니다.
[ { "number": 1, "class": "dog", "salesPrice": 249.99 }, { "number": 2, "class": "cat", "salesPrice": 124.99 }, { "number": 3, "class": "fish", "salesPrice": 0.99 } ]
-
petstorewalkthrough/
이후에noflatten
을flattensome
으로 대체합니다. -
해당 URL로 이동합니다. 다음 정보가 표시되어야 합니다.
[ { "description": "Item 1 is a dog.", "askingPrice": 249.99 }, { "description": "Item 2 is a cat.", "askingPrice": 124.99 }, { "description": "Item 3 is a fish.", "askingPrice": 0.99 } ]
-
petstorewalkthrough/
이후에flattensome
을flattenall
으로 대체합니다. -
해당 URL로 이동합니다. 다음 정보가 표시되어야 합니다.
{ "listings" : [ "Item number 1 is a dog. The asking price is 249.99.", "Item number 2 is a cat. The asking price is 124.99.", "Item number 3 is a fish. The asking price is 0.99." ] }
-
petstorewalkthrough/
이후에flattenall
을lambdaflattensome
으로 대체합니다. -
해당 URL로 이동합니다. 다음 정보가 표시되어야 합니다.
[ { "description" : "Item 1 is a dog.", "askingPrice" : 249.99 }, { "description" : "Item 2 is a cat.", "askingPrice" : 124.99 }, { "description" : "Item 3 is a fish.", "askingPrice" : 0.99 } ]
8단계: 정리
이제 이 연습을 위해 생성한 Lambda 함수가 더 이상 필요하지 않은 경우 해당 함수를 삭제할 수 있습니다. 함께 제공되는 IAM 리소스도 삭제할 수 있습니다.
주의
API가 의존하는 Lambda 함수를 삭제할 경우 해당 API가 더 이상 작동하지 않습니다. Lambda 함수 삭제는 실행 취소할 수 없습니다. Lambda 함수를 다시 사용하려면 함수를 재생성해야 합니다.
Lambda 함수가 의존하는 IAM 리소스를 삭제할 경우 Lambda 함수 및 이 함수를 의존하는 모든 API가 더 이상 작동하지 않습니다. IAM 리소스 삭제는 실행 취소할 수 없습니다. IAM 리소스를 다시 사용하려면 리소스를 재생성해야 합니다. 이 연습 및 다른 연습을 위해 만든 리소스를 계속 실험하려는 경우 Lambda 호출 역할이나 Lambda 실행 역할을 삭제하지 마십시오
Lambda 함수를 삭제하려면
-
AWS Management Console에 로그인하고 AWS Lambdahttps://console.aws.amazon.com/lambda/에서
콘솔을 엽니다. -
Lambda: 함수 목록(Lambda: Function list) 페이지의 함수 목록에서 GetPetsInfo 옆에 있는 버튼을 선택한 다음, 작업(Actions), 삭제(Delete)를 선택합니다. 확인 메시지가 나타나면 삭제를 다시 선택합니다.
연결된 IAM 리소스를 삭제하려면
-
https://console.aws.amazon.com/iam/
에서 IAM 콘솔을 엽니다. -
세부 정보 영역에서 역할을 선택합니다.
-
APIGatewayLambdaExecRole을 선택한 다음 역할 작업(Role Actions), 역할 삭제(Delete Role)를 선택합니다. 확인 메시지가 나타나면 [Yes, Delete]를 선택합니다.
-
세부 정보 영역에서 정책을 선택합니다.
-
APIGatewayLambdaExecPolicy를 선택한 다음 정책 작업(Policy Actions), 삭제(Delete)를 선택합니다. 확인 메시지가 나타나면 삭제를 선택합니다.
이 연습을 마칩니다.