gcloud命令行中查询默认区域与可用区的两组命令实际有什么区别?
两组gcloud命令的核心差异
这两个命令查询的配置生效范围完全不同,核心区别如下:
- 第一组
gcloud config get-value compute/zone、gcloud config get-value compute/region查询的是本地gcloud客户端的当前生效配置- 该配置存储在你本地的Cloud SDK配置文件中,优先级高于项目全局配置,你可以通过
gcloud config set命令单独修改本地配置,只会影响你当前设备上gcloud操作的默认参数,不会改动谷歌云项目服务端的任何配置 - 如果你从未在本地主动设置过这两个参数,执行该组命令会返回
(unset)
- 该配置存储在你本地的Cloud SDK配置文件中,优先级高于项目全局配置,你可以通过
- 第二组
gcloud compute project-info describe --project <your_project_ID>查询的是谷歌云服务端对应项目的全局默认配置- 该配置存储在谷歌云的项目元数据中,所有有权限操作该项目的用户,只要本地没有单独设置过compute/zone、compute/region参数,操作时都会默认继承这个项目级的配置
- 执行命令后,你可以在返回结果的
commonInstanceMetadata字段下找到google-compute-default-region和google-compute-default-zone对应的取值,就是项目层面设置的默认区域和可用区 - 你可以通过修改项目元数据调整这个全局默认值,修改后所有未单独设置本地配置的用户都会同步生效
举个实际场景方便理解:假设项目全局默认zone设置为us-central1-a,而你在本地执行了gcloud config set compute/zone asia-east1-a,此时第一组命令返回的是asia-east1-a,第二组命令查到的项目默认zone还是us-central1-a。你后续创建资源如果不手动指定zone,会默认使用本地配置的asia-east1-a,而其他没有修改过本地配置的用户操作时,会默认使用项目级的us-central1-a。
内容的提问来源于stack exchange,提问作者Azeeb Us Zamaan
相关产品推荐
相关产品推荐

