종속 항목 지정

package.json 파일에서 Node.js 앱의 종속 항목을 선언하여 지정합니다.

예를 들어 Lodash를 종속 항목으로 지정하려면 package.json 파일이 다음과 같이 표시됩니다.

{
  "dependencies": {
    "lodash": "^4.0.1"
  }
}

배포 중에 Node.js 런타임은 package.json 파일에 선언된 모든 dependencies를 자동으로 설치합니다. 기본적으로 npm install 명령어가 사용되지만 Yarn 및 Pnpm 패키지 관리자도 지원됩니다.

  • Yarn: yarn.lock 파일이 있으면 yarn install --production 명령어가 대신 사용됩니다.

  • Pnpm: pnpm-lock.yaml 파일이 있으면 pnpm install 명령어가 대신 사용됩니다.

yarn.lock 또는 pnpm-lock.yaml 파일이 app.yaml 파일의 skip_files 섹션에 지정되지 않았는지 확인해야 합니다.

기본적으로 App Engine은 가져온 종속 항목을 캐시하여 빌드 시간을 단축합니다. 종속 항목의 캐시되지 않은 버전을 설치하려면 다음 명령어를 사용하세요.

gcloud app deploy --no-cache

표준 환경에서 package.json 파일의 지원 및 제한사항은 다음과 같습니다.

  • 네이티브(C) 확장이 필요한 패키지를 포함하여 모든 Linux 호환 Node.js 패키지를 App Engine과 함께 사용할 수 있습니다.

  • package.json에 engines 필드가 지정된 경우 호환 가능한 Node.js 버전을 정의해야 합니다.

  • devDependencies 필드에서 정의하는 모든 종속 항목은 무시되며 App Engine의 앱에 설치되지 않습니다.

  • 최상의 성능을 위해서는 start 스크립트가 가벼워야 하고 빌드 단계를 제외해야 합니다. 애플리케이션의 새 인스턴스가 생성될 때마다 이 스크립트가 실행되기 때문입니다.

Artifact Registry를 사용하는 비공개 종속 항목

앱에서 비공개 npm 모듈이 사용되는 경우 Artifact Registry Node.js 패키지 저장소를 사용해서 비공개 종속 항목을 호스팅할 수 있습니다. 앱을 배포할 때 빌드 프로세스에서는 Cloud Build 서비스 계정에 대해 Artifact Registry 사용자 인증 정보가 자동으로 생성되므로, 추가 사용자 인증 정보를 생성할 필요가 없습니다. 비공개 종속 항목을 포함하려면 Artifact Registry 저장소를 나열하고 앱 디렉터리의 .npmrc 파일에서 레지스트리를 사용하여 인증 설정을 구성합니다. 예를 들면 다음과 같습니다.

@SCOPE:registry=https://REGION_ID-npm.pkg.dev/PROJECT_ID/REPOSITORY_NAME
//REGION_ID-npm.pkg.dev/PROJECT_ID/REPOSITORY_NAME:always-auth=true

이 방법은 Yarn v1 패키지 관리자에도 적용됩니다. Yarn v2 이상을 사용하는 경우 Artifact Registry 저장소를 나열하고 앱 디렉터리의 .yarnrc.yml 파일에서 레지스트리로 인증하기 위한 설정을 구성합니다. 예를 들면 다음과 같습니다.

npmScopes:
  SCOPE:
    npmRegistryServer: https://REGION_ID-npm.pkg.dev/PROJECT_ID/REPOSITORY_NAME
    npmAlwaysAuth: true

그런 후 package.json 파일에 패키지를 포함합니다. 예를 들면 다음과 같습니다.

{
  "dependencies": {
    " @SCOPE/my-package": "^1.0.0"
  }
}

웹 프레임워크 설치

앱에서 웹 요청을 처리할 수 있도록 하려면 웹 프레임워크를 사용해야 합니다. 다음을 비롯하여 모든 Node.js 웹 프레임워크를 사용할 수 있습니다.

Express.js와 같은 특정 웹 프레임워크를 사용하려면 package.json 파일에 프레임워크를 추가합니다.

  • npm 사용:

    npm install express
  • yarn 사용:

    yarn add express
  • pnpm 사용:

    pnpm add express

예를 들어 결과로 반환되는 package.json 파일은 다음과 같습니다.

{
  "dependencies": {
    "lodash": "^4.0.1",
    "express": "^4.16.2"
  }
}

Cloud 클라이언트 라이브러리 설치

Node.js용 Cloud 클라이언트 라이브러리는 Node.js 개발자가 Datastore 모드의 Firestore(Datastore) 및 Cloud Storage와 같은 Google Cloud서비스와 통합하기 위해 일반적으로 사용하는 방법입니다.

Cloud Storage용 Node.js 클라이언트 라이브러리를 설치하려면 다음 안내를 따르세요.

  1. 패키지 관리자를 사용하여 Cloud Client 라이브러리를 로컬로 설치합니다.

    • npm을 사용하려면 다음을 실행합니다.

      npm install @google-cloud/storage
    • yarn을 사용하려면 다음을 실행합니다.

      yarn add @google-cloud/storage
    • pnpm을 사용하려면 다음을 실행합니다.

      pnpm add @google-cloud/storage
  2. 인증을 설정합니다. 자동 인증 처리를 위해 Node.js용 Cloud 클라이언트 라이브러리를 구성할 수 있습니다.

  3. Cloud Storage용 Node.js 클라이언트 라이브러리 참조에 따라 앱에서 Cloud Storage 서비스 지원을 구현합니다.