Dataflow Config Store を使用してジョブ設定を管理する

Dataflow Config Store を使用して、 Google Cloud 組織、フォルダ、プロジェクトなどの Resource Manager リソース全体でジョブ設定を構成して管理します。

Dataflow Config Store を使用すると、個々のパイプライン コード、ジョブ テンプレート、デプロイ スクリプトを変更することなく、構成ポリシーを大規模に設定できます。たとえば、組織またはフォルダ全体にデフォルトのランチャー マシンタイプを設定して、Compute Engine マシンタイプの不足を軽減したり、マシン移行を容易にしたり、リソースのサイズ設定を標準化したりできます。

サポートされている設定と制限事項

Dataflow Config Store は、次の設定をサポートしています。

  • default_launcher_machine_type: Flex テンプレート ジョブのテンプレート ランチャー VM で使用されるデフォルトの Compute Engine マシンタイプ( e2-standard-2 や n2-standard-2 など)を指定します。

Dataflow Config Store には次の制限があります。

  • default_launcher_machine_type 設定は、Flex テンプレート ジョブのテンプレート ランチャー VM にのみ適用されます。ワーカー VM やクラシック テンプレート ジョブには影響しません。ワーカー VM のマシンタイプを構成するには、Dataflow ワーカー VM を構成するをご覧ください。
  • プロジェクトをターゲットにする場合は、数値のプロジェクト番号を指定する必要があります。プロジェクト ID はサポートされていません。
  • Config Store の設定はリージョン単位であり、同じ Dataflow リージョンで実行されているジョブにのみ適用されます。

解決の優先順位を設定する

Dataflow ジョブが開始されると、最も具体的な構成が優先される階層的な優先順位モデルを使用して設定が解決されます。

  1. ジョブレベルの構成: ジョブの送信時に明示的に渡される設定(パイプライン オプションや実行パラメータなど)。
  2. プロジェクト レベルの設定: ジョブが実行されるプロジェクトで直接構成される Config Store の設定。
  3. フォルダまたは組織レベルの設定: Resource Manager 階層の上位リソースで構成された Config Store の設定。プロジェクトに最も近い祖先フォルダは、上位のフォルダや組織よりも優先されます。
  4. Dataflow サービス全体のデフォルト: ジョブまたは Resource Manager 階層レベルでオーバーライドが定義されていない場合に使用される組み込みサービスのデフォルト。

始める前に

Config Store の設定を管理または検査する前に、ターゲット プロジェクト、フォルダ、または組織に必要な Identity and Access Management(IAM)権限があることを確認してください。

必要な権限

オペレーション 必要な権限
設定を作成または更新する dataflow.configStoreSettings.create
明示的に構成された設定を表示する dataflow.configStoreSettings.get
リソースの設定を一覧表示する dataflow.configStoreSettings.list
有効な設定を解決する dataflow.configStoreSettings.resolve
設定のオーバーライドを削除する dataflow.configStoreSettings.delete

事前定義ロール

ターゲット プロジェクト、フォルダ、または組織に次の事前定義ロールを付与するか、必要な権限を持つカスタムロールを作成します。

  • Dataflow 管理者(roles/dataflow.admin): Config Store 設定(dataflow.configStoreSettings.*)を作成、取得、一覧表示、解決、削除する権限が含まれます。
  • Dataflow デベロッパー(roles/dataflow.developer): Config Store の設定を取得、一覧表示、解決するための読み取り専用権限が含まれています。
  • Dataflow 閲覧者(roles/dataflow.viewer): Config Store の設定を取得、一覧表示、解決するための読み取り専用権限が含まれています。

詳しくは、IAM によるアクセス制御をご覧ください。

gcloud CLI を使用して設定を管理する

Config Store の設定は、gcloud CLI を使用して管理できます。

ターゲット リソースのスコープを指定する

gcloud dataflow config-store-settings コマンドを使用する場合は、次の相互に排他的なフラグのいずれかを使用して、ターゲット リソースのスコープを指定します。同じコマンドで組み合わせないでください。

  • プロジェクト: --project=PROJECT_NUMBER(プロジェクト ID ではなく、 Google Cloud プロジェクトの番号を使用します)
  • --folder=FOLDER_ID(数値のフォルダ ID)フォルダ
  • 組織: --organization=ORGANIZATION_ID(数値の組織 ID)

Config Store の設定を作成または更新する

プロジェクト、フォルダ、または組織に設定を作成するには、gcloud dataflow config-store-settings create コマンドを実行します。設定がターゲット リソースにすでに存在する場合、別の --value を指定して create コマンドを再度実行すると、既存の設定値が上書きされます。

gcloud dataflow config-store-settings create SETTING_ID \
    --project=PROJECT_NUMBER \
    --location=REGION \
    --value="SETTING_VALUE"

次のように置き換えます。

  • SETTING_ID: 構成するサポートされている設定の ID(default_launcher_machine_type など)。
  • PROJECT_NUMBER: 数値の Google Cloudプロジェクト番号。プロジェクトではなくフォルダまたは組織をターゲットにするには、--project=PROJECT_NUMBER を --folder=FOLDER_ID または --organization=ORGANIZATION_ID に置き換えます。
  • REGION: 設定が適用される Dataflow リージョン(us-central1 など)。
  • SETTING_VALUE: 設定の値(default_launcher_machine_type の場合は e2-standard-2 など)。

Config Store の設定を取得する

リソースに直接構成されている設定を取得するには、gcloud dataflow config-store-settings describe コマンドを実行します。

gcloud dataflow config-store-settings describe SETTING_ID \
    --project=PROJECT_NUMBER \
    --location=REGION

次のように置き換えます。

  • SETTING_ID: 取得するサポートされている設定の ID(default_launcher_machine_type など)。
  • PROJECT_NUMBER: 数値の Google Cloudプロジェクト番号。プロジェクトではなくフォルダまたは組織をターゲットにするには、--project=PROJECT_NUMBER を --folder=FOLDER_ID または --organization=ORGANIZATION_ID に置き換えます。
  • REGION: 設定の Dataflow リージョン(us-central1 など)。

Config Store の設定を一覧表示する

リソースに直接構成されているすべての Config Store 設定を一覧表示するには、gcloud dataflow config-store-settings list コマンドを実行します。

gcloud dataflow config-store-settings list \
    --project=PROJECT_NUMBER \
    --location=REGION \
    --page-size=10

次のように置き換えます。

  • PROJECT_NUMBER: 数値の Google Cloudプロジェクト番号。プロジェクトではなくフォルダまたは組織をターゲットにするには、--project=PROJECT_NUMBER を --folder=FOLDER_ID または --organization=ORGANIZATION_ID に置き換えます。
  • REGION: 設定を一覧表示する Dataflow リージョン(us-central1 など)。

有効な設定を解決する

リソース階層内で開始されたジョブに適用される設定値を評価するには、gcloud dataflow config-store-settings resolve コマンドを実行します。このコマンドは、ジョブで使用される設定値を確認するためのドライランとして機能します。

gcloud dataflow config-store-settings resolve SETTING_ID \
    --project=PROJECT_NUMBER \
    --location=REGION

次のように置き換えます。

  • SETTING_ID: 解決するサポートされている設定の ID(default_launcher_machine_type など)。
  • PROJECT_NUMBER: 数値の Google Cloudプロジェクト番号。プロジェクトではなくフォルダまたは組織をターゲットにするには、--project=PROJECT_NUMBER を --folder=FOLDER_ID または --organization=ORGANIZATION_ID に置き換えます。
  • REGION: ジョブが実行される Dataflow リージョン(us-central1 など)。

出力では、有効な setting と、階層内のすべての候補 choices が返されます。

setting:
  name: projects/123456789012/locations/us-central1/configStoreSettings/default_launcher_machine_type
  value:
    stringValue: e2-standard-2
choices:
- name: projects/123456789012/locations/us-central1/configStoreSettings/default_launcher_machine_type
  value:
    stringValue: e2-standard-2
- name: organizations/987654321098/locations/us-central1/configStoreSettings/default_launcher_machine_type
  value:
    stringValue: n1-standard-1

この例では、プロジェクトと組織の両方で値が定義されており、より具体的なプロジェクト レベルの設定(e2-standard-2)が優先されます。

Config Store の設定を削除する

リソースから設定のオーバーライドを削除するには、gcloud dataflow config-store-settings delete コマンドを実行します。

gcloud dataflow config-store-settings delete SETTING_ID \
    --project=PROJECT_NUMBER \
    --location=REGION

次のように置き換えます。

  • SETTING_ID: 削除するサポートされている設定の ID(default_launcher_machine_type など)。
  • PROJECT_NUMBER: 数値の Google Cloudプロジェクト番号。プロジェクトではなくフォルダまたは組織をターゲットにするには、--project=PROJECT_NUMBER を --folder=FOLDER_ID または --organization=ORGANIZATION_ID に置き換えます。
  • REGION: 設定の Dataflow リージョン(us-central1 など)。

設定を削除すると、Dataflow は、祖先フォルダまたは組織で構成されている設定、またはサービス全体のデフォルトにフォールバックします。

Config Store のエラーのトラブルシューティング

次のリストでは、一般的な Config Store エラーの解決方法について説明します。

  • INVALID_ARGUMENT(HTTP 400): 設定値がサポートされていません(無効な Compute Engine マシンタイプなど)。--project に数値のプロジェクト番号ではなくプロジェクト ID が指定されているか、--location が有効な Dataflow リージョンではありません。
  • NOT_FOUND(HTTP 404): 指定されたリソースに設定が直接作成されていません。gcloud dataflow config-store-settings list を実行してリソースの設定を表示するか、resolve を実行して継承された設定を確認します。
  • PERMISSION_DENIED(HTTP 403): 呼び出し元に、ターゲット プロジェクト、フォルダ、または組織のスコープで必要な IAM 権限がありません。
  • ABORTED(HTTP 409): リクエスト中に同時更新によって設定が変更されました。コマンドを再試行します。
  • 設定の作成後にジョブが失敗する: Config Store 設定を作成すると、設定の形式が検証されますが、リージョン リソースの可用性はチェックされません。構成されたリソースが使用できない場合、ジョブは起動時に失敗する可能性があります。たとえば、ターゲット リージョンでマシンタイプがサポートされていない場合や、ゾーンでリソース不足が発生している場合があります。この問題を解決するには、使用可能なマシンタイプを使用するように設定を更新します。詳細については、使用可能なリージョンとゾーンとランチャー VM のリソース不足をご覧ください。

次のステップ