関数をデプロイする

このガイドでは、gcloud functions コマンドを使用してソースコードから関数をデプロイする方法について説明します。gcloud run コマンドを使用して関数をデプロイする方法については、gcloud CLI を使用して Cloud Run の関数をデプロイするをご覧ください。

デプロイ プロセスでは、ソースコードと構成設定を取得し、関数に対するリクエストを処理するために Cloud Run functions で自動的に管理される実行可能なイメージをビルドします。

デプロイの基本

デプロイできる関数のタイプについては、Cloud Run functions の関数を作成するをご覧ください。

関数をデプロイするユーザーには、Cloud Functions デベロッパーの IAM ロールまたは同等の権限を含むロールが必要です。デプロイの追加構成もご覧ください。

  1. In the Google Cloud console, activate Cloud Shell.

    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.

  2. 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 のドキュメントをご覧ください。

  3. デプロイが正常に完了すると、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 に関数をデプロイする手順は、このドキュメントで説明する手順と似ていますが、次のような利点があります。