Cloud Functions へのデプロイ

このページでは、Cloud Build を使用して Cloud Functions にアプリケーションをデプロイする方法について説明します。Cloud Build を初めて使用する場合は、最初にクイックスタートビルド構成の概要をご覧ください。

Cloud Functions は、クラウド サービスの作成と接続に使用できるサーバーレスの実行環境です。Cloud Functions を使用すると、クラウド インフラストラクチャやサービスから生成されたイベントに関連する簡単な関数を作成できます。対象のイベントが発生すると、関数がトリガーされます。Cloud Functions の詳細については、Cloud Functions のドキュメントをご覧ください。

始める前に

  • Cloud Functions API を有効にします。

    Cloud Functions API を有効にする

  • Cloud Functions デベロッパーのロールを Cloud Build サービス アカウントに付与します。

    1. Cloud Build 設定ページを開きます。

      Cloud Build 設定ページを開く

    2. Cloud Functions デベロッパーのロールのステータスを「有効」に設定します。

  • このページで gcloud コマンドを実行するには、gcloud コマンドライン ツールをインストールします。

  • ビルドして Cloud Functions にデプロイするアプリケーションのソースコードを保持します。

デプロイを構成する

Cloud Build を使用すると、一般公開されているコンテナ イメージを使用してタスクを実行できます。これを行うには、Cloud Build 構成ファイルのビルド step にイメージを指定します。

Cloud Functions の gcloud functions deploy コマンドを使用して、関数コードを含むディレクトリから関数をデプロイします。構成ファイルのビルドステップで gcloud イメージを使用すると、イメージ内で gcloud コマンドを呼び出せます。このビルドステップに渡された引数が gcloud ツールに直接渡されるため、このイメージで任意の gcloud コマンドを実行できます。

Cloud Functions にアプリケーションをデプロイするには、次の操作を行います。

  1. プロジェクトのルート ディレクトリに、cloudbuild.yaml または cloudbuild.json という名前の Cloud Build 構成ファイルを作成します。
  2. config ファイルで次の操作を行います。

    • name フィールドを追加して gcloud ビルドステップを指定します。
    • gcloud functions deploy コマンドを呼び出すため、functions deployargs フィールドに追加します。
    • --source=. は、ソースコードが現在の作業ディレクトリにあることを示します。

    YAML

    steps:
    - name: 'gcr.io/cloud-builders/gcloud'
      args:
      - functions
      - deploy
      - [FUNCTION_NAME]
      - --source=.
      - --trigger-http
    

    JSON

    {
     "steps": [
      {
         "name": "gcr.io/cloud-builders/gcloud",
         "args": [
           "functions",
           "deploy",
            [
              "FUNCTION_NAME"
            ],
            "--source=.",
            "--trigger-http"
         ]
       }
      ]
    }
    

    ここで

    • [FUNCTION_NAME] は、デプロイする Cloud Functions の名前です。
    • --trigger-http は、この関数のトリガーの種類です。この場合は、HTTP リクエスト(Webhook)です。

    gcloud functions deploy の使用方法については、Cloud Functions のドキュメントをご覧ください。

  3. 前の手順で作成した構成ファイルを使用してビルドを開始します。

     gcloud builds submit --config [CONFIG_FILE_PATH] [SOURCE_DIRECTORY]
    

    ここで

    • [CONFIG_FILE_PATH] は、ビルド構成ファイルへのパスです。
    • [SOURCE_DIRECTORY] は、ソースコードのパスまたは URL です。

    gcloud builds submit コマンドに [CONFIG_FILE_PATH][SOURCE_DIRECTORY] を指定しないと、Cloud Build は、構成ファイルとソースコードが現在の作業ディレクトリにあることを前提とします。

継続的デプロイ

Cloud Build トリガーを作成すると、ソフトウェアの Cloud Functions へのデプロイを自動化できます。トリガーを構成すると、ソースコードを更新するたびにイメージをビルドしてデプロイできます。

Cloud Functions へのデプロイを自動化するには:

  1. リポジトリのルートで、gcloud functions deploy コマンドを呼び出すステップを構成ファイルに追加します。

    YAML

    steps:
    - name: 'gcr.io/cloud-builders/gcloud'
      args:
      - functions
      - deploy
      - [FUNCTION_NAME]
      - --source=.
      - --trigger-http
    

    JSON

    {
     "steps": [
      {
         "name": "gcr.io/cloud-builders/gcloud",
         "args": [
           "functions",
           "deploy",
            [
              "FUNCTION_NAME"
            ],
            "--source=.",
            "--trigger-http"
         ]
       }
      ]
    }
    

    ここで

    • [FUNCTION_NAME] は、デプロイする Cloud Functions の名前です。
    • --trigger-http は、この関数のトリガーの種類です。この場合は、HTTP リクエスト(Webhook)です。
  2. 前のステップで作成した構成ファイルを使用して、ビルドトリガーを作成します。

    1. Google Cloud Console で [トリガー] ページを開きます。

      [トリガー] ページを開く

    2. ページの上部にあるプロジェクト セレクタのプルダウン メニューからプロジェクトを選択します。

    3. [開く] をクリックします。

    4. [トリガーを作成] をクリックします。

      [トリガーの作成] ページで、次の設定を入力します。

      1. トリガーの名前を入力します。

      2. トリガーを開始するリポジトリ イベントを選択します。

      3. ソースコードとビルド構成ファイルを格納するリポジトリを選択します。

      4. トリガーを開始するブランチまたはタグ名を正規表現で指定します。

      5. ビルド構成: 以前に作成したビルド構成ファイルを選択します。

    5. [作成] をクリックして、ビルドトリガーを保存します。

リポジトリに新しいコードを push するたびに、ビルドが自動的にトリガーされ、Cloud Functions にデプロイされます。

Cloud Build トリガーの作成方法については、ビルドトリガーの作成と管理をご覧ください。

次のステップ