このページでは、Cloud Build を使用して Cloud Run functions にアプリケーションをデプロイする方法について説明します。Cloud Build を初めて使用する場合は、最初にクイックスタートとビルド構成の概要をご覧ください。
Cloud Run functions は、クラウド サービスの構築と接続に使用できるサーバーレスの実行環境で、Cloud Run functions を使用すると、単一目的のシンプルな関数を作成し、クラウド インフラストラクチャやクラウド サービスで生じたイベントに関連付けることができます。対象のイベントが発生すると、関数がトリガーされます。Cloud Run functions の詳細については、Cloud Run functions のドキュメントをご覧ください。
始める前に
Cloud Run functions API を有効にします。
ビルドサービス アカウントに Cloud Run functions デベロッパーのロールを付与します。
Cloud Build 設定ページを開きます。
Cloud Run functions デベロッパーのロールのステータスを「有効」に設定します。
このページで
gcloud
コマンドを実行するには、Google Cloud CLI をインストールします。ビルドして Cloud Run functions にデプロイするアプリケーションのソースコードを保持します。ソースコードは、Cloud Source Repositories、GitHub、Bitbucket などのリポジトリに保存する必要があります。
デプロイを構成する
Cloud Build を使用すると、一般公開されているコンテナ イメージを使用してタスクを実行できます。これを行うには、Cloud Build 構成ファイルのビルド step
にイメージを指定します。
Cloud Run functions の gcloud functions deploy
コマンドを使用して、関数コードを含むディレクトリから関数をデプロイします。たとえば、構成ファイルのビルドステップで cloud-sdk
イメージを使用すると、イメージから gcloud
コマンドを使用できます。このビルドステップに渡された引数が Google Cloud CLI に直接渡されるので、このイメージで任意の gcloud
コマンドを実行できます。
Cloud Run functions にアプリケーションをデプロイするには、次の操作を行います。
- プロジェクトのルート ディレクトリに、
cloudbuild.yaml
またはcloudbuild.json
という名前の Cloud Build 構成ファイルを作成します。 config ファイルで次の操作を行います。
name
フィールドを追加してgcloud
ビルドステップを指定します。gcloud functions deploy
コマンドを呼び出すため、functions deploy
をargs
フィールドに追加します。 使用可能な構成オプションについては、gcloud functions deploy
リファレンスをご覧ください。--source=.
は、ソースコードが現在の作業ディレクトリにあることを示します。
YAML
steps: - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' args: - gcloud - functions - deploy - FUNCTION_NAME - --region=FUNCTION_REGION - --source=. - --trigger-http - --runtime=RUNTIME
JSON
{ "steps": [ { "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "args": [ "gcloud", "functions", "deploy", [ "FUNCTION_NAME" ], "--region=FUNCTION_REGION", "--source=.", "--trigger-http", "--runtime=RUNTIME" ] } ] }
上の構成ファイルのプレースホルダ値を次の値に置き換えます。
FUNCTION_NAME
は、デプロイする Cloud Run functions の名前です。既存の関数を更新する場合、この値は更新する関数の名前と一致する必要があります。FUNCTION_REGION
は、Cloud Run functions をデプロイするリージョンです。サポートされているリージョンの一覧については、Cloud Run functions のロケーションをご覧ください。--trigger-http
は、この関数のトリガーの種類です。この場合は、HTTP リクエスト(Webhook)です。RUNTIME
は、関数を実行するランタイムです。
gcloud functions deploy
の使用について詳しくは、Cloud Run functions のドキュメントをご覧ください。前の手順で作成した構成ファイルを使用してビルドを開始します。
gcloud builds submit --region=REGION --config CONFIG_FILE_PATH SOURCE_DIRECTORY
上の構成ファイルのプレースホルダ値を次の値に置き換えます。
CONFIG_FILE_PATH
は、ビルド構成ファイルへのパスです。SOURCE_DIRECTORY
は、ソースコードへのパスまたは URL です。REGION
は、サポートされているビルド リージョンの一つです。
gcloud builds submit
コマンドにCONFIG_FILE_PATH
とSOURCE_DIRECTORY
を指定しないと、Cloud Build は、構成ファイルとソースコードが現在の作業ディレクトリにあることを前提とします。
継続的デプロイ
Cloud Build トリガーを作成すると、ソフトウェアの Cloud Run functions へのデプロイを自動化できます。トリガーを構成すると、ソースコードを更新するたびにイメージをビルドしてデプロイできます。
Cloud Run functions へのデプロイを自動化するには:
リポジトリのルートで、
gcloud functions deploy
コマンドを呼び出すステップを構成ファイルに追加します。YAML
steps: - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' args: - gcloud - functions - deploy - FUNCTION_NAME - --region=FUNCTION_REGION - --source=. - --trigger-http - --runtime=RUNTIME
JSON
{ "steps": [ { "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "args": [ "gcloud", "functions", "deploy", [ "FUNCTION_NAME" ], "--region=FUNCTION_REGION", "--source=.", "--trigger-http", "--runtime=RUNTIME" ] } ] }
上の構成ファイルのプレースホルダ値を次の値に置き換えます。
FUNCTION_NAME
は、デプロイする Cloud Run functions の名前です。既存の関数を更新する場合、この値は更新する関数の名前と一致する必要があります。FUNCTION_REGION
は、Cloud Run functions をデプロイするリージョンです。サポートされているリージョンの一覧については、Cloud Run functions のロケーションをご覧ください。--trigger-http
は、この関数のトリガーの種類です。この場合は、HTTP リクエスト(Webhook)です。RUNTIME
は、関数を実行するランタイムです。
前のステップで作成した構成ファイルを使用して、ビルドトリガーを作成します。
Google Cloud Console で [トリガー] ページを開きます。
ページの上部にあるプロジェクト セレクタのプルダウン メニューからプロジェクトを選択します。
[トリガーを作成] をクリックします。
[名前] 欄にトリガーの名前を入力します。
[リージョン] で、トリガーのリージョンを選択します。
[イベント] で、リポジトリ イベントを選択してトリガーを開始します。
[ソース] で、トリガーを開始するリポジトリとブランチまたはタグ名を選択します。自動ビルドのブランチを指定する方法については、ビルドトリガーの作成をご覧ください。
[構成] で [Cloud Build 構成ファイル(YAML または JSON)] を選択します。
[Cloud Build 構成ファイルの場所] フィールドで、
/
の後に「cloudbuild.yaml
」と入力します。[作成] をクリックして、ビルドトリガーを保存します。
リポジトリに新しいコードを push するたびに、ビルドが自動的にトリガーされ、Cloud Run functions にデプロイされます。
Cloud Build トリガーの作成方法については、ビルドトリガーの作成と管理をご覧ください。
次のステップ
- Compute Engine で Blue/Green デプロイを実行する方法を学習する。
- Cloud Run にデプロイする方法を学習する
- GKE にデプロイする方法を学習する
- Firebase にデプロイする方法を学習する
- App Engine にデプロイする方法を学習する
- ビルドエラーをトラブルシューティングする方法について学習する。