[英]Dataflow Template Metadata regex definition with escaped chars
我正在創建一個 Dataflow Flex 模板,我想定義輸入參數,如此處記錄https://cloud.google.com/dataflow/docs/guides/templates/using-flex-templates#metadata
我已經使用以下 JSON 配置了我的模板
{
"name": "My name",
"description": "my long description",
"parameters": [
{
"name": "outputTopic",
"label": "Pub/Sub ingest topic",
"helpText": "Pub/Sub topic to publish result"
},
{
"name": "bigQueryProject",
"label": "BigQuery project",
"helpText": "BigQuery google project"
},
{
"name": "tempLocation",
"label": "GCS Temp Location",
"helpText": "GCS Location for storing temporary files",
"regexes": [
"gs://.*"
]
},
{
"name": "startDate",
"label": "Start Date",
"isOptional": true,
"helpText": "Start date in the format YYYY-MM-DD or use 'YESTERDAY' as default",
"regexes": [
"^TODAY$|^YESTERDAY$|^\\d{4}-\\d{2}-\\d{2}$"
]
}
}
它工作正常,因為如果我使用 Google 控制台,我可以看到正確定義的所有參數
但是,當我使用所有經過驗證的參數執行作業時,請求因定義的 REGEX 無效而失敗
"(fb57dedae5c9fead): Template metadata contains invalid POSIX regex '^TODAY$|^YESTERDAY$|^\\d{4}-\\d{2}-\\d{2}$': invalid escape sequence: \\d in \\d.
看起來,創建有效的 JSON 文件所需的正則表達式中的雙精度 escaping 沒有被 Dataflow 很好地解釋。 提前致謝
您面臨的錯誤是由於無效的正則表達式。 正如我在評論中提到的,您可以使用\\\\
、(\\\\d) 解決此問題。
根據我的理解,您需要使用\\\\
,這將在字符串中生成\\
並在 RegEx 中生成\
。您可以通過使用 RegEx 驗證器來進一步了解這一點。
我認為你的|
沒有按照您的預期進行解釋。
您可以嘗試使用這種格式嗎? 這是我看到經常使用的:
^(TODAY|YESTERDAY|\\d{4}-\\d{2}-\\d{2})$
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.