<ph type="x-smartling-placeholder"></ph>
현재 Apigee Edge 문서를 보고 있습니다.
Apigee X 문서. 정보
호스팅된 대상 프록시 배포 취소
Hosted Targets 애플리케이션이 포함된 에지 프록시 배포를 취소하면 연결된 호스팅된 대상 앱이 배포 취소되었지만 기본 애플리케이션 이미지가 삭제되지는 않습니다. 만약 프록시를 다시 배포하면 Hosted Targets 앱이 다시 배포됩니다.
Hosted 대상 프록시 삭제
호스팅 대상 프록시를 삭제하면 기본 런타임 인스턴스의 실행이 중지됩니다. 표시됩니다. 하지만 애플리케이션 코드는 유지됩니다.
로그 파일 액세스
로그 파일은 디버깅 및 문제 해결에 유용합니다. 다음 두 가지 유형의 로그 파일을 볼 수 있습니다. 호스팅된 대상 배포:
- 빌드 로그 - 호스팅된 대상 앱의 배포 및 빌드와 관련된 출력을 보여줍니다.
- 런타임 로그 - 실행 중인 Hosted Targets 앱과 관련된 출력을 표시합니다. 런타임 로그 환경으로 범위가 지정되고 현재 배포된 프록시 버전의 로그 정보가 표시됩니다.
Edge UI에서 로그 액세스
- apigee.com/edge로 이동하세요.
- 로그인 사용자 인증 정보를 입력하고 로그인을 클릭합니다.
- 개발 > API 프록시를 선택합니다.
- 로그를 보려는 프록시를 선택합니다.
- 개발 탭을 클릭합니다.
- 빌드 로그를 보려면 빌드 로그를 클릭합니다. 를 통해 개인정보처리방침을 정의할 수 있습니다.
- 런타임 로그를 보려면 런타임 로그를 클릭합니다.
API로 로그 액세스
Edge API를 사용하여 호스팅된 대상 로그를 검색할 수도 있습니다. 자세한 내용은 캐시된 Node.js 로그 가져오기
비공개 npm 저장소 사용
이 섹션에서는 Node.js 프록시를 호스팅 대상에 배포하는 방법을 설명합니다. 비공개 NPM 저장소 사용 몇 가지 권장사항을 제공합니다
비공개 저장소 사용에 대해 알아야 할 사항
Node.js 앱을 Edge에 배포하면 프로젝트의 모든 종속 항목을 자동으로 가져옵니다.
배포 프로세스의 일부로 사용할 수 있습니다
기본적으로 호스팅된 대상은 배포 시 코드에서 npm install
를 실행합니다.
그러나 개발 환경에서 비공개 NPM 저장소를 사용하는 경우 비공개 NPM 저장소는
종속 항목을 해결할 수 없는 경우에 발생합니다 포함
이 경우 해결책은 --bundled-dependencies
옵션을
배포 유틸리티인 apigeetool을 참조하세요. 참고 항목
시스템에서 Edge로 Node.js를 배포합니다.
apigeetool
에서 --bundled-dependencies
플래그를 사용하면
Node.js 앱이 호스팅된 타겟과 나열된 모든 로컬/비공개 파일에 업로드됩니다.
bundledDependencies 배열에
package.json
의 파일이 번들과 함께 압축 및 업로드됩니다.
일반적인 상황은 아니지만 공개 NPM 저장소를 내부적으로 미러링하면 배포가 실패한다는 점에 유의하세요.
배포 번들에 .npmrc
또는 package-lock.json
파일이 포함되어 있는 경우
볼 수 있습니다 이 경우 .npmrc
또는 package-lock.json
를 생략해야 합니다.
kubectl 명령어를 실행합니다
비공개 NPM 저장소를 사용하여 배포
비공개 NPM 저장소에서 제공된 모듈을 사용하려면 다음 단계를 따르세요.
- npm에 로그인합니다.
npm login
- npm 인증 토큰을 가져옵니다.
- .npmrc를 찾습니다 (~/.npmrc에 있음).
- .npmrc에서 행 끝에 다음과 같이 표시된 토큰을 확인합니다.
//registry.npmjs.org/:_authToken=****
- 또는
npm token <list | create | revoke>
명령어를 사용하여 인증 토큰 생성 또는 취소 npm-token 참조 문서를 참조하세요. - 아래 설명에 따라 키-값 맵 구성 페이지에 액세스합니다.
에지
Edge UI를 사용하여 키-값 맵 구성 페이지에 액세스하려면 다음 안내를 따르세요.
- apigee.com/edge에 로그인합니다.
- 관리 > 환경 > 키-값 맵을 클릭합니다.
Classic Edge (Private Cloud)
기본 Edge UI를 사용하여 키-값 맵 구성 페이지에 액세스하려면 다음 안내를 따르세요.
http://ms-ip:9000
에 로그인합니다. 여기서 ms-ip는 관리 서버 노드의 IP 주소 또는 DNS 이름입니다.- API > 환경 구성 > 키-값 맵을 클릭합니다.
- + 키-값 맵을 클릭합니다.
- 새 키-값 맵 대화상자에서 이름을 입력하고 암호화됨을 선택합니다.
- 추가를 클릭합니다.
- 이전에 찾거나 각 KVM에 새 항목으로 만든 인증 토큰을 추가합니다. 확인할 수 있습니다
- app.yaml 파일에 KVM 및 키를 참조하는 항목을 추가합니다. npm 인증 토큰과 연결되어 있습니다 예를 들면 다음과 같습니다.
- 최상위 name 속성은 환경의 이름에 해당합니다. 변수가 생성됩니다.
- valueRef 아래의 이름은 필요한 KVM 확인할 수 있습니다
- key 속성은 사용자가 npm 토큰에 매핑하는 키에 해당합니다. KVM에 추가됩니다
- package.json과 같은 디렉터리에 .npmrc 파일을 만듭니다. 이
파일은 다음과 같아야 합니다.
드림//registry.npmjs.org/:_authToken=${NPM_TOKEN}
registry.npmjs.org
를 사용하지 않는 경우 범위를 설정할 수 있습니다. .npmrc 파일 다음과 같은 줄을 추가하여(@myscope:registry=https://mycustomregistry.example.org
) npmrc 문서도 참고하세요. - .npmrc 파일과 포함된 app.yaml 파일을 사용하여 Node.js 프록시를 업로드하거나 업데이트합니다.
- 새 프록시 또는 업데이트된 프록시가 원하는 비공개 저장소에서 배포되고 작동하는지 확인하세요. 모듈을 마칩니다
- 프록시가 배포되지 않는 경우 빌드 로그를 확인하여 비공개 npm 모듈로 구성되어 있습니다. 이 경우 다음 단계를 따르세요.
- 개발 탭 아래에 .npmrc가 있는지 확인합니다.
- 토큰이 유효한지 확인합니다. 토큰이 있는 상태로 모듈을 로컬에 설치해 보세요. (kvm)에 있습니다.
- 맞춤 범위를 사용하는 경우 해당 범위를 설정해야 합니다.
env:
- name: NPM_TOKEN
valueRef:
name: npm_store
key: private_token
각 항목의 의미는 다음과 같습니다.
번들 종속 항목의 NPM 버전 지정
기본적으로 NPM v4는 호스팅된 타겟 환경에서 번들 종속 항목을 설치하는 데 사용됩니다.
그러나 다른 NPM 버전을 사용하려는 경우 NPM_VERSION
에서 지정할 수 있습니다.
환경 변수입니다 애플리케이션의 매니페스트 파일에서 이 변수를 설정할 수 있습니다. 자세한 내용은 매니페스트 파일 요소를 참고하세요.
번들 종속 항목을 사용하고 NPM_VERSION
를 지정하지 않으면 호스팅된 대상
는 기본적으로 NPM v4를 사용합니다. 번들 종속 항목을 사용하지 않는 경우 포함된 NPM 버전은
지정된 Node.js 런타임이 사용됩니다.
번들 종속 항목의 예
호스팅된 타겟을 사용하는 번들 종속 항목 기능을 보여주는 예는 다음을 참조하세요. 커스텀 모듈을 사용하여 호스팅된 함수로 Node.js 애플리케이션을 만드는 방법상태 점검 엔드포인트 추가
Node.js 애플리케이션에 대한 상태 점검 엔드포인트를 구현할 수 있습니다. Apigee는 Node.js 애플리케이션이 컨테이너에서 실행되고 있는지 확인하기 시작합니다.
기본적으로 Apigee가 예상하는 엔드포인트는 /health
입니다. 기본값을 변경할 수 있습니다.
이라는 환경 변수에서 엔드포인트를 지정하여
HOSTED_TARGET_HEALTH_CHECK_PATH
이 변수는 애플리케이션의 매니페스트에서 설정할 수 있습니다.
파일에서 참조됩니다. 자세한 내용은 매니페스트 파일 요소를 참고하세요.
상태 점검 엔드포인트를 구현할 필요는 없습니다. 하지만 Cloud Shell에서 상태 점검을 구현하면 엔드포인트에서 다음을 참고하세요.
- Apigee가 엔드포인트에 도달할 때 애플리케이션이 종료되면 애플리케이션이 예상대로 시작되지 않습니다.
- 엔드포인트가 404 Not Found HTTP 상태를 반환해도 괜찮습니다.
/health
또는HOSTED_TARGET_HEALTH_CHECK_PATH
는 애플리케이션이 실행 중인지 확인하는 데만 사용됩니다. 실제 응답은 무시됩니다.
NPM 캐시 위치 변경
최신 버전의 Node.js는 NPM 캐시에 /root/.npm
를 사용하는 NPM 버전을 사용합니다.
이 위치는 디렉토리 위치가 읽기 전용이기 때문에 호스팅된 타겟에 문제가 될 수 있습니다.
호스팅된 타겟 런타임이 /tmp
만 쓰기 가능한 tmpfs 파일 시스템을 사용하기 때문입니다.
이 문제를 해결하려면 npm_config_cache
환경 변수를 설정합니다.
애플리케이션의
app.yaml
파일 (매니페스트 파일)
/tmp
내의 디렉터리로 이동합니다. 예를 들면 다음과 같습니다.
runtime: node application: my-express-app env: - name: npm_config_cache value: /tmp/.npm - name: NODE_ENV value: production - name: LOG_LEVEL value: 3
NPM 없이 애플리케이션 실행
기본적으로 Hosted Targets는 npm start
를 사용하여 Hosted Target 애플리케이션을 실행합니다. 하지만
NPM 사용 문제에 대해 논의한 이전 작업에서 NPM 사용 문제에 대해 논의했습니다.
NPM 캐시용 /root/.npm
(쓰기가 불가능하며 호스팅된 타겟이 됨)
시작할 수 있습니다 이전 작업이 이 문제를 해결하지만 또 다른 옵션은
NPM 없이 애플리케이션을 실행할 수 있습니다. 이렇게 하려면 command
및
args
값
app.yaml
파일 (매니페스트 파일)
node index.js
를 사용하여 호스팅된 타겟을 직접 실행합니다. 예를 들면 다음과 같습니다.
runtime: node application: my-express-app command: node args: - index.js env: - name: NODE_ENV value: production - name: LOG_LEVEL value: 3
node index.js
는
예로 들 수 있습니다