gen1 と gen2
endpoint の認証
- いままで terraform で deploy してて気付かなかったが
gcloud functions deploy
でデプロイするとどうもデフォルトで認証が必要になるっぽい.
- なので trigger http の url に直にアクセスしても
403
になる
- curl 等でテストしたい場合は
-H "Authorization: bearer $(gcloud auth print-identity-token)"
と Authorization
ヘッダ足してあげれば ok
--allow-unauthenticated
を deploy 時に付けると認証不要にはなる
- function 消して指定しないで再 deploy したら
gcloud functions add-iam-policy-binding appName --region=asia-northeast1 --member=allUsers --role=roles/cloudfunctions.invoker
って言われた.
- これ terraform で確かに実行してる
--allow-unauthenticated
を指定すると最初から同じ事を実行してくれる…?
- 削除は
gcloud functions remove-iam-policy-binding appName --region=asia-northeast1 --member=allUsers --role=roles/cloudfunctions.invoker
だけだとダメで
gcloud functions remove-invoker-policy-binding appName --region=asia-northeast1 --member=allUsers
も実行が必要
gcloud functions get-iam-policy appName --region=asia-northeast1
--allow-unauthenticated
を改めて追加して get-iam-policy
したら予想通り, allUsers の role が追加されていた
- 認証あった方が良いのは間違いないので token の発行方法は後で確認しよう