使用Terraform的google_dataflow_flex_template_job能否配置--workerLogLevelOverrides?
关于Terraform google_dataflow_flex_template_job配置workerLogLevelOverrides的问题
可以配置,但不能直接把workerLogLevelOverrides放在parameters映射的根层级——这就是你报错「无法识别的Dataflow参数」的原因。
原因说明
parameters字段是用来传递Flex模板自定义参数的,而workerLogLevelOverrides属于Dataflow Runner的作业级参数,不属于模板本身的自定义参数,因此需要通过特殊方式传递。
正确配置方式
在parameters中使用dataflowRunnerOptions这个特殊键,将runner级参数序列化为JSON字符串传入:
resource "google_dataflow_flex_template_job" "your_job" { name = "your-dataflow-job" region = "us-central1" container_spec_gcs_path = "gs://your-bucket/path/to/flex-template.json" parameters = { # 模板自身的自定义参数(如果有的话) input_path = "gs://your-bucket/input" output_path = "gs://your-bucket/output" # 传递Dataflow Runner参数 dataflowRunnerOptions = jsonencode({ workerLogLevelOverrides = { "org.apache.beam.sdk.io.gcp.bigquery" = "DEBUG" "com.google.cloud.dataflow.worker" = "INFO" } }) } temp_location = "gs://your-bucket/temp" }
验证生效
提交作业后,可以在Dataflow控制台的「作业详情」→「作业参数」中,查看dataflowRunnerOptions对应的参数是否正确加载;也可以通过Cloud Logging筛选worker日志,确认日志级别是否符合配置。
内容的提问来源于stack exchange,提问作者user25564083
相关产品推荐
相关产品推荐

