💡
Terraform の templatefile で管理した BigQuery Scheduled Query を envsubst で展開
課題感
以下のように、Terraform の templatefile の形式でテンプレーティングされている、SQLファイルがあったとします(スケジュールクエリのために)。
foobar.sql
select
*
from
foobar_project_${env}.foobar_dataset_${id}.foobar_table
;
ただこのままでは、そのままクエリ発行することができません。プレースホルダに値をいれてあげる必要があります。
解決: envsubst を使おう
envsubst を使うと簡単に展開できます。
$ brew install envsubst
さっきの、foobar.sql に当てはめてみると...ちゃんとプレースホルダに値が入った状態で展開されますね
$ env=test id=123 envsubst < foobar.sql
select
*
from
foobar_project_test.foobar_dataset_123.foobar_table
;
これをパイプで繋いで、bq query してもよさそう。
Discussion