【发布时间】:2021-06-03 05:08:03
【问题描述】:
AWS CLI 提供命令 describe-instance-types 来列出所有提供的 EC2 实例类型。它还允许按不同的属性过滤它们。是否可以使用 Google Cloud CLI 做类似的事情?
我想列出所有提供的机器类型及其属性。此外,我想按属性(内存大小、CPU 等)过滤它们。
【问题讨论】:
标签: google-cloud-platform gcloud
AWS CLI 提供命令 describe-instance-types 来列出所有提供的 EC2 实例类型。它还允许按不同的属性过滤它们。是否可以使用 Google Cloud CLI 做类似的事情?
我想列出所有提供的机器类型及其属性。此外,我想按属性(内存大小、CPU 等)过滤它们。
【问题讨论】:
标签: google-cloud-platform gcloud
是的。
https://cloud.google.com/sdk/gcloud/reference/compute/machine-types/list
ZONE="us-west1-c" # For example
gcloud compute machine-types list \
--project=${PROJECT} \
--filter=zone=${ZONE}
产量:
NAME ZONE CPUS MEMORY_GB DEPRECATED
c2-standard-16 us-west1-c 16 64.00
c2-standard-30 us-west1-c 30 120.00
c2-standard-4 us-west1-c 4 16.00
c2-standard-60 us-west1-c 60 240.00
c2-standard-8 us-west1-c 8 32.00
注意
ZONE始终是us-west1-c
还有:
gcloud compute machine-types list \
--project=${PROJECT} \
--filter=guestCpus=8
产量:
NAME ZONE CPUS MEMORY_GB DEPRECATED
c2-standard-8 us-central1-a 8 32.00
e2-highcpu-8 us-central1-a 8 8.00
e2-highmem-8 us-central1-a 8 64.00
e2-standard-8 us-central1-a 8 32.00
n1-highcpu-8 us-central1-a 8 7.20
注意
CPUS始终是8
您可以将--format=json 或--format=yaml 附加到任何gcloud 命令以使用这些格式显示结果。
但更多细节(和更多过滤)你需要gcloud compute machine-types describe(而不是list):
TYPE="n1-standard-1"
gcloud compute machine-types describe ${TYPE} \
--project=${PROJECT} \
--zone=${ZONE}
产量:
creationTimestamp: '1969-12-31T16:00:00.000-08:00'
description: 1 vCPU, 3.75 GB RAM
guestCpus: 1
id: '3001'
imageSpaceGb: 10
isSharedCpu: false
kind: compute#machineType
maximumPersistentDisks: 128
maximumPersistentDisksSizeGb: '263168'
memoryMb: 3840
name: n1-standard-1
selfLink: https://www.googleapis.com/compute/v1/projects/${PROJECT}/zones/${ZONE}/machineTypes/n1-standard-1
zone: us-west1-c
了解 Google 服务的另一种方式是通过APIs Explorer
例如Compute Engine的API是here
这在这种情况下很有用,因为它可以帮助您了解(每个 Google API 方法)返回的类型,包括 machineTypes.List。
据此,您可以确定要使用的过滤器。
APIs Explorer 还提供了一种直接与底层 REST API 交互的方法,它会生成例如curl 给你的命令。
因此,您可以:而不是gcloud compute machine-types list ...:
PROJECT=...
ZONE=...
TOKEN=$(gcloud auth print-access-token)
# Compute Engine machineTypes.List()
URL="https://compute.googleapis.com/compute/v1/projects/${PROJECT}/zones/${ZONE}/machineTypes"
curl \
--silent
--header "Authorization: Bearer ${TOKEN}" \
--header "Accept: application/json" \
--compressed \
"${URL}?filter=guestCpus%3D8"
【讨论】: