gpt4 book ai didi

google-cloud-platform - 在 Cloud Build 步骤中执行 BigQuery 查询

转载 作者:行者123 更新时间:2023-12-04 01:45:43 25 4
gpt4 key购买 nike

我将 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 反引号,而是认为它是查询本身:

工作正常: enter image description here

在 Cloud Build 中构建它不会工作:

steps:
- name: gcr.io/cloud-builders/gcloud
entrypoint: 'bq'
args: ['query', '--use_legacy_sql=false', '`cat my_query.sql`']

enter image description here

我也尝试通过管道而不是使用 cat,但我得到了同样的错误。

我一定是在这里遗漏了一些明显的东西,但我看不到它。我可以构建自定义 docker 镜像,并将所有内容包装在 shell 脚本中,但如果可能的话,我宁愿不必这样做。

如何在构建步骤中将 Cloud Build 与 shell 评估结合使用?

最佳答案

您可以创建自定义 Bash 脚本,例如:

#!/bin/bash
if [ $# -eq 0 ]; then
echo "No arguments supplied"
fi
bq query --use_legacy_sql=false < $1

将此 run_query.sh 命名,然后将您的步骤定义为:

steps:
- name: gcr.io/cloud-builders/gcloud
entrypoint: 'bash'
args: ['run_query.sh', 'my_query.sql']

免责声明:这是基于阅读文档,但我没有实际使用过 Cloud Build。

关于google-cloud-platform - 在 Cloud Build 步骤中执行 BigQuery 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55349260/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com