Power Platform krājumu API

Krājumu API ļauj izpildīt strukturētus vaicājumus Azure Resource Graph, izmantojot POST pieprasījumu ar vaicājuma specifikāciju pieprasījuma pamattekstā. API pārvērš jūsu vaicājuma specifikāciju Kusto Query Language (KQL) izpildei pret Azure Resource Graph. Resursu krājumu API ir daļa no Power Platform API atsauces dokumentācijas. Pilnu resursu tipu un vaicājamo lauku sarakstu skatiet sadaļā Power Platform krājumu shēmas atsauce.

API galapunkts


POST {PowerPlatformAPI url}/resourcequery/resources/query?api-version=2024-10-01

Pieprasījuma pamatteksts

Pieprasījuma pamattekstā ir jābūt vaicājuma specifikācijai ar šādu struktūru:

Vaicājuma pieprasījuma struktūra

{
  "TableName": "string",
  "Clauses": [
    {
      "$type": "clause_type",
      // clause-specific properties
    }
  ],
  "Options": {
    "Top": 100,
    "Skip": 0,
    "SkipToken": "string"
  }
}

Rekvizīti

Rekvizīts Tips Obligāts Apraksts
TableName virkne Vaicājuma mērķa tabulas/resursa tips (t.i., "PowerPlatformResources")
Clauses masīvs Vaicājuma klauzulu masīvs, kas definē veicamās darbības
Options Objektu Nē. Azure Resource Graph vaicājuma opcijas lapu veidošanai un rezultātu kontrolei

Vaicājuma opcijas

Objekts Options atbalsta Azure Resource Graph vaicājuma parametrus lapu veidošanai un rezultātu kontrolei. Lai uzzinātu vairāk, skatiet ResourceQueryRequestOptions dokumentāciju .

Atbalstītās vaicājuma klauzulas

API atbalsta šajā sadaļā izceltos klauzulu tipus, izmantojot polimorfisko JSON serializāciju. Katrs klauzulas veids atbilst KQL operatoriem, kā dokumentēts KQL atsaucē:

Ja klauzula

Filtrē datus, pamatojoties uz lauka apstākļiem. Tulko uz KQL where operatoru.

{
  "$type": "where",
  "FieldName": "string",
  "Operator": "string",
  "Values": ["string1", "string2"]
}

Atbalstītie operatori: API atbalsta visus standarta KQL salīdzināšanas un virkņu operatorus. Pilnu pieejamo operatoru sarakstu skatiet KQL virknes operatoru un skaitlisko operatoru dokumentācijā.

Piemērs:

{
  "$type": "where",
  "FieldName": "type",
  "Operator": "in~",
  "Values": ["'microsoft.powerapps/canvasapps'", "'microsoft.copilotstudio/agents'"]
}

Tulko KQL:| where type in~ ('microsoft.powerapps/canvasapps', 'microsoft.copilotstudio/agents')

Projekta klauzula

Rezultātos atlasa konkrētus laukus. Tulko uz KQL project operatoru.

{
  "$type": "project",
  "FieldList": ["field1", "field2", "field3"]
}

Piemērs:

{
  "$type": "project",
  "FieldList": [
    "name", 
    "properties.displayName", 
    "environmentId = tostring(properties.environmentId)",
    "createdDate = properties.createdAt"
  ]
}

Tulko KQL:| project name, properties.displayName, environmentId = tostring(properties.environmentId), createdDate = properties.createdAt

Ņemiet klauzulu

Ierobežo atgriezto rezultātu skaitu. Tulko uz KQL take operatoru.

{
  "$type": "take",
  "TakeCount": 50
}

Tulko KQL:| take 50

Kārtot pēc klauzulas

Kārto rezultātus pēc norādītajiem laukiem. Tulko uz KQL sort operatoru.


{
  "$type": "orderby",
  "FieldNamesAscDesc": {
    "field1": "asc",
    "field2": "desc"
  }
}

Piemērs:

{
  "$type": "orderby",
  "FieldNamesAscDesc": {
    "tostring(properties.createdAt)": "desc",
    "properties.displayName": "asc"
  }
}

Tulko KQL:| sort by tostring(properties.createdAt) desc, properties.displayName asc

Atsevišķa klauzula

Atgriež unikālas vērtības norādītajiem laukiem. Tulko uz KQL distinct operatoru.


{
  "$type": "distinct",
  "FieldList": ["field1", "field2"]
}

Tulko KQL:| distinct field1, field2

Skaitīšanas klauzula

Atgriež atbilstošo ierakstu skaitu. Tulko uz KQL count operatoru.

{
  "$type": "count"
}

Tulko KQL:| count

Kopsavilkuma klauzula

Apkopo datus, izmantojot skaitīšanas vai argmax operācijas. Tulko uz KQL summarize operatoru.

{
  "$type": "summarize",
  "SummarizeClauseExpression": {
    "OperatorName": "count|argmax",
    "OperatorFieldName": "string",
    "FieldList": ["field1", "field2"]
  }
}

Atbalstītie operatori:

  • countcount() — saskaitīt ierakstus, kas sagrupēti pēc norādītajiem laukiem.
  • argmaxarg_max() — iegūstiet ierakstus ar maksimālo vērtību norādītajā laukā.

Skaitīt piemēru:

{
  "$type": "summarize",
  "SummarizeClauseExpression": {
    "OperatorName": "count",
    "OperatorFieldName": "resourceCount",
    "FieldList": ["resourceGroup", "type"]
  }
}

Tulko KQL:| summarize resourceCount = count() by resourceGroup, type

ArgMax piemērs:

{
  "$type": "summarize",
  "SummarizeClauseExpression": {
    "OperatorName": "argmax",
    "OperatorFieldName": "createdTime",
    "FieldList": ["resourceGroup"]
  }
}

Tulko KQL:| summarize arg_max(createdTime, *) by resourceGroup

Pagarināt klauzulu

Rezultātiem pievieno aprēķinātās kolonnas. Tulko uz KQL extend operatoru.

{
  "$type": "extend",
  "FieldName": "newFieldName",
  "Expression": "KQL_EXPRESSION"
}

Piemērs:

{
  "$type": "extend",
  "FieldName": "environmentId",
  "Expression": "tostring(properties.environmentId)"
}

Tulko KQL:| extend environmentId = tostring(properties.environmentId)https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/scalarfunctions) pieejamām funkcijām.

Pievienošanās klauzula

Apvienojas ar citu tabulu/apakšvaicājumu. Tulko uz KQL join operatoru.


{
  "$type": "join",
  "RightTable": {
    "TableName": "string",
    "Clauses": []
  },
  "JoinKind": "string",
    "LeftColumnName": "string",
  "RightColumnName": "string"
}

Atbalstītie savienojuma veidi: API atbalsta visus KQL savienojuma veidus. Pilnu sarakstu ar pieejamiem savienojuma veidiem un to uzvedību skatiet KQL savienojuma operatora dokumentācijā.

Piemērs (Power Platform resursu apvienošana ar vides informāciju):

{
  "$type": "join",
  "JoinKind": "leftouter",
  "RightTable": {
    "TableName": "PowerPlatformResources",
    "Clauses": [
      {
        "$type": "where",
        "FieldName": "type",
        "Operator": "==",
        "Values": ["'microsoft.powerplatform/environments'"]
      },
      {
        "$type": "project",
        "FieldList": [
          "environmentId = name",
          "environmentName = properties.displayName",
          "environmentRegion = location",
          "environmentType = properties.environmentType",
          "isManagedEnvironment = properties.isManaged"
        ]
      }
    ]
  },
  "LeftColumnName": "environmentId",
  "RightColumnName": "environmentId"
}

Tulko KQL:| join kind=leftouter (PowerPlatformResources | where type == 'microsoft.powerplatform/environments' | project environmentId = name, environmentName = properties.displayName, environmentRegion = location, environmentType = properties.environmentType, isManagedEnvironment = properties.isManaged) on $left.environmentId == $right.environmentId

Pilnīgi vaicājumu piemēri

Piemērs: pamata Power Platform resursu vaicājums (Power Platform administrēšanas centra noklusējuma modelis)

Iegūstiet visus Power Platform resursus ar vides informāciju — tas ir noklusējuma vaicājums, ko izmanto Power Platform administrēšanas centrs.

{
  "Options": {
    "Top": 1000,
    "Skip": 0,
    "SkipToken": ""
  },
  "TableName": "PowerPlatformResources",
  "Clauses": [
    {
      "$type": "extend",
      "FieldName": "joinKey",
      "Expression": "tolower(tostring(properties.environmentId))"
    },
    {
      "$type": "join",
      "JoinKind": "leftouter",
      "RightTable": {
        "TableName": "PowerPlatformResources",
        "Clauses": [
          {
            "$type": "where",
            "FieldName": "type",
            "Operator": "==",
            "Values": ["'microsoft.powerplatform/environments'"]
          },
            {
            "$type": "project",
            "FieldList": [
              "joinKey = tolower(name)",
              "environmentName = properties.displayName",
              "environmentRegion = location",
              "environmentType = properties.environmentType",
              "isManagedEnvironment = properties.isManaged"
            ]
          }
        ]
      },
      "LeftColumnName": "joinKey",
      "RightColumnName": "joinKey"
    },
    {
      "$type": "where",
      "FieldName": "type",
      "Operator": "in~",
      "Values": [
        "'microsoft.powerapps/canvasapps'",
        "'microsoft.powerapps/modeldrivenapps'",
        "'microsoft.powerautomate/cloudflows'",
        "'microsoft.copilotstudio/agents'",
        "'microsoft.powerautomate/agentflows'",
        "'microsoft.powerapps/codeapps'"
      ]
    },
    {
      "$type": "orderby",
      "FieldNamesAscDesc": {
        "tostring(properties.createdAt)": "desc"
      }
    }
  ]
}

Ekvivalents KQL:

PowerPlatformResources
| extend joinKey = tolower(tostring(properties.environmentId))
| join kind=leftouter (
    PowerPlatformResources
    | where type == 'microsoft.powerplatform/environments'
    | project joinKey = tolower(name), environmentName = properties.displayName, environmentRegion = location, environmentType = properties.environmentType, isManagedEnvironment = properties.isManaged
  ) on $left.joinKey == $right.joinKey
| where type in~ ('microsoft.powerapps/canvasapps', 'microsoft.powerapps/modeldrivenapps', 'microsoft.powerautomate/cloudflows', 'microsoft.copilotstudio/agents', 'microsoft.powerautomate/agentflows', 'microsoft.powerapps/codeapps')
| order by tostring(properties.createdAt) desc

Piemērs: Power Platform resursu skaitīšana pēc veida un atrašanās vietas

{
  "TableName": "PowerPlatformResources",
  "Clauses": [
    {
      "$type": "summarize",
      "SummarizeClauseExpression": {
        "OperatorName": "count",
        "OperatorFieldName": "resourceCount",
        "FieldList": ["type", "location"]
      }
    },
    {
      "$type": "orderby",
      "FieldNamesAscDesc": {
        "resourceCount": "desc"
      }
    }
  ]
}

Ekvivalents KQL:

PowerPlatformResources
| summarize resourceCount = count() by type, location
| sort by resourceCount desc

Piemērs: vienkāršs audekla programmu vaicājums

Iegūstiet audekla programmas ar pamata filtrēšanu un projekciju:

{
  "TableName": "PowerPlatformResources",
  "Clauses": [
    {
      "$type": "where",
      "FieldName": "type",
      "Operator": "==",
      "Values": ["'microsoft.powerapps/canvasapps'"]
    },
    {
      "$type": "project",
      "FieldList": [
        "name",
        "location",
        "properties.displayName",
        "properties.createdAt",
        "properties.environmentId"
      ]
    },
    {
      "$type": "take",
      "TakeCount": 100
    }
  ]
}

Ekvivalents KQL:

PowerPlatformResources
| where type == 'microsoft.powerapps/canvasapps'
| project name, location, properties.displayName, properties.createdAt, properties.environmentId
| take 100

Piemērs: resursu filtrēšana pēc vides un datumu diapazona

{
  "TableName": "PowerPlatformResources",
  "Clauses": [
    {
      "$type": "where",
      "FieldName": "type",
      "Operator": "==",
      "Values": ["'microsoft.powerapps/canvasapps'"]
    },
    {
      "$type": "where",
      "FieldName": "properties.environmentId",
      "Operator": "==",
      "Values": ["your-environment-id"]
    },
    {
      "$type": "extend",
      "FieldName": "createdDate",
      "Expression": "todatetime(properties.createdAt)"
    },
    {
      "$type": "where",
      "FieldName": "createdDate",
      "Operator": ">=",
      "Values": ["datetime(2024-01-01)"]
    },
    {
      "$type": "project",
      "FieldList": [
        "name",
        "properties.displayName",
        "properties.createdAt",
        "properties.createdBy",
        "properties.ownerId"
      ]
    },
    {
      "$type": "orderby",
      "FieldNamesAscDesc": {
        "createdDate": "desc"
      }
    }
  ]
}

Tulko KQL:

PowerPlatformResources
| where type == 'microsoft.powerapps/canvasapps'
| where properties.environmentId == "your-environment-id"
| extend createdDate = todatetime(properties.createdAt)
| where createdDate >= datetime(2024-01-01)
| project name, properties.displayName, properties.createdAt, properties.createdBy, properties.ownerId
| sort by createdDate desc

Atbildes formāts

API atgriež objektu ResourceQueryResult no Azure Resource Graph SDK. Šis objekts satur vaicājuma rezultātus un metadatus par vaicājuma izpildi.

Atbildes struktūra:

{
  "totalRecords": 1250,
  "count": 50,
  "resultTruncated": 1,
  "skipToken": "string_for_next_page",
  "data": [
    // Array of result objects based on your query
  ]
}