Power Platform түгендеу API

Inventory API Azure Resource Graph-қа құрылымдалған сұраныстарды POST сұранысы арқылы және сұраныс денесінде сұраныс спецификациясы арқылы орындауға мүмкіндік береді. API сіздің сұраныс спецификацияңызды Kusto Query Language (KQL) тіліне аударып, Azure Resource Graph бойынша орындалады. Ресурстарға арналған инвентаризация API Power Platform API анықтамалық құжаттаманың бөлігі болып табылады. Ресурс түрлерінің толық тізімі мен сұрауға болатын өрістер үшін Power Platform инвентаризация схемасының сілтемесін қараңыз.

API соңғы нүктесі


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

Негізгі мәтінді сұрау

Сұрау органында келесі құрылым бар сұрау спецификациясы болуы керек:

Сұрау сұрау құрылымы

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

Сипаттар

Сипат Түр Қажетті Сипаттама
TableName жол Иә Сұрауға арналған мақсатты кесте / ресурс түрі (мысалы, "PowerPlatformResources")
Clauses жиым Иә Орындалатын операцияларды анықтайтын сұрау сөйлемдерінің массиві
Options Ð Ð� Жоқ Azure Resource Graph pagination және result control үшін query options

Сұрау параметрлері

Options объектісі беттеу мен нәтижені басқару үшін Azure Resource Graph сұраныс параметрлерін қолдайды. Қосымша ақпарат алу үшін құжаттаманы қараңызResourceQueryRequestOptions.

Қолдау көрсетілетін сұрау сөйлемдері

API осы бөлімде көрсетілген сөйлем түрлерін полиморфты JSON сериялау арқылы қолдайды. Әрбір сөйлем түрі KQL сілтемесінде көрсетілгендей KQL операторларына сәйкес келеді:

Қай жерде тармақ

Өріс шарттарына негізделген деректерді сүзеді. KQLwhere операторына аударылады.

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

Қолдау көрсетілетін операторлар: API барлық стандартты KQL салыстыру және жол операторларын қолдайды. Қол жетімді операторлардың толық тізімін алу үшін KQL жол операторлары мен сандық операторлар құжаттамасын қараңыз.

Мысалы:

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

KQL тіліне аударылады:| where type in~ ('microsoft.powerapps/canvasapps', 'microsoft.copilotstudio/agents')

Жоба тармағы

Нәтижелерден белгілі бір өрістерді таңдайды. KQLproject операторына аударылады.

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

Мысалы:

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

KQL тіліне аударылады:| project name, properties.displayName, environmentId = tostring(properties.environmentId), createdDate = properties.createdAt

Take тармағы

Қайтарылған нәтижелер санын шектейді. KQLtake операторына аударылады.

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

KQL тіліне аударылады:| take 50

Тармақ бойынша реттілік

Нәтижелерді көрсетілген өрістер бойынша сұрыптайды. KQLsort операторына аударылады.


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

Мысалы:

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

KQL тіліне аударылады:| sort by tostring(properties.createdAt) desc, properties.displayName asc

Ерекше тармақ

Көрсетілген өрістер үшін бірегей мәндерді қайтарады. KQLdistinct операторына аударылады.


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

KQL тіліне аударылады:| distinct field1, field2

Граф тармағы

Сәйкес жазбалар санын қайтарады. KQLcount операторына аударылады.

{
  "$type": "count"
}

KQL тіліне аударылады:| count

Қорытындылау тармағы

Деректерді count немесе argmax операцияларын қолдана отырып біріктіреді. KQLsummarize операторына аударылады.

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

Қолдау көрсетілетін операторлар:

  • countcount() - Көрсетілген өрістер бойынша топтастырылған жазбаларды санау.
  • argmaxarg_max() - Көрсетілген өрісте ең жоғары мәні бар жазбаларды алу.

Санау мысалы:

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

KQL тіліне аударылады:| summarize resourceCount = count() by resourceGroup, type

ArgMax мысалы:

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

KQL тіліне аударылады:| summarize arg_max(createdTime, *) by resourceGroup

Ұзарту шарты

Нәтижелерге есептелген бағандарды қосады. KQLextend операторына аударылады.

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

Мысалы:

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

KQL тіліне аударылады:| extend environmentId = tostring(properties.environmentId)https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/scalarfunctions) Қол жетімді тапсырмалар үшін.

Қосылу шарты

Басқа кесте/қосалқы сұраумен қосылыңыз. KQLjoin операторына аударылады.


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

Қолдау көрсетілетін қосылу түрлері: API барлық KQL қосылу түрлерін қолдайды. Қол жетімді қосылу түрлерінің толық тізімі мен олардың әрекеті KQL қосылу операторының құжаттамасын қараңыз.

Мысал (Power Platform ресурстарын қоршаған орта ақпаратымен біріктіру):

{
  "$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"
}

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

Сұраудың толық мысалдары

Мысал: Негізгі Power Platform ресурс сұрауы (Power Platform әкімшілік орталығының әдепкі үлгісі)

Power Platform-ның барлық ресурстарын қоршаған орта туралы ақпаратпен алыңыз — бұл Power Platform әкімшілік орталығының әдепкі сұранысы.

{
  "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"
      }
    }
  ]
}

Балама 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

Мысал: Power Platform ресурстарын түрі мен орналасуы бойынша санау

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

Балама KQL:

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

Мысал: Қарапайым canvas қосымшалары сұрауы

Негізгі сүзгілеу және проекция бар кенеп бағдарламаларын алу:

{
  "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
    }
  ]
}

Балама KQL:

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

Мысал: Ресурстарды қоршаған орта мен уақыт диапазоны бойынша сүзу

{
  "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"
      }
    }
  ]
}

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

Жауап пішімі

API Azure Resource Graph SDK-дан ResourceQueryResult объектісін қайтарады. Бұл нысан сұрау нәтижелерін және сұрауды орындау туралы метадеректерді қамтиды.

Жауап құрылымы:

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