クイックスタート: Cloud Source Repositories から Cloud Functions にデプロイする

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

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

始める前に

  1. クイックスタート: リポジトリを作成するの手順を完了します。
  2. Cloud Functions API を有効にします。
  3. Cloud Functions 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"
    
  3. git push コマンドを使用して、ローカル Git リポジトリの内容を Cloud Source Repositories に追加します。

    git push origin master
    

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

Google Cloud Console または Cloud SDK で関数を作成してデプロイします。

Console

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

    [Cloud Functions] ページに移動

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

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

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

    • [名前] フィールドに「cloud-source-repositories-test」と入力します。
    • [トリガー] リストで HTTP を選択します。
    • [ソースコード] リストで Cloud Source Repositories のリポジトリを選択します。
    • [リポジトリ] フィールドに「hello-world」と入力します。
    • [ブランチ / タグ] リストで [ブランチ] を選択します。
    • [ブランチ名] フィールドに「master」と入力します。
    • [ソースコードを含むディレクトリ] フィールドに、「/gcf_hello_world」と入力します。
    • [実行する関数] フィールドに「helloGET」と入力します。
  4. [作成] をクリックします。

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

Cloud SDK

  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 へのデプロイの詳細については、ソース コントロールからのデプロイをご覧ください。

関数をテストする

GCP Console または Cloud SDK で新しい関数をテストします。

Console

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

    [概要] ページに移動

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

  2. cloud-source-repositories-test(以前に作成した helloGET 関数の名前)をクリックします。

    [関数の詳細] ページが開きます。

  3. [テスト] タブをクリックします。

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

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

Cloud SDK

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

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. GCP Console で、Cloud Source Repositories の [すべてのリポジトリ] ページを開きます。

    Cloud Source Repositories を開く

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

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

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

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

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

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

次のステップ