🤖
【GCP】DataStoreのKindをDataFlowで削除するアレコレ
概要
DataStore
のkind
を一括で削除するためのDataFlow
を作成した際のアレコレをまとめる
設定についてはこちらを参考にさせていただきました
設定項目
- ジョブ名
- 任意のジョブ名
- リージョン エンドポイント
- 任意のリージョン
- Dataflowテンプレート
- Bulk Delete Entities in Datastore [Deprecated]
- GQL Query
- SELECT * FROM
kind名
- SELECT * FROM
- Read data from Datastore Project Id
- 削除するDataStoreのプロジェクトID
- Delete all matching entities from the GQL Query present in this Datastore Project Id of
- 削除するDataStoreのプロジェクトID
- 一時ファイルな場所
- 一時ファイルを書き込むためのGCSのバケットを指定する
- サービスアカウントのメール
-
Dataflow ワーカー
権限を付与したサービスアカウントを指定 -
Dataflow デベロッパー
権限も付与して当方は設定したが恐らく不要
-
- ネットワーク
- ご自身のVPCのネットワーク名
- サブネット
-
- ご自身のVPCのサブネット名
-
DataFlow
経由でGQL
を実行してくれる
遭遇したエラー内容
対処方法:Dataflow API
とサービスアカウントに付与した権限が不足していないかをチェックする
“Workflow failed. Causes: There was a problem refreshing your credentials. Please check:
1. Dataflow API is enabled for your project.
2. Make sure both the Dataflow service account and the controller service account have sufficient permissions. If you are not specifying a controller service account, ensure the default Compute Engine service account [PROJECT_NUMBER]-compute@developer.gserviceaccount.com exists and has sufficient permissions. If you have deleted the default Compute Engine service account, you must specify a controller service account. For more information, see: https://cloud.google.com/dataflow/docs/concepts/security-and-permissions#security_and_permissions_for_pipelines_on_google_cloud_platform. , There is no cloudservices robot account for your project. Please ensure that the Dataflow API is enabled for your project.”
対処方法:ネットワーク・サブネットのどちらも設定されていない場合に発生するので設定を確認する
Workflow failed. Causes: Network default is not accessible to Dataflow Service account or does not exist
対処方法:IAMでサービスアカウントに対して付与した権限が不足してるので確認する
Permissions verification for controller service account failed. All permissions in IAM role roles/dataflow.worker should be granted to controller service account hogehoge@fugafuga.iam.gserviceaccount.com.
Discussion