このチュートリアルでは、Spanner の結果を返す HTTP Cloud Run functions の関数の記述方法について説明します。
目標
Spanner にアクセスする HTTP の関数を作成、デプロイ、トリガーします。
費用
このドキュメントでは、 Google Cloudの課金対象コンポーネントである Spanner と Cloud Run を使用します。
Spanner の使用料金については、Spanner の料金をご覧ください。
Cloud Run の使用料金(無料の呼び出しを含む)については、Cloud Run の料金をご覧ください。
始める前に
このドキュメントでは、
test-instanceという名前の Cloud Spanner インスタンスと、音楽アプリケーション スキーマを使用するexample-dbという名前のデータベースがあると想定します。音楽アプリケーション スキーマを使用してインスタンスとデータベースを作成する方法については、コンソールを使用したクイックスタートか、Node.js、または Python のスタートガイドのチュートリアルをご覧ください。Cloud Run と Cloud Build API を有効にします。
- 
gcloud CLI がすでにインストールされている場合は、次のコマンドを実行して更新します。
gcloud components update 開発環境を準備します。
Node.js
Node.js 設定ガイドをご覧ください。
Python
Python 設定ガイドをご覧ください。
アプリケーションを準備する
ローカルマシンにサンプルアプリのリポジトリのクローンを作成します。
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git代替手段として、zip ファイルとしてサンプルをダウンロードして解凍できます。
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git代替手段として、zip ファイルとしてサンプルをダウンロードして解凍できます。
Spanner にアクセスする Cloud Run functions のサンプルコードが含まれているディレクトリに移動します。
Node.js
cd nodejs-docs-samples/functions/spannerPython
cd python-docs-samples/functions/spannerサンプルコードを見てみましょう。
Node.js
Python
この関数は、SQL クエリを送信してデータベースから
Albumsのすべてのデータをフェッチします。この関数は、関数のエンドポイントに HTTP リクエストを行うと実行されます。
関数をデプロイする
HTTP トリガーを使用して関数をデプロイするには、spanner ディレクトリで次のコマンドを実行します。
Node.js
gcloud run deploy nodejs-spanner-function \
    --source . \
    --region REGION \
    --function spannerQuickstart \
    --base-image RUNTIME_ID \
    --log-httpPython
gcloud run deploy python-spanner-function \
    --source . \
    --region REGION \
    --function spanner_read_data \
    --base-image RUNTIME_ID \
    --log-http次のように置き換えます。
REGION は、関数をデプロイする Google Cloud リージョンの名前(例:
us-west1)に置き換えます。RUNTIME_ID は、適切なランタイム ID(
nodejs22など)に置き換えます。サポートされている言語ランタイムとベースイメージをご覧ください。
関数のデプロイには最大 2 分かかります。
関数のデプロイが完了すると、url 値が返されることに注意してください。関数をトリガーするときにこの値を使用します。
デプロイされた関数は、Google Cloud コンソールの Cloud Run ページで確認できます。このページでは関数の作成と編集、関数の詳細と診断を得ることもできます。
関数をトリガーする
関数に HTTP リクエストを出します。
curl URL
URL は、関数のデプロイが完了したときに返される URL 値に置き換えます。
スタートガイドのチュートリアルを実施済みで、データベースにデータがある場合は、SQL クエリの結果を示す出力が表示されます。
SingerId: 2, AlbumId: 2, AlbumTitle: Forever Hold Your Peace
SingerId: 1, AlbumId: 2, AlbumTitle: Go, Go, Go
SingerId: 2, AlbumId: 1, AlbumTitle: Green
SingerId: 2, AlbumId: 3, AlbumTitle: Terrified
SingerId: 1, AlbumId: 1, AlbumTitle: Total Junk
ブラウザで関数の URL にアクセスして、SQL クエリの結果を確認することもできます。
クリーンアップ
このドキュメントで使用した Spanner と Cloud Run functions のリソースについて、 Google Cloud アカウントに追加料金が発生しないようにするには:
インスタンスを削除します。
gcloud CLI instances delete test-instanceこのチュートリアルでデプロイした Cloud Run サービスを削除します。
Node.js
gcloud run services delete nodejs-spanner-functionPython
gcloud run services delete python-spanner-function
次のステップ
- Cloud Run functions の関数の作成方法について確認する。
 - Cloud Run functions のデプロイについて詳細を確認する。
 - Cloud Run functions のトリガーについて詳細を確認する。