GCPのサポート使ったので、そのメモです。
短期的にはDataflowのRunnerのVersion 2のバグ(というか実装漏れ?)だったので同じ問題で悩んでいる方もググって辿り着けるように残しておきます。
使っているのは$100の開発環境のサポートプランなので、プランによって対応違いそうです。
事象
DataflowのRunnnerがVersion2がデフォルトになってくると、以下のような見出しのメールが来ました。
Dataflow Runner V2 will be enabled by default starting December 4, 2020 for new Python batch jobs using Beam SDK > 2.21
基本的な機能はほぼ動いてそうですが、 RuntimeValueProvider
が以下のようなエラーで動かなくなりました。
RuntimeValueProviderError('%s not accessible' % obj) occured when running job with option --experiments=use_runner_v2
対応
GCPの場合はGitHubにコードが公開されているので*1ほとんどのことは、コード読めば解決できるのですが、1日まるまる悩んでも糸口が掴めず、サポートに問い合わせることにしました。
事象が発生したRuntimeValueProvider無しのジョブと、RuntimeValueProvider有りのジョブ結果を用意して問い合わせましたが、イチから色々と再確認させれれました。
こちらとしては、コードを確認した上での問い合わせだったので、ここの時間が無駄になってしまったことが反省です。
どうしても時間かかりそうだったので、再現ようのリポジトリを作成して、これでテストしてもらったところ、すぐにバグ(Beta版なので対応漏れ?)だと判断してもらえました。
最終的に以下のパブリックのトラッカーに起票されて、これを追っておいてくれとクローズでした。
https://issuetracker.google.com/172078961
教訓と反省
最初にも書きましたが、一番安い$100の開発環境のサポートプランの話です。
タイムゾーンの違いで回答得られるの時間かかった
一往復に1日かかってしまうのは辛い。
そもそも日本語で問い合わせれば良かった?
前回日本語で問い合わせたら、英語しか対応していないと言われたので英語で問い合わせたのですが、今は日本語でも良いのかも。
再現環境用意すると早い
最初はジョブの中身まで見られると思ったのですが、そんなことも無かったので、 向こうの環境で再現できる情報を最初から準備すれば早かったなとの反省。
*1:例えばDataflowならApache Beam読めば色々わかります