Open2

Dataform

kyamikyami

ワークスペース初期化時にDataform.jsonが存在しない

チュートリアルの「Dataform開発ワークスペースを作成して初期化する」において、初期化後dataform.jsonが自動生成されません。
理由は以下の通りでした。
https://cloud.google.com/dataform/docs/configure-dataform?hl=ja#repository-settings

Dataform core 3.0以上だったので、Dataform.jsonではなく、workflow_settings.yamlが生成されました。
ちなみに無理矢理Dataform.jsonを作成しても、コンパイルエラーが発生します。

kyamikyami

Dataform でカスタムサービスアカウントを使いたい

まずは、Dataformにおけるサービスアカウントについての仕組みを理解する必要がある。

Dataformでは、デフォルトのサービスアカウントを使用してユーザーに代わってBigQueryを操作します。」この一文がすごく重要です。
例えば、カスタムサービスアカウントを作成して、必要なRoleを割り当てたとしても、実際にDataformを操作するのはデフォルトのサービスアカウントになります。
カスタムSAを指定しDataformを実行すると以下のエラーとなります。

エラー
service-*********@gcp-sa-dataform.iam.gserviceaccount.com cannot actAs dataform@****-workspace.iam.
gserviceaccount.com, please grant Service Account Token Creator role: generic::permission_denied: IAM permission denied for service account dataform@@****-workspace.iam.gserviceaccount.com.

解決方法として、カスタムSAがデフォルトSAを利用できるよう権限委譲しなければなりません。
手順については、以下をご参照ください。
https://cloud.google.com/dataform/docs/required-access?hl=ja#grant_token_creation_access_to_a_custom_service_account