<ph type="x-smartling-placeholder"></ph>
현재 Apigee Edge 문서를 보고 있습니다.
Apigee X 문서. 정보
지원되는 Node.js 버전 Apigee Edge인가요?
Edge는 현재 Node.js 0.10.32를 지원합니다.
표준 Node.js 모듈의 정의 지원하나요?
다음 표를 사용하여 표준 Node.js 모듈이 무엇인지 확인하세요. 포함되어 있습니다 포함된 모듈이 부분적으로만 지원되는 경우도 있습니다. 이러한 모듈은 API를 사용할 수 있습니다모듈 | 상태 | 참고 |
---|---|---|
assert |
지원됨 | |
buffer |
지원됨 | |
child_process |
제한됨 | 하위 프로세스를 생성하려고 시도하면 예외가 발생합니다. 하지만 "포크" 아래 첨자 생성에 지원됩니다. |
cluster |
사용 중지됨 | cluster.isMaster 메서드는 항상 true를 반환하며 다른 메서드는 구현되지 않습니다. 각 Node.js 스크립트의 사본 1개가 각 Edge 메시지 프로세서에 배포됩니다. |
crypto |
지원됨 | |
dns |
지원됨 | |
domain |
지원됨 | |
dgram |
제한됨 | Apigee 환경의 Node.js 애플리케이션이 다음 서비스의 서비스에 액세스할 수 없게 됩니다. UDP를 통해 인터넷에 연결할 수 있었습니다. |
events |
지원됨 | |
fs |
제한됨 | 파일 시스템 액세스는 스크립트가 시작된 디렉토리로 제한됩니다.
/resources/node 디렉터리에 있습니다. Node.js 스크립트는 파일 내에서 파일을 읽고 쓸 수 있습니다.
예를 들어 임시 스크래치 영역으로서 이 디렉터리를 만들 수는 있지만
지정할 수 있습니다 |
http |
지원됨 | 수신되는 요청의 가상 호스트와 경로는 HTTP 모듈을 의미합니다 'http 및 https 지원 이해 모듈 를 참조하세요. |
https |
지원됨 | 'https' 생성 'http'와 동일하게 동작합니다. 있습니다. 'http 및 https 모듈 지원 이해'를 참조하세요. 자세히 알아보기 확인할 수 있습니다 |
module |
지원됨 | |
net |
제한됨 | 들어오는 TCP 연결을 수신 대기하려고 하면 예외가 발생합니다. |
path |
지원됨 | |
module |
지원됨 | |
process |
부분 지원 | 사용자 ID, 그룹 멤버십 및 작업 디렉터리를 조작하는 기능은 지원됩니다. |
punycode |
지원됨 | |
querystring |
지원됨 | |
readline |
사용 중지됨 | Apigee Edge에서 실행되는 스크립트에는 표준 입력이 없습니다. |
repl |
사용 중지됨 | Apigee Edge에서 실행되는 스크립트에는 표준 입력이 없습니다. |
module |
포함됨 | |
STDIO |
지원됨 |
표준 출력 및 오류를 Apigee Edge 내의 로그 파일로 라우팅합니다. 구성할 수 있습니다 Node.js 로그를 클릭하면 이러한 로그를 볼 수 있습니다. API 프록시의 Apigee Edge 관리 UI에 있습니다. Apigee Edge에서 실행되는 스크립트에는 표준 입력이 없습니다. 그러나 TargetEndpoint의 ScriptTarget 요소를 사용하여 인수를 지정합니다. 다음에 대한 고급 ScriptTarget 구성을 참조하세요. 자세히 알아보세요. |
stream |
지원됨 | |
string_decoder |
지원됨 | |
timers |
포함됨 | |
tls |
지원됨 | 전송 계층 보안 (TLS) 매개변수는 기본적으로 일반 Node.js입니다. Apigee Edge에서 TLS (SSL) Node.js 모듈 사용을 참조하세요. 참조하세요. |
tty |
사용 중지됨 | Apigee Edge에서 실행되는 스크립트에는 표준 입력이 없습니다. |
url |
지원됨 | |
util |
지원됨 | |
vm |
지원됨 | |
zlib |
지원됨 |
지원되는 추가 모듈
이 섹션에는 표준 Node.js에서 지원되지 않지만 Apigee Edge에서 실행되는 Trireme 및 Trireme에서 지원하는 Trireme은 Google Cloud에서 실행되는 Apigee Edge입니다. Java 가상 머신 (JVM) 내에서 Node.js 스크립트를 실행하도록 설계되었습니다. 전체 이 모듈은 NPM에서 사용할 수 있습니다
모듈 | 설명 |
---|---|
apigee-access | Apigee Edge 플랫폼에서 실행되는 Node.js 애플리케이션에서 Apigee 관련 기능입니다. 이 모듈을 사용하여 흐름에 액세스하고 수정할 수 있습니다. 변수, 보안 저장소에서 데이터 검색, 에지 캐시, 할당량, OAuth 사용 제공합니다 Apigee 액세스 모듈을 참조하세요. |
trireme-support | Node.js 애플리케이션이 Trireme 전용 기능을 활용할 수 있도록 합니다. 현재 Java로 빌드된 Node.js 모듈을 로드하는 기능은 하나뿐입니다. 참고: loadJars가 Edge Cloud에서 지원되지 않습니다. |
trireme-xlst | XLST 처리의 추상화를 설명합니다. 이 제품은 Trireme을 위해 Node.js 애플리케이션을 실행할 때 XSLT를 효율적으로 처리할 수 있는 플랫폼 Java |
trireme-jdbc | Node.js에서 JDBC에 대한 액세스 권한을 제공합니다. 참고: Edge Cloud에서는 지원되지 않습니다. Edge Private의 경우 클래스 경로에 JDPC JAR 파일을 넣고 이 모듈을 사용할 수 있습니다. |
일반적으로 사용되는 Node.js 모듈 지원
Node.js 스크립트의 제한사항
그러나 Edge는 Node.js 스크립트에 다음과 같은 특정 제한사항을 적용합니다. 있습니다.
- Apigee Edge 환경의 Node.js 애플리케이션은 인터넷의 서비스에 액세스할 수 없습니다. UDP를 통해 통신할 수 있습니다
- 파일 시스템 액세스는 Node.js 스크립트가 실행된 디렉터리( /resources/node 디렉터리에 있습니다. Node.js 스크립트는 이 디렉터리 내의 파일을 읽고 쓸 수 있습니다. 인스턴스를 임시 스크래치 공간으로 사용할 수 있지만 파일이 얼마나 오랫동안 보관되는지에 대해서는 보장되지 않습니다. 지속됩니다
- 들어오는 TCP 연결을 수신 대기하려고 하면 예외가 발생합니다.
- 사용자 ID, 그룹 멤버십 및 작업 디렉터리를 조작하는 기능은 지원됩니다.
- 표준 입력의 경우 ScriptTarget을 사용하여 인수를 전달할 수 있습니다.
타겟 엔드포인트의 요소입니다. 고급 참조
ScriptTarget 구성을 참조하세요.
- 표준 출력의 경우 Edge에서 Node.js 로그 버튼만 사용할 수 있습니다.
관리 UI를 제공합니다. 'apigeetool getlogs'를 사용할 수도 있습니다. 명령어와 함께 사용하면 됩니다 자세한 내용은
자세한 내용은
독립형 Node.js 앱
- 네이티브 코드를 사용하는 모듈은 지원되지 않습니다.
- 프로미스 및 생성기와 같이 EcmaScript 6 기능에 종속되는 모듈은
지원됩니다.
- 'harmony-proxies'와 같은 Node.js 런타임 플래그 지원되지 않습니다.
IP 연결 제한 설정 프라이빗 클라우드용 Edge
Private Cloud용 Edge에서 Node.js 코드가 IP 주소에 액세스하지 못하도록 제한할 수 있습니다. '10.', '192.168', 로컬 호스트를 사용합니다. 이러한 IP 주소에 액세스하려고 시도하면 형식에 오류가 표시됩니다.
{ [Error: connect EINVAL] message: 'connect EINVAL', code: 'EINVAL', errno: 'EINVAL', syscall: 'connect' }
다음에서 conf_nodejs_connect.ranges.denied 속성을 설정하여 이러한 제한사항을 수정할 수 있습니다. message-processors.properties 각 메시지 프로세서의 4번째 파일을 참조하세요. 기본적으로 이 속성의 값은 다음과 같습니다.
- Edge 4.17.05 이하: conf_nodejs_connect.ranges.denied=10.0.0.0/8,192.168.0.0/16,127.0.0.1/32
- Edge 4.17.09 이상: conf_nodejs_connect.ranges.denied= (즉, 제한 없음)
이 속성을 설정하는 방법은 다음과 같습니다.
- message-processor.properties 파일을 엽니다.
있습니다 파일이 존재하지 않으면 다음과 같이 만듭니다.
> 베트남어 /<inst_root>/apigee/customer/application/message-processor.properties - 속성을 원하는 대로 설정합니다. 예를 들어 localhost에 대한 액세스만 거부합니다.
conf_nodejs_connect.ranges.denied=127.0.0.1/32 - 변경사항을 저장합니다.
- 속성 파일이 'Apigee'의 소유인지 확인하세요. 사용자:
> chown apigee:apigee /<inst_root>/apigee/customer/application/message-processor.properties - 메시지 프로세서를 다시 시작합니다.
> /<inst_root>/apigee/apigee-service/bin/apigee-service Edge-message-processor 다시 시작
http 및 https 모듈 지원 이해
Apigee Edge에서 실행되는 모든 Node.js 애플리케이션은 http
또는
수신 요청을 수신 대기하는 https
모듈 kubectl run을 사용하여
들어오는 요청을 수신 대기하지 않고 단순히 실행 후 종료됩니다.
다음에서 http
및 https
모듈의 listen
메서드
Node.js는 포트 번호를 매개변수로 사용합니다. 예를 들면 다음과 같습니다.
svr.listen(process.env.PORT || 9000, function() { console.log('The server is running.'); });
이 '포트'는 인수는 Node.js에 필요하지만 Apigee Edge는 이 매개변수를 무시합니다. 대신 Node.js 스크립트가 실행되는 API 프록시는 '가상 호스트'를 지정합니다. 익스플로이트가 Node.js 애플리케이션은 다른 Apigee Edge와 마찬가지로 동일한 가상 호스트를 사용합니다. 사용할 수 있습니다
Apigee의 모든 환경에는 하나 이상의 가상 호스트가 있습니다. 가상 호스트는 HTTP(S) 요청을 통해
Apigee 조직과의 연결 설정입니다. 환경의 모든 API 프록시는
동일한 가상 호스트를 사용하면 됩니다 기본적으로 각 환경에 2개의 가상 호스트를 사용할 수 있습니다.
default
및 secure
자세한 내용은 을(를) 참조하세요.
가상 호스트 및 API 가져오기
개발 수명 주기를 참고하세요.
apigeetool deploynodeapp
명령어는 Apigee Edge 프록시 래퍼를 생성합니다.
자세히 알아보겠습니다 배포되면 Node.js 애플리케이션이 기본값을 리슨합니다.
가상 호스트로 지정할 수 있습니다 Node.js 애플리케이션의 URL은 항상
http://{org_name}-{env_name}.apigee.net
수신 처리 요청
다른 Apigee Edge 애플리케이션과 마찬가지로 프록시 애플리케이션이
secure
가상 호스트에서 HTTPS를 사용하는 경우 HTTPS를 사용하여 수신 요청을 수락합니다.
발신 메일 처리 요청
Apigee Edge 내의 Node.js 애플리케이션은 수신 트래픽 수신 외에도
다른 Node.js와 마찬가지로 아웃바운드 요청을 수행하는 http
및 https
모듈
애플리케이션입니다. 이러한 모듈은 Node.js 내에서 항상 작동하는 것처럼 작동합니다.
tls 모듈
Apigee Edge는 Node.js tls 모듈을 지원합니다.
이 모듈은 OpenSSL을 사용하여 전송 계층 보안 (TLS) 또는 보안 소켓 계층을 제공합니다.
(SSL) 암호화된 스트림 통신. tls
모듈을 사용하여 보안을 만들 수 있습니다.
Edge에서 실행되는 Node.js 애플리케이션의 백엔드 서비스에 연결할 수 있습니다.
tls
모듈이 Apigee Edge에서 작동하는 방식을 이해하려면 다음을 수행하는 것이 중요합니다.
Apigee Edge에서 virtual hosts
가 사용되는 방식을 이해합니다. Apigee의 모든 환경
가상 호스트가 하나 이상 있어야 합니다 가상 호스트는
Apigee 조직입니다. 한 환경의 모든 API 프록시는 동일한 가상 호스트를 공유합니다. 기본적으로
각 환경에 2개의 가상 호스트(default
및)를 사용할 수 있습니다.
secure
입니다. 가상 호스트에 대한 자세한 내용은 을(를) 참조하세요.
가상 호스트 및 API 가져오기
개발 수명 주기를 참고하세요.
이제 Apigee Edge가 수신 및 발신에 대한 TLS (SSL) 통신을 어떻게 처리하는지 살펴보겠습니다. 요청:
수신 처리 요청
조직에 가상 호스트가 구성된 방식에 따라 Edge에서 다음을 제공합니다. 옵션:
- API 프록시가
default
가상 호스트에서 리슨하도록 구성된 경우 HTTP를 통한 요청을 수락합니다 - API 프록시가
secure
가상 호스트에서 리슨하도록 구성된 경우 HTTPS를 통해 요청을 수락합니다 URL은apigee.net
도메인에 속하며*.apigee.net
에 대한 와일드 카드 SSL 인증서가 사용됩니다. 앱이apigee.net
도메인에 요청을 보내면 SSL 인증서가 평소처럼요.
발신 메일 처리 요청
tls
모듈을 사용하여 발신 요청을 하는 것과 동일한 방식으로 수행할 수 있습니다.
일반적으로 Node.js에서
실행됩니다 기본적으로 클라이언트 측 키와 인증서를 추가해야 함
(.pem
파일)을 resources/node
디렉터리로 이동하여
있습니다. tls
모듈 및 메서드 사용에 관한 자세한 내용은
Node.js tls 모듈 문서
고급 ScriptTarget 구성
<TargetEndpoint name="default"> <ScriptTarget> <ResourceURL>node://hello.js</ResourceURL> <EnvironmentVariables> <EnvironmentVariable name="NAME">VALUE</EnvironmentVariable> </EnvironmentVariables> <Arguments> <Argument>ARG</Argument> </Arguments> </ScriptTarget> </TargetEndpoint>
<ph type="x-smartling-placeholder">