クイックスタート: gcloud CLI を使用して関数を Cloud Run にデプロイする
このページでは、gcloud CLI で Cloud Run を使用して HTTP 関数をデプロイする方法について説明します。
始める前に
- 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 Artifact Registry, Cloud Build, Cloud Run Admin API, and Cloud Logging 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 Artifact Registry, Cloud Build, Cloud Run Admin API, and Cloud Logging APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Cloud Run サービスのデフォルト プロジェクトを設定するには:
gcloud config set project PROJECT_ID
PROJECT_ID は、このクイックスタートで作成したプロジェクトの名前に置き換えます。 ドメイン制限の組織のポリシーでプロジェクトの未認証呼び出しが制限されている場合は、限定公開サービスのテストの説明に従って、デプロイされたサービスにアクセスする必要があります。
- Cloud Build がソースを構築できるようにするには、次のコマンドを実行して、Compute Engine のデフォルト サービス アカウントに Cloud Build サービス アカウントのロールを付与します。
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/cloudbuild.builds.builder
PROJECT_NUMBER
は Google Cloud プロジェクト番号に、PROJECT_ID
は Google Cloud プロジェクト ID に置き換えます。プロジェクト番号とプロジェクト ID は、Google Cloud コンソールの [ようこそ] ページで確認できます。
サンプル関数を作成する
アプリケーションを作成するには、次の操作を行います。
Node.js
helloworld
という名前の新しいディレクトリを作成し、そのディレクトリに移動します。mkdir helloworld cd helloworld
helloworld
ディレクトリにpackage.json
ファイルを作成して、Node.js の依存関係を指定します。次の Node.js サンプルを使用して、
helloworld
ディレクトリにindex.js
ファイルを作成します。
Python
helloworld
という名前の新しいディレクトリを作成し、そのディレクトリに移動します。mkdir helloworld cd helloworld
Python の依存関係を指定するために、
helloworld
ディレクトリにrequirements.txt
ファイルを作成します。これにより、サンプルで必要なパッケージが追加されます。
helloworld
ディレクトリに、次の Python サンプルを含むmain.py
ファイルを作成します。
Go
helloworld
という名前の新しいディレクトリを作成し、そのディレクトリに移動します。mkdir helloworld cd helloworld
go.mod
ファイルを作成して go モジュールを宣言します。前述の形式で
go.mod
ファイルを直接作成するか、次のようにプロジェクト ディレクトリから初期化できます。go mod init github.com/GoogleCloudPlatform/golang-samples/functions/functionsv2/helloworld/go.mod
helloworld
ディレクトリに、次の Go コードサンプルを含むhello_http.go
ファイルを作成します。
Java
helloworld
という名前の新しいディレクトリを作成し、そのディレクトリに移動します。mkdir helloworld cd helloworld
ソース ディレクトリとソースファイルを格納する次のプロジェクト構造を作成します。
mkdir -p ~/helloworld/src/main/java/functions touch ~/helloworld/src/main/java/functions/HelloWorld.java
次の Java コードサンプルで
HelloWorld.java
ファイルを更新します。helloworld
ディレクトリにpom.xml
ファイルを作成し、次の Java 依存関係を追加します。
.NET
.NET SDK 6.0 をインストールします。このクイックスタートは .NET バージョン 6 でのみ動作します。
コンソールから dotnet コマンドを使用して、新しい空のウェブ プロジェクトを作成します。
dotnet new web -o helloworld-csharp
helloworld-csharp
ディレクトリに移動します。プロジェクト ファイル
helloworld-csharp.csproj
のサンプルコードを次のコードに置き換えます。Program.cs
ファイルのサンプルコードを次のコードに置き換えます。
関数をデプロイする
重要: 以下の説明では、このクイックスタートで使用するプロジェクトのオーナーロールまたは編集者ロールが付与されていることを前提としています。ロールが付与されていない場合は、Cloud Run ソース デベロッパー ロールで、ソースから Cloud Run リソースをデプロイするために必要な権限を確認してください。
Cloud Run 関数をデプロイするには、次の操作を行います。
サンプルコードを含むディレクトリで次のコマンドを実行して、関数をデプロイします。
Node.js
gcloud beta run deploy nodejs-http-function \ --source . \ --function helloGET \ --base-image=us-central1-docker.pkg.dev/serverless-runtimes/google-22/runtimes/nodejs20 \ --region REGION \ --allow-unauthenticated
REGION は、関数をデプロイするサービスの Google Cloud リージョンに置き換えます。例:
us-central1
Python
gcloud beta run deploy python-http-function \ --source . \ --function hello_get \ --base-image=us-central1-docker.pkg.dev/serverless-runtimes/google-22/runtimes/python312 \ --region REGION \ --allow-unauthenticated
REGION は、関数をデプロイするサービスの Google Cloud リージョンに置き換えます。例:
us-central1
Go
gcloud beta run deploy go-http-function \ --source . \ --function HelloGet \ --base-image=us-central1-docker.pkg.dev/serverless-runtimes/google-22/runtimes/go122 \ --region REGION \ --allow-unauthenticated
REGION は、関数をデプロイするサービスの Google Cloud リージョンに置き換えます。例:
us-central1
Java
pom.xml
ファイルが含まれるディレクトリで、次のコマンドを実行します。gcloud beta run deploy java-http-function \ --source . \ --function functions.HelloWorld \ --base-image=us-central1-docker.pkg.dev/serverless-runtimes/google-22/runtimes/java21 \ --region REGION \ --allow-unauthenticated
REGION は、関数をデプロイするサービスの Google Cloud リージョンに置き換えます。例:
us-central1
.NET
gcloud beta run deploy csharp-http-function \ --source . \ --function HelloWorld.Function \ --base-image=us-central1-docker.pkg.dev/serverless-runtimes/google-22/runtimes/dotnet6 \ --region REGION \ --allow-unauthenticated
REGION は、関数をデプロイするサービスの Google Cloud リージョンに置き換えます。例:
us-central1
デプロイが完了すると、サービスが実行されている URL が Google Cloud CLI に表示されます。ブラウザで URL を開き、関数の出力を確認します。
クリーンアップ
サービスが使用されていない場合、Cloud Run の料金は発生しませんが、コンテナ イメージを Artifact Registry に保存すると課金される場合があります。コンテナ イメージを削除するか、Google Cloud プロジェクトを削除してこのような料金が発生しないようにできます。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.
次のステップ
Google Cloud コンソールを使用してサンプル関数を Cloud Run にデプロイする。クイックスタート: Google Cloud コンソールを使用して関数を Cloud Run にデプロイするをご覧ください。
Google Cloud コンソールと Google Cloud CLI を使用して関数をデプロイする。関数をデプロイするをご覧ください。
既存の関数を表示して削除する。サービスのリビジョンを管理するをご覧ください。
独自のツールチェーンで関数コンテナをビルドして Cloud Run にデプロイする。関数をビルドするをご覧ください。