종속 항목 지정

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.jsonengines 필드가 지정된 경우 호환 가능한 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 --save 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 --save @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 서비스 지원을 구현합니다.