Выполните запрос BigQuery в шаге Cloud Build - PullRequest
1 голос
/ 26 марта 2019

Я использую Cloud Build со сборщиком gcloud. Я переопределил entrypoint, чтобы он стал bq, чтобы я мог запустить SQL BigQuery на этапе сборки. Ранее у меня был SQL, встроенный непосредственно в конфигурацию YAML для Cloud Build. Это отлично работает:

steps:
- name: gcr.io/cloud-builders/gcloud
  entrypoint: 'bq'
  args: ['query', '--use_legacy_sql=false', 'SELECT 1']

Теперь я хотел бы реорганизовать SQL из YAML в файл. Согласно здесь , вы можете cat файл или направить его к bq. Это работает в командной строке без проблем.

Но я не могу заставить его работать с Cloud Build. Я перепробовал много разных комбинаций, избегая символов и т. Д., Но независимо от того, что я пробую, оболочка не оценивает / не выполняет обратные пометки cat my_query.sl, а вместо этого думает, что это сам запрос:

Работает нормально: enter image description here

Сборка в облаке Сборка не будет работать:

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

enter image description here

Я также попытался передать его вместо использования cat, но я получаю ту же ошибку.

Я, должно быть, здесь упускаю что-то очевидное, но я не вижу этого. Я мог бы создать собственный образ докера и обернуть все в сценарий оболочки, но я бы предпочел не делать этого, если это возможно.

Как вы используете Cloud Build с оценкой оболочки на этапе сборки?

1 Ответ

2 голосов
/ 26 марта 2019

Вы можете создать собственный скрипт Bash, например ::100100

#!/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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...