配置空闲虚拟机建议


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

准备工作

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

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

    gcloud

    1. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

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

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

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      如需了解详情,请参阅 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"
}

后续步骤