如何将跨所有项目 运行 的 GCP Cloud Shell 命令与特定于一个项目的命令相结合?

How to combine GCP Cloud Shell commands that run across all projects with commands that are specific to one project?

我希望在我的所有项目中启用 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

在特定项目中创建数据集的命令是:

bq mk --project_id <insert projectid> testdataset

因此,由于您知道要在其中创建数据集的项目 ID,因此可以像这样将命令移出循环:

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