バージョン管理を使用して Cloud Functions をデプロイする
このページでは、Cloud Source Repositories でバージョン管理されているコードを使用して、Cloud Functions をデプロイする方法について説明します。
Cloud Source Repositories に Cloud Functions を統合することで、Cloud Source Repositories を使用して、独自の関数が含まれるコードをバージョン管理できます。時間の経過に伴って関数が変更されても、引き続き以前の commit にアクセスして、関数がいつどのように変更されたのかを知ることができます。
始める前に
- Cloud Source Repositories でコード リポジトリを作成するの手順を完了します。
- Cloud Functions API と Cloud Build API を有効にする
関数をリポジトリに追加する
ローカルマシンで、
hello-world
リポジトリのルート ディレクトリに移動します。cd hello-world
ローカル システムで、関数コードのディレクトリを作成します。
Linux または macOS
ディレクトリを作成します。
mkdir gcf_hello_world
作成したディレクトリに移動します。
cd gcf_hello_world
Windows(CMD)
ディレクトリを作成します。
mkdir %HOMEDRIVE%%HOMEPATH%\gcf_hello_world
作成したディレクトリに移動します。
cd %HOMEDRIVE%%HOMEPATH%\gcf_hello_world
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
という単純な関数で、HTTPGET
リクエストにHello from Cloud Functions and Cloud Source Repositories
というテキストを返します。
Cloud Source Repositories に push する
作成したファイルを Cloud Source Repositories に push します。
ファイルを追加します。
git add .
このアクションの履歴を記述したコメントをファイルに追加し、commit します。
git commit -m "Add Cloud Functions test to Cloud Source Repositories"
git push
コマンドを使用して、ローカル Git リポジトリの内容を Cloud Source Repositories に追加します。git push origin master
関数を作成してデプロイする
Google Cloud Console または Google Cloud CLI のいずれかを使用して、関数を作成しデプロイします。
コンソール
[Cloud Functions] ページに移動します。
Cloud Functions を有効にした Google Cloud プロジェクトが選択されていることを確認します。
[関数を作成] をクリックします。
[関数の作成] ページで、次のオプションを入力します。
- [環境] フィールドで [第 1 世代] を選択します。
- [関数名] フィールドに「
cloud-source-repositories-test
」と入力します。 - [リージョン] フィールドで [
us-central1
] を選択します。 - [トリガー] リストで HTTP を選択します。
- [認証] リストで [認証を要求する] を選択します。
- [HTTPS を要求する] オプションがオンになっていることを確認します。
[保存] をクリックします。
[次へ] をクリックします。
- [ランタイム] フィールドで [Node.js 16] を選択します。
- [エントリ ポイント] フィールドに、「
helloGET
」と入力します。 - [ソースコード] リストで Cloud Source Repositories を選択します。
- [リポジトリ] フィールドに「
hello-world
」と入力します。 - [ブランチ名] フィールドに「master」と入力します。
- [ソースコードを含むディレクトリ] フィールドに、「
/gcf_hello_world
」と入力します。
[デプロイ] をクリックします。
関数のデプロイ中、その横に小さなスピナーが表示されます。デプロイが完了すると、スピナーが緑色のチェックマークに変わります。
gcloud CLI
ターミナル ウィンドウで、Google Cloud プロジェクト ID を格納する変数を設定します。リポジトリを含む Google Cloud プロジェクトと同じプロジェクトであることを確認します。
export PROJECT_ID=$(gcloud config list --format 'value(core.project)')
関数をデプロイします。
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 のいずれかを使用して、新しい関数をテストします。
コンソール
Cloud Functions の [概要] ページに移動します。
Cloud Functions を有効にした Google Cloud プロジェクトが選択されていることを確認します。
cloud-source-repositories-test
関数の行で、[操作を表示する] メニューをクリックします。[関数をテスト] をクリックします。
[関数をテスト] ボタンをクリックします。
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
クリーンアップ
作成した関数とリポジトリを削除する方法は次のとおりです。
関数を削除する
Cloud Functions の [概要] ページに移動します。
Cloud Functions を有効にした Google Cloud プロジェクトが選択されていることを確認します。
このクイックスタート用に作成した
helloGET
関数(cloud-source-repositories-test
)を選択します。同じ行にある [その他] more_vert をクリックしてから、[削除] をクリックします。
リポジトリを削除する
Google Cloud コンソールで、Cloud Source Repositories の [すべてのリポジトリ] ページを開きます。
削除するリポジトリにカーソルを合わせ、[設定] settingsをクリックします。
[全般設定] ページが開きます。
[このリポジトリを削除] delete をクリックします。
[リポジトリの削除] ダイアログが開きます。
削除するリポジトリの名前を入力します。
[削除] をクリックします。
次のステップ
- Cloud Functions の詳細を確認する。