バージョン管理を使用して Cloud Functions をデプロイする

このページでは、Cloud Source Repositories でバージョン管理されているコードを使用して、Cloud Functions をデプロイする方法について説明します。

Cloud Source Repositories に Cloud Functions を統合することで、Cloud Source Repositories を使用して、独自の関数が含まれるコードをバージョン管理できます。時間の経過に伴って関数が変更されても、引き続き以前の commit にアクセスして、関数がいつどのように変更されたのかを知ることができます。

始める前に

  1. Cloud Source Repositories でコード リポジトリを作成するの手順を完了します。
  2. Cloud Functions API と Cloud Build API を有効にする
  3. Cloud Functions API と Cloud Build API を有効にする

関数をリポジトリに追加する

  1. ローカルマシンで、hello-world リポジトリのルート ディレクトリに移動します。

    cd hello-world
    
  2. ローカル システムで、関数コードのディレクトリを作成します。

    Linux または macOS

    ディレクトリを作成します。

    mkdir gcf_hello_world

    作成したディレクトリに移動します。

    cd gcf_hello_world

    Windows(CMD)

    ディレクトリを作成します。

    mkdir %HOMEDRIVE%%HOMEPATH%\gcf_hello_world

    作成したディレクトリに移動します。

    cd %HOMEDRIVE%%HOMEPATH%\gcf_hello_world
  3. gcf_hello_world ディレクトリで、次の内容の index.jsファイルを作成します。

    /* HTTP Cloud Function.
    *
    * @param {Object} req Cloud Function request context.
    * @param {Object} res Cloud Function response context.
    */
    exports.helloGET = (req, res) => {
      res.send('Hello from Cloud Functions and Cloud Source Repositories');
    };
    

    これは、helloGET という単純な関数で、HTTP GET リクエストに Hello from Cloud Functions and Cloud Source Repositories というテキストを返します。

Cloud Source Repositories に push する

作成したファイルを Cloud Source Repositories に push します。

  1. ファイルを追加します。

    git add .
    
  2. このアクションの履歴を記述したコメントをファイルに追加し、commit します。

    git commit -m "Add Cloud Functions test to Cloud Source Repositories"
    
  1. git push コマンドを使用して、ローカル Git リポジトリの内容を Cloud Source Repositories に追加します。

    git push origin master
    

関数を作成してデプロイする

Google Cloud Console または Google Cloud CLI のいずれかを使用して、関数を作成しデプロイします。

コンソール

  1. [Cloud Functions] ページに移動します。

    [Cloud Functions] ページに移動

    Cloud Functions を有効にした Google Cloud プロジェクトが選択されていることを確認します。

  2. [関数を作成] をクリックします。

  3. [関数の作成] ページで、次のオプションを入力します。

    • [環境] フィールドで [第 1 世代] を選択します。
    • [関数名] フィールドに「cloud-source-repositories-test」と入力します。
    • [リージョン] フィールドで [us-central1] を選択します。
    • [トリガー] リストで HTTP を選択します。
    • [認証] リストで [認証を要求する] を選択します。
    • [HTTPS を要求する] オプションがオンになっていることを確認します。
  4. [保存] をクリックします。

  5. [次へ] をクリックします。

    • [ランタイム] フィールドで [Node.js 16] を選択します。
    • [エントリ ポイント] フィールドに、「helloGET」と入力します。
    • [ソースコード] リストで Cloud Source Repositories を選択します。
    • [リポジトリ] フィールドに「hello-world」と入力します。
    • [ブランチ名] フィールドに「master」と入力します。
    • [ソースコードを含むディレクトリ] フィールドに、「/gcf_hello_world」と入力します。
  6. [デプロイ] をクリックします。

関数のデプロイ中、その横に小さなスピナーが表示されます。デプロイが完了すると、スピナーが緑色のチェックマークに変わります。

gcloud CLI

  1. ターミナル ウィンドウで、Google Cloud プロジェクト ID を格納する変数を設定します。リポジトリを含む Google Cloud プロジェクトと同じプロジェクトであることを確認します。

    export PROJECT_ID=$(gcloud config list --format 'value(core.project)')
    
  2. 関数をデプロイします。

    gcloud functions deploy helloGET \
    --source https://source.developers.google.com/projects/$PROJECT_ID/repos/hello-world/moveable-aliases/master/paths/gcf_hello_world \
    --trigger-http \
    --runtime=nodejs8;
    

Cloud Source Repositories へのデプロイの詳細については、ソース コントロールからのデプロイをご覧ください。

関数をテストする

Google Cloud コンソールまたは gcloud CLI のいずれかを使用して、新しい関数をテストします。

コンソール

  1. Cloud Functions の [概要] ページに移動します。

    [概要] ページに移動

    Cloud Functions を有効にした Google Cloud プロジェクトが選択されていることを確認します。

  2. cloud-source-repositories-test 関数の行で、[操作を表示する] メニューをクリックします。

  3. [関数をテスト] をクリックします。

  4. [関数をテスト] ボタンをクリックします。

    1~2 分後、[出力] フィールドが更新され、「Hello from Cloud Functions and Cloud Source Repositories」というメッセージが表示されます。

gcloud CLI

ターミナル ウィンドウで次のコマンドを入力します。

gcloud functions call helloGET

次のような出力が表示されます。

executionId: owqd9fdh5od2
result: Hello from Cloud Functions and Cloud Source Repositories

クリーンアップ

作成した関数とリポジトリを削除する方法は次のとおりです。

関数を削除する

  1. Cloud Functions の [概要] ページに移動します。

    [概要] ページに移動

    Cloud Functions を有効にした Google Cloud プロジェクトが選択されていることを確認します。

  2. このクイックスタート用に作成した helloGET 関数(cloud-source-repositories-test)を選択します。

  3. 同じ行にある [その他] をクリックしてから、[削除] をクリックします。

リポジトリを削除する

  1. Google Cloud コンソールで、Cloud Source Repositories の [すべてのリポジトリ] ページを開きます。

    Cloud Source Repositories を開く

  2. 削除するリポジトリにカーソルを合わせ、[設定] をクリックします。

    [全般設定] ページが開きます。

  3. [このリポジトリを削除] をクリックします。

    [リポジトリの削除] ダイアログが開きます。

  4. 削除するリポジトリの名前を入力します。

  5. [削除] をクリックします。

次のステップ