このシンプルなチュートリアルでは、Cloud Run functions の HTTP 関数の作成、デプロイ、トリガーを行う方法について説明します。
目標
- Cloud Run functions の HTTP 関数の作成、デプロイ、トリガーを行う。
費用
このドキュメントでは、課金対象である次の Google Cloudコンポーネントを使用します。
- Cloud Run functions
料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。
始める前に
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Functions and Cloud Build APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
連携 ID を使用するように gcloud CLI を構成します。
詳細については、連携 ID を使用して gcloud CLI にログインするをご覧ください。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud initgcloud CLI がすでにインストールされている場合は、次のコマンドを実行して更新します。
gcloud components update
-
開発環境を準備します。
Node.js
Python
Go
Java
Ruby
ローカルマシンにサンプルアプリのリポジトリのクローンを作成します。
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 形式のサンプルをダウンロードし、ファイルを抽出してもかまいません。
Ruby
git clone https://github.com/GoogleCloudPlatform/ruby-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/
Ruby
cd ruby-docs-samples/functions/helloworld/
サンプルコードを見てみましょう。
Node.js
Python
Go
Java
Ruby
REGIONは関数がデプロイされるリージョンです。関数のデプロイが完了するとターミナルに表示されます。PROJECT_IDは Cloud プロジェクト ID です。 関数のデプロイが完了するとターミナルに表示されます。- 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.
アプリケーションの準備
関数のデプロイ
HTTP トリガーを使用して関数をデプロイするには、サンプルコード(Java の場合は pom.xml ファイル)を含むディレクトリで次のコマンドを実行します。
Node.js
gcloud functions deploy helloGET \ --runtime nodejs22 --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 フラグを使用します。
Ruby
gcloud functions deploy hello_get --runtime ruby33 --trigger-http
サポートされている Ruby バージョンのランタイム 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"
Ruby
curl "https://REGION-PROJECT_ID.cloudfunctions.net/hello_get"
ここで
ブラウザで、デプロイされた関数のエンドポイントにアクセスして、「Hello World!」メッセージを表示することもできます。
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。
プロジェクトの削除
課金されないようにする最も簡単な方法は、チュートリアル用に作成したプロジェクトを削除することです。
プロジェクトを削除するには:
関数の削除
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
Ruby
gcloud functions delete hello_get
Cloud Run functions 関数は Google Cloud コンソールで削除することもできます。