首页 > 解决方案 > 删除 Azure 资源组中使用时间超过 x 天的所有资源

问题描述

我试图在资源组(python api)中的资源上“扩展”creationTime,所以我可以找到它的年龄,如果 > max_age_days 我会删除资源组中的资源。

但是creationTime 似乎在资源上不可用。

是否有另一种方法可以根据年龄删除资源组中的资源?

创建日期和创建者可能是资源管理最基本的要求。

标签: azureazure-resource-manager

解决方案


Azure 将 createdTime 和 changedTime 属性存储在您可以通过将 $expand 参数添加到 URL 来查询的所有资源上。

expand 参数未记录在资源组 API 文档中,但记录在 List Resources API 文档 ( https://docs.microsoft.com/en-us/rest/api/resources/resources/list ) 和它的工作方式相同。

我不知道如何使用 Python API 添加此参数,但这里是 REST API 本身的一个示例(使用https://docs.microsoft.com/en-us/文档中的 Try It 按钮休息/api/resources/resourcegroups/list#code-try-0)。

GET https://management.azure.com/subscriptions/1237f4d2-3dce-4b96-ad95-677f764e7123/resourcegroups?api-version=2019-08-01&%24expand=createdTime

{
  "value": [
    {
      "id": "/subscriptions/1237f4d2-3dce-4b96-ad95-677f764e7123/resourceGroups/test2rg-3-backup",
      "name": "test2rg-3-backup",
      "type": "Microsoft.Resources/resourceGroups",
      "location": "eastus",
      "createdTime": "2018-11-12T18:08:38.667582Z",
      "properties": {
        "provisioningState": "Succeeded"
      }
    },
    {
      "id": "/subscriptions/1237f4d2-3dce-4b96-ad95-677f764e7123/resourceGroups/proddeploy",
      "name": "proddeploy",
      "type": "Microsoft.Resources/resourceGroups",
      "location": "eastus",
      "createdTime": "2019-01-10T21:28:48.8057057Z",
      "tags": {
        "a": "b"
      },
      "properties": {
        "provisioningState": "Succeeded"
      }
    },
...

推荐阅读