Cloud Run Jobs
jobs createするときにいろいろ設定して、 jobs executeする
task(ごとにinstanceが立ち上がる)を使って、並列・直列などの実行を制御できる。
環境変数 “CLOUD_RUN_TASK_INDEX” を参照することで確認可能
環境変数 “CLOUD_RUN_TASK_ATTEMPT” にはこれまでの試行回数の値が入っており
実行については、web上のUI以外に、以下の2つ。
gcloud beta run jobs execute JOB_NAME --region=REGION
こっちだと --wait パラメータで実行終了(失敗?)をまってくれる。
http requestを送る access tokenをauth headerに
こっちは、jobUIDみたいなものがかえってくるので、それを...どこで調べる gcloud使えないから http requestなわけで...
loggingを拾って...みたいな説明があるが...
jobsの最後に、pubsubなどに成功/失敗 requestを送る??
認証
service accountなどの実行主体?が、cloud run invokerの権限を持っている。
また、schedulerを動かす? scheduler service agent の roleを持つ。
一般には OIDC が使用されます
ただし、*.googleapis.com でホストされている Google API は例外で、OAuth トークン
なので、cloud run jobsのapiは、https://${REGION}-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/${PROJECT_ID}/jobs/${SERVICE}:runなので、Authトークン
curlなどで叩く場合は、
gcloud auth print-identity-tokenを使う
gcloud auth print-access-token