Как объединить команды GCP Cloud Shell, которые выполняются во всех проектах, с командами, относящимися к одному проекту? - PullRequest
0 голосов
/ 05 марта 2019

Я хочу включить API во всех моих проектах, но создать набор данных BigQuery только в одном проекте.Я пробовал разные способы, но набор данных создается в каждом проекте.Любые предложения о том, как объединить эти два в один сценарий bash, чтобы API был включен во всех проектах, но набор данных создается только в одном проекте?

#!/bin/bash
for project in  $(gcloud projects list --format="value(projectId)")
do
    echo "ProjectId:  $project"
    gcloud config set project $project
    gcloud services enable compute.googleapis.com  --project $project
    bq mk testdataset <insert projectid>
done

1 Ответ

0 голосов
/ 06 марта 2019

Команда для создания набора данных в конкретном проекте:

bq mk --project_id <insert projectid> testdataset

Следовательно, поскольку вы знаете идентификатор проекта, в котором вы хотите создать набор данных, вы можете переместитьКоманда вне цикла, как это:

#!/bin/bash
for project in  $(gcloud projects list --format="value(projectId)")
do
    echo "ProjectId:  $project"
    gcloud services enable compute.googleapis.com  --project $project
done
bq mk --project_id <insert projectid> testdataset
...