Node.js 8 ランタイム
Node.js での開発用にローカルマシンを準備する方法については、Node.js 開発環境のセットアップをご覧ください。
Cloud Run 関数で Node.js を使い始めるには、クイックスタートをご覧ください。
ランタイムの選択
デプロイ時に、関数に Node.js 8 ランタイムを選択できます。
gcloud
Google Cloud CLI を使用している場合は、--runtime
パラメータを使用してランタイムを指定できます。次に例を示します。
gcloud functions deploy NAME --runtime nodejs8 --trigger-http
デプロイ時に指定できるその他の引数については、gcloud ツールを使用したデプロイをご覧ください。
コンソール
Google Cloud コンソールを使用している場合は、関数を作成してデプロイするときにランタイムを選択できます。
Google Cloud コンソールで、Cloud Run 関数の概要ページに移動します。
Cloud Run 関数を有効にしたプロジェクトが選択されていることを確認します。
[関数を作成] をクリックします。
[ランタイム] で Node.js 8 を選択します。
実行環境
実行環境には、ランタイム、オペレーティング システム、パッケージ、関数を呼び出すライブラリが含まれます。
Node.js 8 ランタイムは、Node.js バージョン 8.15.0 がインストールされた Ubuntu 18.04 の実行環境を使用します。詳しくは、Cloud Run 関数の実行環境をご覧ください。
ソースコードの構造
Cloud Run 関数で関数の定義を見つけられるよう、ランタイムごとに、ソースコードの構造に対する特定の要件があります。詳細については、Cloud Run 関数の作成をご覧ください。
依存関係の指定
関数の依存関係は package.json
ファイルに指定します。詳しくは、Node.js での依存関係の指定をご覧ください。
async と await
Node.js 8.x は、Node.js で async
キーワードと await
キーワードをサポートする最初の LTS バージョンです。
ミドルウェアを使用した HTTP リクエストの処理
Node.js HTTP Cloud Run 関数では、HTTP リクエストを単純にするために、ExpressJS との互換性がある request
および response
オブジェクトが提供されます。Cloud Run 関数ではリクエスト本文が自動的に読み取られるため、常にコンテンツ タイプから独立したリクエスト本文を受け取ります。つまり、HTTP リクエストはコードの実行時までに完全に読み取られているものと想定されています。ExpressJS アプリをネストする際は、この点に注意する必要があります。特に、リクエスト本文が読み取られていないと想定しているミドルウェアは、想定どおりに動作しない可能性があります。