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