🤖

【GCP】DataStoreのKindをDataFlowで削除するアレコレ

2022/07/13に公開

概要

DataStorekindを一括で削除するためのDataFlowを作成した際のアレコレをまとめる

設定についてはこちらを参考にさせていただきました

https://techblog.ap-com.co.jp/entry/2019/01/17/000000

設定項目

  • ジョブ名
    • 任意のジョブ名
  • リージョン エンドポイント
    • 任意のリージョン
  • Dataflowテンプレート
    • Bulk Delete Entities in Datastore [Deprecated]
  • GQL Query
    • SELECT * FROM kind名
  • 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を実行してくれる

スクリーンショット 2022-07-13 20.20.36.png

遭遇したエラー内容

対処方法: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.
GitHubで編集を提案

Discussion