<ph type="x-smartling-placeholder"></ph>
현재 Apigee Edge 문서를 보고 있습니다.
Apigee X 문서. 정보
소개
이 주제에서는 로컬 파일의 기존 프록시에 Node.js 애플리케이션을 추가하는 방법을 설명합니다. Apigee Edge에 프록시를 배포하는 방법을 알아봅니다.
개발 환경 준비
이 주제에서는 로컬 클러스터에 프록시 개발 환경이 이미 설정되어 있다고 가정합니다. Node.js 애플리케이션을 시스템에 통합하려고 합니다.
Node.js 앱이 포함된 프록시 애플리케이션의 기본 구조는 다음 패턴을 따릅니다.
아래 그림과 같이 기본 /apiproxy가 사용됨
리소스, 대상, 프록시용 폴더 및 하위 폴더를 설정합니다. apiproxy/resources/node 폴더에 Node.js 파일이 있어야 합니다.
있습니다. 다른 폴더에는 프록시 및 대상 엔드포인트, 프록시 흐름,
조건부 흐름 등이 있습니다 API 프록시 구조에 대한 자세한 설명은
API 프록시 구성 참조를 확인하세요.
프록시의 일부인 Node.js 코드는 /apiproxy/resources/node. Edge는 바로 이 부분에서 포드를 찾을 수 있습니다
ScriptTarget으로 Node.js 대상 지정
Node.js를 프록시에 통합하기 위한 핵심은 <ScriptTarget> 요소의 대상 엔드포인트의 XML 파일입니다. 프록시 파일 구조에서 이 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>은 요소는 백엔드 서비스의 URL인 Apigee 모의 대상 서비스를 생성합니다.
그러나 Node.js의 경우 Node.js 애플리케이션 자체 가 타겟입니다. 이 작업은 <ScriptTarget> apiproxy/targets/default.xml 파일에 있습니다.
대상 대신 <HTTPTargetConnection> 요소를 사용하여 백엔드 서비스에서 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 구성을 참조하세요.
이 예에서는 기본 Node.js 파일의 소스 코드인 server.js를 참조하세요. 기본 HTTP는 'Hello World!'를 반환하는 요청을 수신할 때:
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'); });
요약하자면 main Node.js 애플리케이션이 한 파일로 구현되어 있다고 가정합니다.
server.js
이며 엔드포인트 구성이
이름이 default.xml
인 경우
Node.js 스크립트의 구조는 다음과 같습니다.
/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 애플리케이션 에지에서 실행되지 않습니다
npm 유틸리티를 사용하여 파일 시스템에 모든 종속 항목을 쉽게 가져올 수 있습니다.
- Node.js 애플리케이션의 기본 디렉터리에서 다음을 실행합니다.
$ npm install
또는
$ npm update
종속 항목이 설치되면 프록시를 Edge에 배포할 수 있습니다.
Apigee Edge에 Node.js 앱 배포
배포하기 전에 다음을 위한 조직 이름, 사용자 이름, 비밀번호를 알아야 합니다. Apigee Edge 계정. 이 정보가 필요합니다. 배포 도구 명령어를 올바르게 형성합니다.
명령어는 다음과 같습니다. 이 백도어는 (-d 플래그를 사용하여) 현재 디렉터리의 루트 디렉터리에 사용할 수 있습니다 프록시가 foo라고 하는 경우 foo 디렉터리:
$ apigeetool deployproxy -u username -p password -o org -e test -n hellonode -d .
$ apigeetool deployproxy -h
요약하면 다음과 같습니다.
- -n 이 플래그를 사용하면 앱을 배포할 때 생성될 프록시의 이름을 지정합니다. 보시다시피 이름을 지정할 수 있습니다
- -d는 루트 디렉토리로 이동합니다.
- -o, -e, -u, -p는 조직 이름을 지정합니다. 사용자 이름 및 비밀번호를 설정할 수 있습니다
새 API 프록시 테스트
Node.js 앱을 기존 API 프록시에 추가하고 프록시를 Apigee에 배포했습니다. 엣지! 테스트하려면 이 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 디버깅 및 문제 해결을 참조하세요. 프록시를 사용합니다.