関数をデプロイする
このガイドでは、gcloud functions
コマンドを使用してソースコードから関数をデプロイする方法について説明します。gcloud run
コマンドを使用して関数をデプロイする方法については、gcloud CLI を使用して Cloud Run の関数をデプロイするをご覧ください。
デプロイ プロセスでは、ソースコードと構成設定を取得し、関数に対するリクエストを処理するために Cloud Run functions で自動的に管理される実行可能なイメージをビルドします。
デプロイの基本
デプロイできる関数のタイプについては、Cloud Run functions の関数を作成するをご覧ください。
関数をデプロイするユーザーには、Cloud Functions デベロッパーの IAM ロールまたは同等の権限を含むロールが必要です。デプロイの追加構成もご覧ください。
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
gcloud functions deploy
コマンドを使用して、関数をデプロイします。gcloud functions deploy YOUR_FUNCTION_NAME \ --region=YOUR_REGION \ --runtime=YOUR_RUNTIME \ --source=YOUR_SOURCE_LOCATION \ --entry-point=YOUR_CODE_ENTRYPOINT \ TRIGGER_FLAGS
1 つ目の引数
YOUR_FUNCTION_NAME
は、デプロイされる関数の名前です。関数名は、先頭を文字にし、その後に 62 文字以内の文字、数字、ハイフン、アンダースコアを続けます。末尾は文字または数字にする必要があります。関数用に作成された Cloud Run サービスの名前では、アンダースコアがハイフンに置き換えられ、大文字は小文字に変換されます。たとえば、Function_1
には Cloud Run ではfunction-1
という名前が付けられます。--region
フラグには、関数をデプロイするリージョンを指定します。Cloud Run でサポートされているリージョンについては、ロケーションをご覧ください。--runtime
フラグには、関数で使用される言語ランタイムを指定します。サポートされているランタイム ID のリストについては、ランタイム サポートをご覧ください。--source
フラグには、関数のソースコードの場所を指定します。--entry-point
フラグには、ソースコード内の関数のエントリ ポイントを指定します。これは、関数の実行時に実行されるコードです。このフラグには、ソースコード内に存在する関数名または完全修飾クラス名を指定する必要があります。詳細については、関数のエントリ ポイントをご覧ください。関数のトリガーを指定する場合は、使用するトリガーに応じて、追加のフラグ(上記の
TRIGGER_FLAGS
)を使用する必要があります。トリガーフラグ トリガーの説明 --trigger-http
HTTP(S) リクエストで関数をトリガーします。 --trigger-topic=YOUR_PUBSUB_TOPIC
指定した Pub/Sub トピックにメッセージがパブリッシュされたときに関数をトリガーします。 --trigger-bucket=YOUR_STORAGE_BUCKET
指定された Cloud Storage バケットでオブジェクトの作成または上書きが行われたときに、関数をトリガーします。 --trigger-event-filters=EVENTARC_EVENT_FILTERS
指定されたフィルタに一致するイベントが発生したときに、Eventarc で関数をトリガーします。 デプロイ コマンドとそのフラグの詳細については、
gcloud functions deploy
のドキュメントをご覧ください。gcloud functions deploy
構成フラグの詳細については、Cloud Run のドキュメントをご覧ください。
- Google Cloud コンソールと gcloud CLI(
gcloud run deploy
)を使用できます。 - トリガーを指定する手順は若干異なります。詳細については、トリガーと再試行と関数トリガーの例をご覧ください。
- Cloud Run には、より幅広い構成オプションが用意されています。
デプロイが正常に完了すると、Google Cloud コンソールの Cloud Run の概要ページで関数に緑色のチェックマークが表示されます。
基盤となるインフラストラクチャがプロビジョニングされている間は、関数の最初のデプロイに数分かかることがあります。既存の関数の再デプロイは速くなります。受信トラフィックは自動的に最新バージョンに移行されます。
HTTP エンドポイント URL
gcloud functions
コマンドまたは Cloud Functions v2 API を使用して関数を作成すると、デフォルトで関数に cloudfunctions.net
HTTP エンドポイント URL が設定されます。この関数を Cloud Run にデプロイすると、関数には run.app
HTTP エンドポイント URL も送信されます。ただし、Cloud Run で作成された関数には cloudfunctions.net
HTTP エンドポイント URL がありません。関数の cloudfunctions.net
URL と run.app
URL はまったく同じように動作します。これらは互換性があり、関数のトリガーに使用されます。
Terraform の例
Terraform を使用して関数をデプロイする方法の例については、Terraform HTTP の例と Terraform Pub/Sub の例をご覧ください。
ネットワークを構成する
Cloud Functions v2 API を使用して作成された関数(gcloud functions
、REST API、Terraform など)は、Cloud Run Admin API と Cloud Functions v2 API で管理できます。
VPC ネットワーク トラフィックのルーティング方法など、関数のネットワークの管理について詳しくは、Cloud Run ネットワーキングのベスト プラクティスをご覧ください。
Cloud Run に Cloud Run functions をデプロイする方法を確認する
Cloud Run に関数をデプロイする手順は、このドキュメントで説明する手順と似ていますが、次のような利点があります。