こんにちは!
分析官のMです。
最近、
「spreadsheetに記入したデータをGoogle Apps Script(GAS)を用いてGoogle Cloud Storage(GCS)に格納する」
仕組みを作っていたのですが、思わぬところで時間をとられてしまいました。
本記事では私がどこで躓いてしまったかを備忘録的にまとめています。
興味がある方は是非覗いてみてください。
結論から言うと…
「V8ランタイム対応前に作成されたライブラリはV8ランタイムに対応していない可能性があるので使用する際は注意が必要」
ということです。
実際に私がどのようなスクリプトを書いてどこで躓いたのか、もう少し具体的に説明します。
スクリプトの構成
スクリプトの構成は以下のような感じです。
Step-1 spreadsheetからGCSに転送したいデータを配列形式で取得
Step-2 配列形式から”,”区切りのテキストに変換
Step-3 一般公開されているライブラリを用いて認証(https://github.com/Spencer-Easton/Apps-Script-GSApp-Library)
Step-4 適当にファイル名(**.csv)をつけてGCSに格納
躓いた点
恥ずかしながら私はStep-3で躓いてました…。
ライブラリの使用例と比較しても同様のコードになっているのになぜかエラーの嵐。
https://github.com/Spencer-Easton/Apps-Script-GSApp-Library/blob/master/example.gs
色々ググっているうちに以下の記事にたどり着きます。
https://auto-worker.com/blog/?p=691
記事の内容は
「GASは2020年2月にV8ランタイム対応になって便利になったけど、いきなりバージョンアップするのは結構危険やで。」
といった内容。
ほうほう。
さらに読み進めてみると、
「V8ランタイムに対応していないライブラリはV8ランタイムではエラーになるで。」
というような文章が…。
自分:「あー、これが原因ぽいな…」
はい、その通りでした。
実際にGASの設定画面で
“Chrome V8ランタイムを有効にする”のチェックを外して再実行してみると、無事GCSにcsvファイルが格納されました。
とりあえず一件落着。
おまけ
GASをざっくり理解するには以下の動画がおすすめです!
https://www.youtube.com/watch?v=_fOfwvKm9zU