종속 항목 처리

함수에서 외부 Node.js 모듈 및 로컬 데이터를 사용할 수 있습니다. Node.js의 종속 항목은 npm으로 관리되며 package.json이라는 메타데이터 파일로 표현됩니다.

함수에 종속 항목을 지정하려면 package.json 파일에 추가합니다. gcloud 명령줄 도구를 통해 배포하면 종속 항목을 미리 설치하고 함수와 함께 배포할 수 있습니다. 기본적으로 node_modules 폴더가 .gcloudignore 파일에 추가되며 배포 중에 업로드되지 않습니다. 사전 설치된 종속 항목을 배포하려면 함수를 배포하기 전에 .gcloudignore 파일에서 node_modules/를 삭제합니다.

이 예에서는 package.json 파일에 종속 항목을 나열합니다.

{
  "dependencies": {
    "uuid": "^3.0.1"
  }
}

그런 다음 함수에서 종속 항목을 가져옵니다.

자바스크립트

const uuid = require('uuid');

// Return a newly generated UUID in the HTTP response.
exports.getUuid = functions.https.onRequest((req, res) => {
  res.send(uuid.v4());
});

TypeScript

import * as uuid from 'uuid';

// Return a newly generated UUID in the HTTP response.
export let getUuid = functions.https.onRequest((req, res) => {
  res.send(uuid.v4());
}

npm을 사용하여 Node.js 모듈 설치

Node.js 모듈을 설치하는 가장 쉬운 방법은 Cloud 함수가 포함된 폴더에서 npm install 명령어를 사용하는 것입니다. 예를 들어 uuid 모듈을 추가하려면 다음 명령어를 실행합니다.

npm install uuid

이렇게 하면 두 단계가 실행됩니다.

  1. 모듈의 최신 버전을 package.json 파일에서 종속 항목으로 표시합니다. 이 단계는 매우 중요합니다. Cloud Functions는 package.json 파일에 선언된 모듈만 설치합니다.
  2. 모듈을 node_modules 디렉토리로 다운로드합니다. 이렇게 하면 로컬에서 개발 시 모듈을 사용할 수 있습니다.

npm이 설치되어 있지 않으면 npm을 다운로드합니다.

TypeScript용 추가 단계

TypeScript는 유형 정보가 있는 라이브러리를 사용할 때 가장 유용합니다. 이러한 라이브러리를 사용하면 TypeScript가 구문 오류를 포착할 수 있으며 편집기가 향상된 자동 완성 추천을 제공합니다. firebase-adminfirebase-functions와 같은 일부 라이브러리에는 TypeScript 정의가 포함되어 있습니다.

많은 라이브러리가 자체 TypeScript 정의를 제공하지 않습니다. DefinitelyTyped 프로젝트는 가장 많이 사용되는 노드 라이브러리에 대한 정의를 제공하며 커뮤니티에서 유지관리합니다. DefinitelyTyped가 동일한 NPM 패키지 이름을 사용하되 '@types' 조직 내에 이러한 정의를 게시합니다. 예를 들어 다음 명령어를 사용하여 uuid 라이브러리의 유형 정보를 설치할 수 있습니다.

npm install @types/uuid

TypeScript에 더 익숙해지면 두 설치 항목을 결합할 수도 있습니다.

npm install uuid @types/uuid

유형 종속 항목과 라이브러리 종속 항목은 유형이 같아야 합니다. 예를 들어 uuid는 일반 종속 항목으로, @types/uuid는 개발 종속 항목이나 피어 종속 항목으로 저장해서는 안 됩니다.

Node.js 모듈 로드

Node.js require() 함수를 사용하여 설치한 Node.js 모듈을 로드합니다. 또한 require() 함수를 사용하면 함수와 함께 배포하는 로컬 파일을 가져올 수 있습니다.

TypeScript로 함수를 작성하는 경우 설치한 Node.js 모듈을 로드하는 것과 동일한 방식으로 import 문을 사용하세요.

비공개 모듈 사용

비공개 npm 모듈을 사용하려면 함수의 디렉토리에 있는 .npmrc 파일에 npm 레지스트리에 대한 사용자 인증 정보(인증 토큰)를 제공해야 합니다. npm 문서에서는 맞춤 읽기 전용 액세스 토큰을 만드는 방법에 대해 설명합니다. 홈 디렉토리에서 생성된 .npmrc 파일에는 읽기/쓰기 토큰이 포함되어 있으므로 이 파일은 사용하지 않는 것이 좋습니다. 배포 중에는 쓰기 권한이 필요 없으며 보안 위험을 초래할 수 있습니다.

비공개 저장소를 사용하지 않는다면 함수 배포 시간이 늘어날 수 있으므로 .npmrc 파일을 포함하지 마세요.

다음에 대한 의견 보내기...

도움이 필요하시나요? 지원 페이지를 방문하세요.