GCPに触ってみたメモ
謎の事象
- Cloud Runのインスタンス数の最小を0にしておくと、インスタンス数0の時にApi Gateway経由で呼び出すと500エラーになる。
- Cloud Run側は起動に時間がかかるものの正常に動いていて、10秒弱で200OKを返している。
- Api Gatewayの設定でタイムアウト時間を変更してもエラーになった。タイムアウト時間関係なく8秒くらいの時点でエラーになる。
回避策
Cloud Runのインスタンス数の最小を1にする
結果
500エラーは出なくなった
懸念
- 請求金額が増えるのでは?
- 1日30円くらい増えた
- 一旦許容
まだ使っていないFirebase のストレージが勝手に増えていく、、、
どうもこれっぽい
-
FirebaseとストレージとGCPのストレージは連動している?
-
この記事はApp Engineだが、Cloud Run でも同じことがおきていそう
-
GCP -> Cloud Storage -> asia.artifacts.*******.appspot.com
対策がいるなぁ、、、
自動でコンテナイメージを消す
-
ライフサイクル設定
-
ルールを追加 -> オブフェクトを削除する -> 次へ
-
接頭語でパスを指定。たぶん
sha256:
まで固定っぽいと信じてそこまでいれる。
-
Set Conditionで、
年齢
。多分いらんから3日で消していいやろと雑に設定。-
年齢
って翻訳はどうなの?
-
反映されるまで24時間かかるらしいので、明日まで様子見しよう。
ドキュメントを読むと接頭語(prefix)バケット名を含まないのが正しそう
なので設定修正
お、消えた消えた
Firebase側はまだ。注意書きも出ているし明日まで待つ。
Artifact Registryって、なんだ?
もしかして、コレを使ったほうがよいの?
gcp-cli でデフォルトのプロジェクトをセットするコマンド
gcloud config set project [プロジェクト名]
なるほど。。。
GCPのVPCはAWSのVPCと結構違うのにハマった。
subnetにpublicとかprivateとかがなくてfirewallでアクセス制御すればよい、というのの気づくのに1時間かかった
GCPのAPI Gatewayのペイロード制限は32MB
AWSよりは緩いけど、やっぱり大容量ファイルは扱えない
API Gatewayを通ったあとのtokenは、X-Apigateway-Api-Userinfo
に保存される
バックエンドのAPIでtokenを使いたいときは、X-Apigateway-Api-Userinfo
を使う
CloudRunがStorageに対してgetSignedUrl()をするときは、サービスアカウントにToken CreatorのRoleが必要