【发布时间】:2019-03-26 03:04:29
【问题描述】:
我将 Cloud Build 与 gcloud 构建器一起使用。我将entrypoint 覆盖为bq,这样我就可以在构建步骤中运行一些BigQuery SQL。以前,我将 SQL 直接嵌入到 Cloud Build 的 YAML 配置中。这工作正常:
steps:
- name: gcr.io/cloud-builders/gcloud
entrypoint: 'bq'
args: ['query', '--use_legacy_sql=false', 'SELECT 1']
现在我想将 SQL 从 YAML 中重构到一个文件中。根据here,您可以cat 文件或将其通过管道传送到bq。这在命令行上运行没有任何问题。
但是,我无法让它与 Cloud Build 一起使用。我尝试了很多不同的组合,以及转义字符等,但无论我尝试什么,shell 都不会评估/执行 cat my_query.sl 反引号,而是认为它是查询本身:
在 Cloud Build 中构建它不起作用:
steps:
- name: gcr.io/cloud-builders/gcloud
entrypoint: 'bq'
args: ['query', '--use_legacy_sql=false', '`cat my_query.sql`']
我也尝试使用管道而不是使用cat,但我得到了同样的错误。
我必须在这里遗漏一些明显的东西,但我看不到它。我可以构建一个自定义 docker 映像,并将所有内容包装在一个 shell 脚本中,但如果可能的话,我宁愿不必这样做。
如何在构建步骤中使用 Cloud Build 和 shell 评估?
【问题讨论】:
标签: google-cloud-platform google-bigquery google-cloud-build