Apigee Edge 문서입니다.
Go to the
Apigee X 문서로 이동합니다. info
다음 튜토리얼에서는 Apigee에서 호스팅하는 기본 Node.js 런타임 환경인 호스팅된 대상을 사용하여 Node.js 애플리케이션을 Edge에 배포하는 방법을 설명합니다.
이 튜토리얼에서는 다음 작업을 안내합니다.
- Edge UI를 사용하여 Node.js 앱을 호스팅된 대상에 배포합니다.
- 로컬 개발 머신에서 Node.js 앱을 호스팅된 대상에 배포합니다.
- 기존 프록시를 기존 Edge Node.js 대상 구현으로 호스팅된 대상으로 마이그레이션합니다.
Edge UI를 사용하여 Node.js 앱을 호스팅된 대상에 배포
이 튜토리얼에서는 Edge UI를 사용하여 간단한 Node.js 앱을 호스팅된 대상에 배포합니다. 튜토리얼을 완료하면 호스팅된 대상 프록시의 기본 구조와 콘텐츠, 배포 및 빌드 로그 파일에 액세스하는 방법을 이해하게 됩니다.
로그인
- apigee.com/edge로 이동합니다.
- Apigee 로그인 사용자 인증 정보를 입력하여 로그인합니다.
새 프록시 만들기
- 측면 탐색 메뉴에서 개발 > API 프록시 를 선택합니다.
- + 프록시 를 클릭합니다.
- 프록시 만들기 페이지에서 호스팅된 대상 을 선택합니다.
- 다음 을 클릭합니다.
- 프록시 이름 필드에
hello-hosted-targets를 입력합니다. - 'Hello World' 샘플이 선택되어 있는지 확인합니다.
- 다음 을 클릭합니다.
- 보안 페이지에서 승인에 대해 통과 (없음) 를 선택합니다.
- 다음 을 클릭합니다.
- 다음 을 클릭합니다.
- 빌드 페이지에서 테스트 환경이 선택되어 있는지 확인합니다. 프록시 유형이 호스팅된 대상 입니다.
- 빌드 및 배포 를 클릭합니다. 프록시 배포가 완료되는 데 몇 분 정도 걸릴 수 있습니다.
- 프록시가 성공적으로 배포되면 페이지 하단에서 hello-hosted-targets 프록시 보기 를 클릭합니다.
- API 프록시를 호출합니다. 가장 쉬운 방법은 Trace
탭으로 이동하여 Trace
세션을 시작하고 전송 을 클릭하는 것입니다. 다음 응답과 함께 상태 200이 표시됩니다.
{"date":"2018-09-26T14:23:04.550Z","msg":"Hello, World!"}
프록시 검사
- Edge UI에서 개발 탭을 클릭합니다.
- 탐색기에서 대상 엔드포인트 아래의 기본값 을 선택합니다.
- 코드 편집기에서 빈
<HostedTarget/>하위 요소가<TargetEndpoint>요소 아래에 있음을 확인합니다. 이 빈 태그는 필수입니다. Edge에 프록시의 대상이 호스팅된 대상 환경에 배포된 애플리케이션임을 알립니다.
- 탐색기에서 스크립트 섹션의 콘텐츠를 확인합니다. Node.js 앱 파일은 호스팅됨 라벨 아래에 나열됩니다.

- Edge UI의 스크립트 에서 호스팅됨 아래에 나열된 파일을 검사합니다.
- app.yaml 파일에는 구성 정보가 포함되어 있습니다. 예를 들어 런타임 시 Node.js 애플리케이션에서 사용할 수 있는 환경 변수를 추가할 수 있습니다. 이 예시에서는 이 파일을 수정할 필요가 없습니다.
- index.js 파일은 Node.js 앱의 기본 파일입니다.
- 앱에 모듈 종속 항목이 있는 경우 package.json에 나열해야 합니다.
로그 파일 보기
애플리케이션 로그 파일은 빌드 단계와 런타임 중에 발생하는 문제를 디버깅하는 데 유용할 수 있습니다.
요약
- 간단한 Node.js 애플리케이션을 호스팅된 대상 환경에 배포하고 Edge UI에서 테스트했습니다.
- 호스팅된 대상 프록시에는 대상
엔드포인트에
<HostedTarget/>이라는 특수한 빈 태그가 필요하다는 것을 배웠습니다. - Edge에서 모듈 종속 항목을 자동으로 로드하고 종속 항목은
package.json파일에 나열해야 한다는 것을 배웠습니다. - 빌드 및 런타임 로그 파일을 확인하는 방법도 배웠습니다.
시스템에서 Edge로 Node.js 배포
이 섹션에서는 apigeetool을 사용하여 로컬 시스템에서 호스팅된 대상으로 독립형 Node.js 애플리케이션을 배포하는 방법을 설명합니다. apigeetool
유틸리티는 Node.js 앱을 새 호스팅된 대상 프록시에 번들링하고 Edge에 배포합니다.
apigeetool 설치
개발자가 프록시 코드를 Edge에 배포하는 데는 apigeetool을 사용하는 것이 좋습니다. apigeetool을 설치하려면 다음 NPM 명령어를 실행합니다.
npm install -g apigeetool
Node.js 앱 만들기
간단한 Node.js 앱의 코드가 제공됩니다.
- Node.js 앱의 디렉터리를 만듭니다. 디렉터리 이름을 node-hosted-express 로 지정합니다.
- cd 명령어로 새 디렉터리로 이동합니다.
- index.js 라는 파일을 만들고 이 코드를 여기에 복사합니다.
- package.json 이라는 파일을 만들고 이 코드를 여기에 복사합니다. express 모듈이 종속 항목으로 나열되어 있습니다.
- app.yaml 이라는 파일을 만들고 이 코드를 여기에 복사합니다.
- 디렉터리가 다음과 같이 표시되는지 확인합니다.
ls app.yaml index.js package.json
var express = require('express') var app = express() app.get('/', function(req, res) { res.json({ hello: "Hello World!" }) }) app.get('/hello/:name', function(req, res) { var name = req.params.name res.json({ hello: "hello " + name }) }) var server = app.listen(process.env.PORT || 9000, function() { console.log('Listening on port %d', server.address().port) })
{
"name": "hello-world",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"start": "node index.js --use_strict"
},
"author": "",
"license": "",
"dependencies": {
"express": "^4.16.0"
}
}runtime: node runtimeVersion: 8 application: my-express-app env: - name: NODE_ENV value: production - name: LOG_LEVEL value: 3
앱 코드에 필요한 디렉터리 구조 검토
Node.js 앱은 표준 Node.js 앱과 동일한 구조를 가져야 합니다. 하지만 이러한 요구사항을 Edge에 apigeetool을 사용하여 배포하기 전에 준수해야 합니다.
- app.yaml 매니페스트 파일은 필수이며 앱의 루트 디렉터리에 있어야 합니다. 이 파일에 대한 자세한 내용은 매니페스트 파일을 참조하세요.
- package.json 파일이 필요합니다. 앱에 필요한 종속 항목을 나열해야 합니다.
- node_modules 폴더는 필수가 아닙니다. Node.js 앱이 배포되면 Edge에서 npm install 을 실행합니다. 종속 항목을 package.json에서 가져옵니다. **npm** 을 통해 사용할 수 없는 커스텀 모듈이 있는 경우에만 node_modules 를 명시적으로 제공해야 합니다.
프록시 배포
- 터미널에서 Node.js 애플리케이션의 루트 디렉터리로 cd 합니다.
- deployhostedtarget 명령어와 함께 apigeetool 을 실행합니다.
apigeetool deployhostedtarget -o org -e env -n proxy-name -b /node-hosted-express -u username
여기서 -n 은 새 프록시에 지정할 이름입니다. 조직 내에서 고유해야 합니다. 이름에 사용할 수 있는 문자는
다음으로 제한됩니다. a-z0-9._\-$%
예를 들면 다음과 같습니다.
apigeetool deployhostedtarget -o myorg -e test -n node-hosted-express -b /node-hosted-express -u jdoe@apigee.com
apigeetool 사용에 대한 자세한 내용은 https://github.com/apigee/apigeetool-node를 참조하세요.
프록시 테스트
cURL 명령어, Postman과 같은 REST 클라이언트 또는 Trace 도구의 Edge UI 를 사용하여 프록시를 테스트할 수 있습니다. 다음은 cURL 명령어의 예시입니다.
curl http://myorg-test.apigee.net/node-hosted-express
{"date":1506992197427,"msg":"hello-world"}빌드 로그 가져오기
빌드 로그에는 Node.js 앱 배포 및 빌드와 관련된 출력이 표시됩니다. 로그 파일도 참조하세요.
apigeetool getlogs -u username -o org -e env --hosted-build -n proxy-name
예를 들면 다음과 같습니다.
apigeetool getlogs -u jdoe@apigee.com -o myorg -e test --hosted-build -n node-hosted-express
런타임 로그 가져오기
런타임 로그에는 실행 중인 앱과 관련된 출력이 표시됩니다. 런타임 로그는 환경으로 범위가 지정되며 현재 배포된 프록시 수정 버전의 로그를 반환합니다. 로그 파일도 참조하세요.
apigeetool getlogs -u username -o org -e env --hosted-runtime -n proxy-name
예를 들면 다음과 같습니다.
apigeetool getlogs -u jdoe@apigee.com -o myorg -e test --hosted-runtime -n node-hosted-express
Edge UI에서 프록시 보기
배포가 성공적으로 완료되면 Edge UI의 API 프록시 부분에서 프록시를 보고 수정할 수 있습니다.
기존 Node.js 프록시를 호스팅된 대상 프록시로 마이그레이션
이 섹션에서는 기존 기존 Node.js 대상 구현을 사용하는 기존 Edge API 프록시를 호스팅된 대상으로 수동으로 마이그레이션하는 방법을 설명합니다. 또한 마이그레이션 단계를 수행한 후 프록시를 배포하는 방법도 설명합니다.
마이그레이션 단계에서는 API 프록시 구조, 정책, 흐름, 기타 구성 요소가 유지됩니다. 아래에 설명된 대로 4단계 로 마이그레이션을 수행한 후 apigeetool을 사용하여 마이그레이션된 프록시를 배포할 수 있습니다.
1단계: 프록시 파일 구조 조정
파일 구조를 조정하려면 API 프록시가 로컬 파일 시스템에 있어야 합니다. 프록시가
Edge에 배포된 경우 계속하기 전에 다운로드해야 합니다. 기존 구성에서 Node.js 코드가 포함된 Edge 프록시 '번들'은 이 파일 구조를 따릅니다.
Node.js 애플리케이션 코드는 resources/node 디렉터리에 배치됩니다.
apiproxy/
policies/
proxies/
targets/
resources/
node/
Your application code
호스팅된 대상의 경우 Node.js 앱의 루트 디렉터리를
resources/hosted라는 디렉터리 아래에 배치해야 합니다. resources/hosted 라는 새 디렉터리를 만들고 resources/node의 콘텐츠를 이 디렉터리로 이동하면 됩니다. 그런 다음 resources/node 디렉터리를 삭제할 수 있습니다.
apiproxy/
policies/
proxies/
targets/
resources/
hosted/
Your application code2단계: 매니페스트 파일 추가
app.yaml이라는 매니페스트 파일을 만들고
apiproxy/resources/hosted 디렉터리에 배치합니다.
다음은 app.yaml 파일의 예시입니다. 런타임이
Node.js임을 지정합니다 (필수). 또한 실행 환경에서 환경 변수
(Node.js 앱에서 액세스할 수 있는 변수)를 만듭니다. 환경 변수는 선택사항이며
여기서는 예시로만 표시됩니다. 자세한 내용과 예시는 매니페스트 파일을 참조하세요.
runtime: node
env:
- name: NODE_ENV
value: production
다음 예시는 호스팅된 대상 배포를 위한
프록시의 올바른 위치에 있는 Node.js 프로젝트 구조를 보여줍니다.
apiproxy/
resources/
hosted/
index.js
node_modules/
app.yaml
package.json3단계: package.json 파일이 있는지 확인
기존 Edge Node.js 프록시에서 package.json은
선택사항이었습니다. 하지만 호스팅된 대상의 경우 apiproxy/resources/hosted 디렉터리에 하나를 제공해야 합니다. 이 파일에서 앱에 필요한 종속 항목을 지정해야 합니다.
4단계: 프록시의 대상 엔드포인트 수정
기존 Node.js 프록시에는 <ScriptTarget>
이라는 태그가 대상 엔드포인트 파일 (일반적으로 /apiproxy/targets/default.xml)에 있어야 합니다.
호스팅된 대상의 경우 <HostedTarget/>이라는 빈 태그를 추가해야 합니다.
파일에 ScriptTarget 태그가 있는 경우 삭제하면 됩니다.
예를 들면 다음과 같습니다.
<?xml version="1.0" encoding="UTF-8"?>
<TargetEndpoint name="default">
<Description />
<FaultRules />
<PreFlow name="PreFlow">
<Request />
<Response />
</PreFlow>
<PostFlow name="PostFlow">
<Request />
<Response />
</PostFlow>
<Flows />
<HostedTarget />
</TargetEndpoint>
프록시 배포
이제 apigeetool deployproxy 명령어를 사용하여 프록시를 배포할 수 있습니다.
- 프록시의 루트 디렉터리인 /apiproxy 로 cd 합니다.
- 이 명령어를 사용하여 프록시를 배포합니다.
apigeetool deployproxy -u username -o org -e env -n proxy-name -d .
예를 들면 다음과 같습니다.
apigeetool deployproxy -u jdoe -o docs -e test -n hello-world -d .
apigeetool 사용에 대한 자세한 내용은
https://github.com/apigee/apigeetool-node/blob/master/README.md를 참조하세요.
프록시 테스트
cURL 명령어, Postman과 같은 REST 클라이언트 또는 Trace 도구의 Edge UI 를 사용하여 프록시를 테스트할 수 있습니다. 다음은 cURL 명령어의 예시입니다.
curl http://myorg-test.apigee.net/hello-world Hello,World!