Closed6

Cloud SchedulerからGAEのFlexible環境のサービスを停止する

bisquebisque
  • 「APIとサービス」から、App Engine Admin APIを有効化する
  • 「IAMと管理」>「サービスアカウント」から、Cloud Schedulerで利用するサービスアカウントを作成する。
  • 「IAMと管理」>「IAM」から、メンバーを追加し、サービスアカウントを紐付ける。ロールとして「App Engine サービス管理者」を追加する
  • APIから操作しやすいようにserviceのversionを指定して固定にしておく。
    • 予約名: "default", "latest", and any name with the prefix "ah-" は使えないので注意
  • Cloud Schedulerから、上記サービスアカウントにて、App Engine Admin API の apps.services.versionsを叩いて、PATCHリクエストでServingStatusをSTOPPEDに変更する。
    https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.serving_status
bisquebisque

リクエストするとGAE側で 無効な引数(HTTP 400): At least one field must be specified for this operation. というエラーメッセージが表示される。

CLIの説明を見ると

       --message-body=MESSAGE_BODY
          Data payload to be included as the body of the HTTP request. May only
          be given with compatible HTTP methods (PUT or POST).

だから、もしかしてPATCHリクエストではbodyが送れてない?

bisquebisque

QueryParameterとして、 ?updateMask=servingStatus を付けて成功した!

このスクラップは2021/03/05にクローズされました