認証
gcloud auth login
プロジェクト作成
gcloud config configurations create <任意の設定名>
gcloud config set project <gcp上のプロジェクト名>
gcloud config set account <gcpのアカウント>
プロジェクトの切り替え
gcloud config configurations list ##設定名の確認
gcloud config configurations activate <切り替え先の設定名>
##変更後、listで対象の設定のIS_ACTIVEがTrueになっていることを確認
このあたりの参照元:gcloud でプロジェクトの切り替え設定
functionの確認
##対象のプロジェクトに入ってる状態で
gcloud functions list
functionのダウンロード
既に作成されてるfunctionをダウンロードしてくるコマンドはないっぽい。(2019年1月現在)
なのでGUIからZIPをダウンロードしてくる。
functionのデプロイ
gcloud functions deploy <function name> --region=<デプロイ先region> \
--runtime <ランタイム> \
[FLAGS...]
例)
gcloud functions deploy test_function_1 --region=asia-northeast1 \
--runtime nodejs8 \
--trigger-http \
--memory=512MB \
--entry-point=exported_function \
--allow-unauthenticated
指定しなかったオプションについてはデフォルト値で作成される。
--entry-point
についてはプロジェクト名と同じFunctionで検索されるので、違う関数名にしてる場合はちゃんと指定してあげないとエラーになる。
外部公開するFunctionの場合は、--allow-unauthenticated
を指定する。
※CloudFunctions起動元にallUsers
を追加するオプション。昔はデフォでついてたけど最近デフォでは認証が必要になった。
各オプションのデフォルト値や、記載以外のオプションについては公式参照のこと。
.
├ index.js //コード
├ package.json //必要なパッケージ
├ .env.yaml //環境変数を記載
└ .gcloudignore //uploadしないファイルを指定(yamlファイルとか。自身も無視でOK)
2回め以降のアップデートでは必要なオプションのみ記載すればOK。
ただし、もしデフォルトregion以外で作成してた場合は、--region
オプション必須。
CloudFunctionはFunction名/regionで一意に判別してるっぽい。
gcloud functions deploy <function name> --region=<region> [FLAGS...]
なお、Current Directory以外のファイルをアップしたい場合は--source=PATH
で指定必須。
環境変数の指定
1個1個指定もできるが、yamlで書いて--env-vars-file=FILE_PATH
でアップするのが良さそう。
既存の環境変数はすべてクリアされるので注意。