Apigee Edge 문서입니다.
Go to the
Apigee X 문서로 이동합니다. info
소개
이 주제에서는 로컬 파일 시스템의 기존 프록시에 Node.js 애플리케이션을 추가하고 Apigee Edge에 프록시를 배포하는 방법을 설명합니다.
개발 환경 준비
이 주제에서는 로컬 시스템에 프록시 개발 환경이 이미 설정되어 있고 여기에 Node.js 애플리케이션을 통합하려는 것으로 가정합니다.
Node.js 앱을 포함하는 프록시 애플리케이션의 기본 구조는 아래 그림과 같이 기본 /apiproxy 폴더와 리소스, 타겟, 프록시의 하위 폴더가 있는 패턴을 따릅니다. apiproxy/resources/node 폴더는 Node.js 파일을 배치해야 하는
위치입니다. 다른 폴더에는 프록시 및 타겟 엔드포인트, 프록시 흐름,
조건부 흐름 등을 정의하는 XML 파일이 포함되어 있습니다. API 프록시 구조에 대한 자세한 설명은
API 프록시 구성 참조를 확인하세요.

프록시의 일부인 Node.js 코드는 /apiproxy/resources/node 아래에 배치해야 합니다. 배포될 때 Edge에서 코드를 찾을 것으로 예상되는 위치입니다.
ScriptTarget으로 Node.js 타겟 지정
Node.js를 프록시에 통합하는 핵심은 타겟 엔드포인트의 XML 파일에서 <ScriptTarget> 요소를 지정하는 것입니다. 프록시 파일 구조에서 이 XML 파일은 apiproxy/targets에 있습니다. 기본적으로 파일 이름은 default.xml입니다.
컨텍스트를 위해 타겟 엔드포인트는 일반적으로 일종의 백엔드 서비스를 가리킨다고 가정해 보겠습니다. 이 경우 Apigee 모의 타겟 서비스에 도달합니다. 타겟 엔드포인트 정의는 다음과 같습니다:
<TargetEndpoint name="default"> <Description/> <Flows/> <PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> <HTTPTargetConnection> <URL>http://mocktarget.apigee.net/</URL> </HTTPTargetConnection> <PostFlow name="PostFlow"> <Request/> <Response/> </PostFlow> </TargetEndpoint>
<HTTPTargetConnection> 요소는 백엔드 서비스인 Apigee 모의 타겟 서비스의 URL을 지정합니다.
하지만 Node.js의 경우 the Node.js 애플리케이션 자체 가 타겟입니다. apiproxy/targets/default.xml 파일에서 <ScriptTarget>으로 이를 지정합니다.
타겟이 <HTTPTargetConnection> 요소를 사용하여 백엔드 서비스의 URL을 지정하는 대신 Node.js 애플리케이션은 다음과 같이 <ScriptTarget> 요소를 사용하여 직접 참조됩니다.
<TargetEndpoint name="default"> <ScriptTarget> <ResourceURL>node://server.js</ResourceURL> </ScriptTarget> <PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> </TargetEndpoint>
<ResourceURL> 매개변수에는 항상 node:// 프리픽스가 있어야 하며,
그 뒤에 기본 Node.js 스크립트의 이름이 와야 합니다. 또한 앞서 언급했듯이 Node.js 리소스는
API 프록시 범위의 /apiproxy/resources/node에 있어야 합니다.
ScriptTarget에서 추가 매개변수를 설정할 수 있습니다. 자세한 내용은 고급 ScriptTarget 구성을 참조하세요.
이 예시를 위해 server.js라는 기본 Node.js 파일의 소스 코드는 다음과 같습니다. server.js. 요청을 수신할 때 'Hello World!'를 반환하는 기본 HTTP 서버입니다.
var http = require('http'); console.log('node.js application starting...'); var svr = http.createServer(function(req, resp) { resp.end('Hello, Node!'); }); svr.listen(process.env.PORT || 9000, function() { console.log('Node HTTP server is listening'); });
요약하자면 기본 Node.js 애플리케이션이 server.js라는 파일에 구현되고 엔드포인트 구성이 모두 default.xml라는 이름으로 지정된다고 가정하면 Node.js 스크립트가 포함된 API 프록시의 구조는 다음과 같습니다.
/apiproxy/proxyName.xml /apiproxy/proxies/default.xml /apiproxy/targets/default.xml /apiproxy/resources/node/server.js
애플리케이션 배포 준비
대부분의 Node.js 앱에는 종속 항목 파일이 있으며 기본 디렉터리에 package.json 파일이 포함되어 있습니다. 이 경우 배포하기 전에 npm 유틸리티를 실행하여 최상위 node_modules 디렉터리가 종속 항목으로 채워지도록 하는 것이 좋습니다. node_modules에 포함되지 않은 원격 종속 항목이 있으면 Node.js 애플리케이션 이 Edge에서 실행되지 않습니다.
npm 유틸리티를 사용하여 모든 종속 항목을 파일 시스템으로 쉽게 가져올 수 있습니다.
- Node.js 애플리케이션의 기본 디렉터리에서 다음을 실행합니다.
$ npm install
또는
$ npm update
종속 항목이 설치되면 프록시를 Edge에 배포할 준비가 된 것입니다.
Apigee Edge에 Node.js 앱 배포
배포하기 전에 Apigee Edge 계정의 조직 이름, 사용자 이름, 비밀번호를 알아야 합니다. Apigee Edge 계정 배포 도구 명령어를 올바르게 구성하려면 이 정보가 필요합니다.
명령어는 다음과 같습니다. 프록시의 루트 디렉터리에 있다고 가정합니다(-d 플래그 사용) 프록시 이름이 foo인 경우 foo 디렉터리에서 다음 명령어를 입력합니다.
$ apigeetool deployproxy -u username -p password -o org -e test -n hellonode -d .
$ apigeetool deployproxy -h
간단한 요약은 다음과 같습니다.
- -n 이 플래그를 사용하면 앱이 배포될 때 생성되는 프록시의 이름을 지정할 수 있습니다. 이 이름은 관리 UI에 표시됩니다.
- -d API 프록시의 루트 디렉터리를 지정합니다.
- -o, -e, -u, -p는 조직 이름, 배포 환경, 사용자 이름, 비밀번호를 지정합니다.
새 API 프록시 테스트
기존 API 프록시에 Node.js 앱을 추가하고 Apigee Edge에 프록시를 배포했습니다. 테스트하려면 이 cURL 명령어를 실행합니다. 기본 기본 경로 (/)가 사용된다고 가정합니다 (기본 경로 는 프록시 엔드포인트 구성 파일에 지정됨). 조직 이름을 org_name으로 대체해야 합니다. cURL이 설치되어 있지 않은 경우 브라우저에 URL을 입력할 수 있습니다.
$ curl http://org_name-test.apigee.net/
Hello, Node!
관리 UI에서 새 프록시 보기
Apigee Edge 계정에 로그인하고 API 프록시 페이지로 이동합니다. 거기에 'hellonode'라는 프록시가 표시됩니다.

'hellonode'를 클릭하여 프록시에 대한 세부정보를 확인합니다. 개발 뷰에서 업로드한 소스 코드를 확인하고, 정책을 추가하고, 흐름을 수정할 수 있습니다.

다음 단계
Apigee Edge에서 실행되는 Node.js 애플리케이션 디버깅에 대한 자세한 내용은 Node.js 프록시 디버깅 및 문제 해결을 참조하세요.