配置空闲虚拟机建议


本页介绍了如何查看和修改空闲虚拟机建议的配置。您可能需要修改配置以增加收到的建议的数量,或避免将特意具有小型工作负载的虚拟机错误分类为空闲虚拟机。

准备工作

  • 如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以选择以下任一选项向 Compute Engine 进行身份验证:

    Select the tab for how you plan to use the samples on this page:

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证

价格

可配置的建议是免费提供的。使用建议来减少资源用量可节省费用。

配置建议

如需配置闲置虚拟机建议,请执行以下步骤:

  1. 获取当前配置以获取配置的 JSON 文件。
  2. 修改 JSON 格式的配置文件。
  3. 上传新的配置文件以应用更改。

获取当前配置

您可以使用 Google Cloud CLI 或 REST 获取项目的空闲虚拟机建议的当前配置。

gcloud

如需获取当前配置参数,请使用 gcloud recommender recommender-config describe 命令并使用 google.compute.instance.IdleResourceRecommender 作为 Recommender ID:

gcloud recommender recommender-config describe google.compute.instance.IdleResourceRecommender \
  --project=PROJECT_ID \
  --location=ZONE

请替换以下内容:

  • PROJECT_ID:您的项目的 ID
  • ZONE:您要获取其当前配置的可用区

例如:

gcloud recommender recommender-config describe google.compute.instance.IdleResourceRecommender \
  --project=my-project \
  --location=us-central1-c

该命令会返回 Recommender 配置,包括可修改的子字段 params.observation_period

{
  "name": "projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.instance.IdleResourceRecommender/config",
  "recommenderGenerationConfig": {
    "params": {
      "observation_period": "1209600s"
    }
  },
  "etag": "\"2f3c9b65cda6a4ba\"",
  "updateTime": "2021-02-03T04:41:15.330351Z"
}

REST

如需检索当前配置,请使用 recommenders.getConfig 方法并将 google.compute.instance.IdleResourceRecommender 指定为 Recommender ID:

GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.instance.IdleResourceRecommender/config

请替换以下内容:

  • PROJECT_ID:要检索其 Recommender 配置的项目的 ID。
  • ZONE:包含您的项目的可用区。

在命令行中,执行以下命令以获取项目的 Recommender 配置:

PROJECT_ID=PROJECT_ID
ZONE=ZONE
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: ${PROJECT_ID}" \
https://recommender.googleapis.com/v1/projects/$PROJECT_ID/locations/$ZONE/recommenders/google.compute.instance.IdleResourceRecommender/config

该命令会返回 Recommender 配置,包括您可以修改的子字段:params.observation_period

{
  "name": "projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.instance.IdleResourceRecommender/config",
  "recommenderGenerationConfig": {
    "params": {
      "observation_period": "1209600s"
    }
  },
  "etag": "\"2f3c9b65cda6a4ba\"",
  "updateTime": "2021-02-03T04:41:15.330351Z"
}

更新项目的配置

如需更新空闲虚拟机建议的配置,请修改 observation_period 的值,然后上传项目的新配置。

您可以将观察期设置为 1 天到 14 天之间的值,使用包含总秒数的字符串,后跟字母 s

  • 对于 1 天的观察期,请使用 "86400s"
  • 对于 14 天的观察期,请使用 "1209600s"

在您上传新配置后,新配置大约需要 48 小时才能生效。在此之前,任何生成的建议都会使用之前的配置。

gcloud

如需更新配置参数,请使用 gcloud recommender recommender-config update 命令并将 google.compute.instance.IdleResourceRecommender 用作 Recommender ID:

gcloud recommender recommender-config update google.compute.instance.IdleResourceRecommender\
  --project=PROJECT_ID \
  --location=ZONE \
  --config-file=CONFIG_FILE_PATH \
  --etag=ETAG

请替换以下内容:

  • PROJECT_ID:您的项目的 ID
  • ZONE:您要获取其当前配置的可用区
  • CONFIG_FILE_PATH:包含当前配置的 JSON 文件的路径
  • ETAG:当前配置的 ETag 值

在配置文件中,仅指定包含更新后的配置参数的 recommenderGenerationConfig 对象。例如,如需指定观察期为 5 天,请使用以下配置文件:

{
  "params": {
    "observation_period": "432000s"
  }
}

如果命令成功,则会返回类似于以下内容的响应正文,其中显示了包含您刚刚修改的参数的新配置。

{
  "name": "projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.instance.IdleResourceRecommender/config",
  "recommenderGenerationConfig": {
    "params": {
      "observation_period": "432000s"
    }
  },
  "etag": "\"1245f9435cd01ea8\"",
  "updateTime": "2021-02-03T05:00:05Z"
}

REST

如需更新配置,请使用 recommenders.updateConfig 方法,并将 google.compute.instance.IdleResourceRecommender 指定为 Recommender ID:

PATCH https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.instance.IdleResourceRecommender/config

{
  "name": "projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.instance.IdleResourceRecommender/config",
  "recommenderGenerationConfig": {
    "params": {
      "observation_period": "1209600s"
    }
  },
  "etag": "\"2f3c9b65cda6a4ba\""
}

请替换以下内容:

  • PROJECT_ID:要修改 Recommender 配置的项目的 ID。
  • ZONE:包含您的项目的可用区。

将请求正文保存在文件(例如 config.json)中。然后,您可以在更新项目的 Recommender 配置时使用类似于以下命令的命令来引用该文件:

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-H "x-goog-user-project: ${PROJECT_ID}" \
-d @config.json \
https://recommender.googleapis.com/v1/projects/$PROJECT_ID/locations/$ZONE/recommenders/google.compute.instance.IdleResourceRecommender/config

POST 命令会返回类似于以下内容的响应正文,其中显示了包含您刚修改的参数的新配置。

{
  "name": "projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.instance.IdleResourceRecommender/config",
  "recommenderGenerationConfig": {
    "params": {
      "observation_period": "432000s"
    }
  },
  "etag": "\"1245f9435cd01ea8\"",
  "updateTime": "2021-02-03T05:00:05Z"
}

后续步骤