기존 API 프록시에 Node.js 추가

<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 애플리케이션 자체 타겟입니다. 이 작업은 &lt;ScriptTarget&gt; 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 유틸리티를 사용하여 파일 시스템에 모든 종속 항목을 쉽게 가져올 수 있습니다.

  1. 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는 조직 이름을 지정합니다. 사용자 이름 및 비밀번호를 설정할 수 있습니다
이제 모든 작업이 완료되었습니다. Node.js 앱이 API 프록시에 래핑되고, Edge에 배포되고, 실행됩니다. 그것은 요청이 대기 중이며 테스트할 준비가 되었습니다.

새 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 디버깅 및 문제 해결을 참조하세요. 프록시를 사용합니다.