2016-09-11 6 views
0

나는 API 게이트웨이와 AWS 람다 아주 새로운 오전 나는 다음과 같은 요소 시나리오에서 사용하는 것을 시도하고있다 :API 게이트웨이 및 람다 기능 : 첫 번째 방법

  • VPC를 개인과와 공공 서브넷
  • 설치된 램프를 가진 AMI EC2 (무료 계층)
  • 텍스트와 간단한 index.html을 페이지 (뭔가 "이 테스트 페이지입니다"라고) 내가하고 싶은 무엇

를 펀치 할 수있는 것입니다.은 AWS 설명서에서 제안 된 것처럼 API 게이트웨이와 람다를 사용합니다. 그런 다음 첫 번째 람다 함수에 대해 기본 Hello World 람다 예제 (AWS 청사진 중 하나)를 다시 사용하고 마법사에서 요청한대로 VPC 세부 정보 (개인 서브넷도 포함)를 포함 시켰습니다. 또한 하나의 리소스 (이 경우 myexample)와 람다 함수 통합 유형 및 Hello World 함수가있는 Get 메서드로 샘플 API를 만들었습니다. 설명서에 따라 올바른 사용 권한 (http://docs.aws.amazon.com/apigateway/latest/developerguide/create-lambda-roles.html)을 만들었습니다. 내 API에서 GET 메소드를 테스트했으며 AWS 기존 청사진에 따라 응답이 "Hello World"로 올바르게 반환됩니다. 이것이 매우 순진한 질문처럼 들리 겠지만, 내가 내 VPC를 칠 수 있다는 것을 정말로 증명했는지 확신 할 수 없다. 예를 들어 index.html 페이지에서 샘플 텍스트를 반환하고 싶습니다. 가능한가요? 이 특정 시나리오에서 AWS 람다의 목적을 오해 했습니까?

그래서, 나는 4.3 노드 JS에 다음과 같이 넣어 가지고 : :

'use strict'; 
console.log('We are about to send a Get Request'); 

exports.handler = function(event, context, callback) { 
    var http = require("http") 
    var request = http.get("http://domain/example/index.html") 
    console.log('"This is my request":"' + request + '"'); 
    callback(null, "The URL is succesfully retrieved") 
}; 

을 시험이 성공적으로 실행 바로 내가 오전

편집, 당신의 도움을 주셔서 감사합니다 VPC에서 실행되는 페이지를 칠 수 있다는 것을 증명한다고 말하면서?

답변

1

맞습니다. 람다 기능이 동일한 VPC에서 실행되도록 구성되어있는 한 람다 기능을 통해 VPC의 끝점으로 HTTP 요청을 할 수 있습니다.

따라서 API 게이트웨이를 사용하여 Lambda를 호출하고 VPC 내의 HTTP 끝점에서 응답을 프록시 할 수 있습니다.

API 게이트웨이는 VPC에서 HTTP 끝점을 직접 호출 할 수 없으므로 Lambda를 사용하는 현재 접근 방식을 권장합니다.

+0

, 감사합니다. 내가 실제로 올바른 방향으로 나아 갔는지 여부를 알아 내고 싶습니다. 예가 작동하는 것 같고 VPC 내에서 해당 페이지를 칠 수 있습니다. HTTP 리소스 대신 REST 끝점을 사용하여 비슷한 작업을 수행 할 수 있습니다. 그 맞습니까? – paranza

+0

이 방법을 사용할 수는 있지만 확장 성이 없다. 왜냐하면 람다가 VPC의 모든 리소스에 액세스해야 할 때마다 ENI (탄력적 인 네트워크 인터페이스)와 충분한 IP 주소가 필요하기 때문에 이러한 것들이 까다로울 수 있기 때문이다. 이 방향으로 이동하기 전에 http://docs.aws.amazon.com/lambda/latest/dg/vpc.html에서 모든 문제를 간략하게 살펴볼 것을 권장합니다. –

+0

@paranza :이 접근 방식에 대한 귀하의 경험은 어땠습니까? –

-1

람다 (Rambda) 기능 내에서 사설 IP로 EC2를 연결할 수 있습니다. 즉, 람다 (Lambda) 기능에서 VPC를 사용할 수 있습니다.

+1

사용자의 질문에 대답하지 않습니다. – error2007s

+0

@Ka Hou leong, 입력 해 주셔서 감사합니다. 구성 -> 고급 설정에서 람다 기능을 설정할 때, 내가 선택한 VPC에 연결할 수 있습니다. 그 VPC에서 저는 Apache와 하나의 샘플 웹 페이지로 Lamp를 실행합니다 (현재로서는 유일한 인스턴스입니다). 이게 네가 말하는거야? EC2 인스턴스에 성공적으로 연결할 수 있다는 것을 내 테스트에서 이미 입증하고 있습니까? 나는 Lambda와 함께 index.html 페이지의 헤더를 얻을 수 있는지를 고민하고 있습니다. 감사합니다. 덕분에 – paranza

관련 문제