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