Node.js アプリの依存関係は、package.json
ファイル内で宣言することによって指定します。
たとえば、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
コマンドが使用されます。
app.yaml
ファイルの skip_files
セクションで yarn.lock
ファイルまたは pnpm-lock.yaml
ファイルが指定されていないことを確認する必要があります。
デフォルトでは、App Engine は取得した依存関係をキャッシュに保存し、ビルド時間を短縮します。キャッシュに保存されていないバージョンの依存関係をインストールするには、次のコマンドを使用します。
gcloud app deploy --no-cache
スタンダード環境における package.json
ファイルのサポートと制限:
Linux 対応の任意の Node.js パッケージを App Engine で利用できます。これにはネイティブ(C)拡張を必要とするパッケージも含まれます。
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 --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 クライアント ライブラリをインストールするには:
パッケージ管理システムを使用して Cloud クライアント ライブラリをローカルにインストールします。
npm
を使用するには、次を実行します。npm install --save @google-cloud/storage
yarn
を使用するには、次を実行します。yarn add @google-cloud/storage
pnpm
を使用するには、次を実行します。pnpm add @google-cloud/storage
認証をセットアップします。Node.js 用 Cloud クライアント ライブラリを構成して、自動で認証を処理できます。
Cloud Storage 用の Node.js クライアント ライブラリ リファレンスを使用して、アプリに Cloud Storage サービスのサポートを実装します。