デプロイ前に Cloud Run 関数をテストする
このガイドでは、Cloud Run 関数をデプロイする前に Google Cloud コンソールでテストする方法を説明します。この機能は、Node.js 関数と Python 関数で使用できます。
テスト用の関数を準備する
テスト用の関数を準備するには:
Google Cloud コンソールで Functions の概要ページを開きます。
Cloud Run 関数を有効にしたプロジェクトが選択されていることを確認します。
[関数を作成] をクリックして新しい Node.js または Python 関数を作成するか、既存の Node.js または Python 関数を選択して [編集] をクリックして編集します。
[次へ] をクリックして、コード編集ページに進みます。
[関数をテスト] をクリックして、テストプロセスを開始します。
プロンプトが表示されたら、[テストを始める] をクリックして Cloud Shell ターミナルの使用を承認します。
テストを実行する
上記の手順を完了すると、右側にトリガー イベントのパネルが開き、関数をテストする準備ができたことを確認できます。[テストを実行] をクリックします。
テストプロセスのこのフェーズには、次のコンポーネントが含まれます。
- トリガーとなるイベントのパネル。トリガーとなるイベントのパネルには、構成ページで指定したイベント トリガーに一致するペイロードが事前入力されます。これが関数への入力です。
- Cloud Shell の出力ウィンドウ。Cloud Shell の出力ウィンドウには、HTTP ステータス コードと呼び出し元に返されたレスポンスが表示されます。
- [テストを実行] を実行してテストを実行します。
テストの出力は Cloud Shell ウィンドウで確認できます。
Cloud Shell ターミナル
関数ごとのロギング出力は、画面下部の Cloud Shell ターミナルで確認できます。たとえば、テストパネルを開くと、ソースコードのパッケージ化の出力が表示されます。テストを実行すると、ソースコードの変更と、console.log
やエラーなどの実行レベルの出力が表示されます。
テストに失敗した場合、Cloud Shell ターミナルにはエラー メッセージが表示され、正確な原因を特定できます。次に例を示します。
[11:31:47 AM] - Provided module can't be loaded. Is there a syntax error in your code? Detailed stack trace: /workspace/index.js:11 : 'World'; ^ SyntaxError: Unexpected token ':' at Object.compileFunction (node:vm:360:18) at wrapSafe (node:internal/modules/cjs/loader:1048:15) at Module._compile (node:internal/modules/cjs/loader:1083:27) at Module._extensions..js (node:internal/modules/cjs/loader:1173:10) at Module.load (node:internal/modules/cjs/loader:997:32) at Module._load (node:internal/modules/cjs/loader:838:12) at Module.require (node:internal/modules/cjs/loader:1021:19) at require (node:internal/modules/cjs/helpers:103:18) at getUserFunction (/workspace/node_modules/@google-cloud/functions-framework/build/src/loader.js:98:30) at async main (/workspace/node_modules/@google-cloud/functions-framework/build/src/main.js:35:32) [11:31:47 AM] - Could not load the function, shutting down.
デプロイ
テストが完了したら、[デプロイ] をクリックして、通常の方法で関数をデプロイできます。
制限事項
デプロイ前のテストには、いくつかの既知の制限事項があります。
ネットワーク アクセス
デプロイ前のテストは、Cloud Shell 内で実行されますが、Cloud Shell は VPC に接続されていません。これは、前の手順でサーバーレス VPC アクセスを指定していた場合も同様です。VPC 接続に依存する Cloud Run 関数をテストするには、Cloud Run 関数を完全にデプロイする必要があります。