1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Cloud Functions(HTTPトリガー)をローカルから呼び出す

Posted at

背景

Cloud Functionsをデプロイしたあと、テスト実行したい。
そんなときにコマンド一発で実行できる方法があったのでこちらにメモとして記載する。

やりかた

前提として以下を想定

  • HTTPトリガーはPOST(他のでもできるはず)
  • 呼び出しに認証が必要な関数

gen1の場合

FUNCTION_NAME=hogehoge

curl -X POST \
$(gcloud functions describe ${FUNCTION_NAME} --region asia-northeast1 --format="value(httpsTrigger.url)") \
-H "Authorization: Bearer $(gcloud auth print-identity-token)" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'

gen2の場合

FUNCTION_NAME=hogehoge

curl -X POST \
$(gcloud functions  describe ${FUNCTION_NAME} --gen2 --region asia-northeast1 --format="value(serviceConfig.uri)") \
-H "Authorization: Bearer $(gcloud auth print-identity-token)" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'

解説

gcloud functions describe

関数のURLを取るためのコマンド。
Cloud Functionsのgen1/gen2でちょっと違うコマンドになるので注意。

gcloud auth print-identity-token

認証用トークンを取得するコマンド。
ローカルに設定してあるアカウントでトークンを取得するので、事前にアカウントに対して権限が付与されている必要がある。

必要な権限

  • gen1: cloudfunctions.functions.invokeroles/cloudfunctions.invokerロールをつけとけばOK)
  • gen2: run.routes.invokeroles/run.invokerロールをつけとけばOK)

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?