このシンプルなチュートリアルでは、Cloud Run HTTP 関数で書き込み、デプロイ、トリガーを行う方法について説明します。
目標
- Cloud Run HTTP 関数の作成、デプロイ、トリガーを行う。
費用
このドキュメントでは、Google Cloud の次の課金対象のコンポーネントを使用します。
- Cloud Run functions
料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。
始める前に
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Functions and Cloud Build APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Functions and Cloud Build APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
開発環境を準備します。
Node.js
Python
Go
Java
C#
Ruby
PHP
gcloud CLI がすでにインストールされている場合は、次のコマンドを実行して更新します。
gcloud components update
アプリケーションの準備
ローカルマシンにサンプルアプリのリポジトリのクローンを作成します。
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 形式のサンプルをダウンロードしてファイルを抽出してもかまいません。
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
または、zip 形式のサンプルをダウンロードしてファイルを抽出してもかまいません。
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
または、zip 形式のサンプルをダウンロードしてファイルを抽出してもかまいません。
C#
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git
または、zip 形式のサンプルをダウンロードしてファイルを抽出してもかまいません。
Ruby
git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples.git
または、zip 形式のサンプルをダウンロードしてファイルを抽出してもかまいません。
PHP
git clone https://github.com/GoogleCloudPlatform/php-docs-samples.git
または、zip 形式のサンプルをダウンロードしてファイルを抽出してもかまいません。
Cloud Run functions のサンプルコードが含まれているディレクトリに移動します。
Node.js
cd nodejs-docs-samples/functions/helloworld/
Python
cd python-docs-samples/functions/helloworld/
Go
cd golang-samples/functions/helloworld/
Java
cd java-docs-samples/functions/helloworld/helloworld/
C#
cd dotnet-docs-samples/functions/helloworld/HelloWorld/
Ruby
cd ruby-docs-samples/functions/helloworld/
PHP
cd php-docs-samples/functions/helloworld_get/
サンプルコードを見てみましょう。
Node.js
Python
Go
Java
C#
Ruby
PHP
関数のデプロイ
HTTP トリガーを使用して関数をデプロイするには、サンプルコード(Java の場合は pom.xml
ファイル)を含むディレクトリで次のコマンドを実行します。
Node.js
gcloud functions deploy helloGET \ --runtime nodejs20 --trigger-http
サポートされている Node.js バージョンのランタイム ID を指定して関数を実行するには、--runtime
フラグを使用します。
Python
gcloud functions deploy hello_get \ --runtime python312 --trigger-http
サポートされている Python バージョンのランタイム ID を指定して関数を実行するには、--runtime
フラグを使用します。
Go
gcloud functions deploy HelloGet \ --runtime go121 --trigger-http
サポートされている Go バージョンのランタイム ID を指定して関数を実行するには、--runtime
フラグを使用します。
Java
gcloud functions deploy java-http-function \ --entry-point functions.HelloWorld \ --runtime java17 \ --memory 512MB --trigger-http
サポートされている Java バージョンのランタイム ID を指定して関数を実行するには、--runtime
フラグを使用します。
C#
gcloud functions deploy csharp-http-function \ --entry-point HelloWorld.Function \ --runtime dotnet6 --trigger-http
サポートされている .NET バージョンのランタイム ID を指定して関数を実行するには、--runtime
フラグを使用します。
Ruby
gcloud functions deploy hello_get --runtime ruby32 --trigger-http
サポートされている Ruby バージョンのランタイム ID を指定して関数を実行するには、--runtime
フラグを使用します。
PHP
gcloud functions deploy helloGet --runtime php82 --trigger-http
サポートされている PHP バージョンのランタイム ID を指定して関数を実行するには、--runtime
フラグを使用します。
必要に応じて --allow-unauthenticated
フラグを使用し、認証なしで関数にアクセスすることもできます。これはテストに便利ですが、公開 API やウェブサイトを作成する場合を除き、本番環境でこの設定を使用することはおすすめしません。また、会社のポリシーの設定によっては、これは機能しない可能性があります。認証が必要な関数を呼び出す方法については、呼び出しの認証をご覧ください。
関数のトリガー
関数に対して HTTP リクエストを実行するには、以下のコマンドを実行します。
Node.js
curl "https://REGION-PROJECT_ID.cloudfunctions.net/helloGET"
Python
curl "https://REGION-PROJECT_ID.cloudfunctions.net/hello_get"
Go
curl "https://REGION-PROJECT_ID.cloudfunctions.net/HelloGet"
Java
curl "https://REGION-PROJECT_ID.cloudfunctions.net/java-http-function"
C#
curl "https://REGION-PROJECT_ID.cloudfunctions.net/csharp-http-function"
Ruby
curl "https://REGION-PROJECT_ID.cloudfunctions.net/hello_get"
PHP
curl "https://REGION-PROJECT_ID.cloudfunctions.net/helloGet"
ここで
REGION
は関数がデプロイされるリージョンです。関数のデプロイが完了するとターミナルに表示されます。PROJECT_ID
は Cloud プロジェクト ID です。 関数のデプロイが完了するとターミナルに表示されます。
ブラウザで、デプロイされた関数のエンドポイントにアクセスして、「Hello World!」メッセージを表示することもできます。
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。
プロジェクトの削除
課金されないようにする最も簡単な方法は、チュートリアル用に作成したプロジェクトを削除することです。
プロジェクトを削除するには:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
関数の削除
Cloud Run functions を削除しても、Cloud Storage に保存されたリソースは削除されません。
このチュートリアルで作成した Cloud Run 関数を削除するには、次のコマンドを実行します。
Node.js
gcloud functions delete helloGET
Python
gcloud functions delete hello_get
Go
gcloud functions delete HelloGet
Java
gcloud functions delete java-http-function
C#
gcloud functions delete csharp-http-function
Ruby
gcloud functions delete hello_get
PHP
gcloud functions delete helloGet
Google Cloud コンソールから Cloud Run functions を削除することもできます。