IoT Central uygulamaları oluşturmak ve yönetmek için REST API'yi kullanma
IoT Central uygulamaları oluşturmak ve yönetmek için denetim düzlemi REST API'sini kullanabilirsiniz. REST API'yi kullanarak şunları da yapabilirsiniz:
- Uygulamanıza yönetilen kimlik ekleyin.
- Uygulamanızdaki panoları yönetme
Bu API'yi kullanmak için kaynak için taşıyıcı belirteci management.azure.com
gerekir. Taşıyıcı belirteci almak için Azure CLI'yı kullanabilirsiniz:
az account get-access-token --resource https://management.azure.com
IoT Central kullanıcı arabirimini kullanarak IoT Central uygulamasını yönetmeyi öğrenmek için bkz . IoT Central uygulaması oluşturma.
Uygulamalarınızı listeleme
Bir abonelikteki IoT Central uygulamalarının listesini almak için:
GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.IoTCentral/iotApps?api-version=2021-06-01
Bir kaynak grubundaki IoT Central uygulamalarının listesini almak için:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.IoTCentral/iotApps?api-version=2021-06-01
Tek bir uygulamanın ayrıntılarını alabilirsiniz:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.IoTCentral/iotApps/{applicationName}?api-version=2021-06-01
IoT Central uygulaması oluşturma
Sistem tarafından atanan yönetilen kimliğe sahip bir IoT Central uygulaması oluşturmak için:
PUT https://management.azure.com/subscriptions/<your subscription id>/resourceGroups/<your resource group name>/providers/Microsoft.IoTCentral/iotApps/<your application name>?api-version=2021-06-01
Aşağıdaki yük, yönetilen kimlik de dahil olmak üzere yeni uygulamanın yapılandırmasını gösterir:
{
"location": "eastus",
"sku": {
"name": "ST2"
},
"properties": {
"displayName": "Contoso IoT Central App",
"subdomain": "my-iot-central-app",
"template": "iotc-pnp-preview@1.0.0"
},
"identity": {
"type": "SystemAssigned"
}
}
IoT Central uygulamasını değiştirme
Mevcut bir IoT Central uygulamasını değiştirebilirsiniz. Aşağıdaki örnekte görünen adın nasıl değiştirileceği ve sistem tarafından atanan yönetilen kimliğin nasıl etkinleştirileceği gösterilmektedir:
PATCH https://management.azure.com/subscriptions/<your subscription id>/resourceGroups/<your resource group name>/providers/Microsoft.IoTCentral/iotApps/<your application name>?api-version=2021-06-01
Görünen adı değiştirmek ve sistem tarafından atanan yönetilen kimliği etkinleştirmek için aşağıdaki yükü kullanın:
{
"properties": {
"displayName": "Contoso IoT Central App"
},
"identity": {
"type": "SystemAssigned"
}
}
Not
Yönetilen kimliği yalnızca bir bölgede oluşturulmuş bir IoT Central uygulamasına ekleyebilirsiniz. Tüm yeni uygulamalar bir bölgede oluşturulur.
IoT Central uygulamasını silme
IoT Central uygulamasını silmek için şunu kullanın:
DELETE https://management.azure.com/subscriptions/<your subscription id>/resourceGroups/<your resource group name>/providers/Microsoft.IoTCentral/iotApps/<your application name>?api-version=2021-06-01
Panolar
Belirli bir kuruluşla ilişkili panolar oluşturabilirsiniz. Kuruluş panosu yalnızca panonun ilişkili olduğu kuruluşa erişimi olan kullanıcılar tarafından görülebilir. Yalnızca kuruluş panosu izinlerine sahip bir roldeki kullanıcılar kuruluş panoları oluşturabilir, düzenleyebilir ve silebilir.
Tüm kullanıcılar kişisel panolar oluşturabilir ve yalnızca kendileri tarafından görülebilir. Kullanıcılar kuruluş ve kişisel panolar arasında geçiş yapabilir.
Not
API kullanarak kişisel panolar oluşturma şu anda desteklenmemektedir.
IoT Central kullanıcı arabirimini kullanarak panoları yönetmeyi öğrenmek için bkz . Panoları yönetme.
Panolar REST API
IoT Central REST API şunları yapmanızı sağlar:
- Uygulamanıza pano ekleme
- Uygulamanızdaki bir panoyu güncelleştirme
- Uygulamadaki panonun listesini alma
- Kimliğine göre pano alma
- Uygulamanızdaki bir panoyu silme
Pano ekleme
Pano oluşturmak için aşağıdaki isteği kullanın.
PUT https://{your app subdomain}.azureiotcentral.com/api/dashboards/{dashboardId}?api-version=2022-10-31-preview
dashboardId
- Pano için benzersiz bir DTMI tanımlayıcısı.
İstek gövdesinde bazı gerekli alanlar vardır:
@displayName
: Panonun görünen adı.@favorite
: Pano sık kullanılanlar listesinde mi?group
: Cihaz grubu kimliği.Tile
: Düzen, görünen ad ve yapılandırma dahil olmak üzere bir kutucuk nesnesi belirten yapılandırma.
Kutucukta bazı gerekli alanlar vardır:
Veri Akışı Adı | Açıklama |
---|---|
displayName |
Kutucuğun görünen adı |
height |
Kutucuğun yüksekliği |
width |
Kutucuğun genişliği |
x |
Kutucuğun yatay konumu |
y |
Kutucuğun dikey konumu |
Bir kutucuğun boyutları ve konumu tamsayı birimlerini kullanır. Mümkün olan en küçük kutucuğun yüksekliği ve genişliği birdir.
Birden çok veri türünü görüntülemek için bir kutucuk nesnesi yapılandırabilirsiniz. Bu makalede çizgi grafikleri, markdown'ı ve bilinen son değeri gösteren kutucuk örnekleri yer almaktadır. Panoya ekleyebileceğiniz farklı kutucuk türleri hakkında daha fazla bilgi edinmek için bkz . Kutucuk türleri.
Çizgi grafik kutucuğu
Bir süre içinde bir veya daha fazla cihaz için bir veya daha fazla toplu telemetri değeri çizin. Örneğin, son bir saat içinde bir veya daha fazla cihazın ortalama sıcaklığını ve basıncını çizmek için bir çizgi grafik görüntüleyebilirsiniz.
Çizgi grafik kutucuğu aşağıdaki yapılandırmaya sahiptir:
Veri Akışı Adı | Açıklama |
---|---|
capabilities |
Görüntülenecek telemetrinin toplam değerini belirtir. |
devices |
Görüntülenecek cihazların listesi. |
format |
Kullanılacak eksenler gibi grafiğin biçim yapılandırması. |
group |
Görüntülenecek cihaz grubunun kimliği. |
queryRange |
Görüntülenecek zaman aralığı ve çözünürlük. |
type |
lineChart |
Markdown kutucuğu
Markdown'da biçimlendirilmiş başlık ve açıklama metnini görüntüleyen tıklanabilir kutucuklar. URL, uygulamadaki başka bir sayfaya göreli bir bağlantı veya bir dış sitenin mutlak bağlantısı olabilir. Markdown kutucuğu aşağıdaki yapılandırmaya sahiptir:
Veri Akışı Adı | Açıklama |
---|---|
description |
Kutucuğun içinde işlenmek için markdown dizesi. |
href |
Kutucuk seçildiğinde ziyaret etmek için bağlantı. |
image |
Görüntülenecek base64 kodlu görüntü. |
type |
markdown |
Bilinen son değer kutucuğu
Bir veya daha fazla cihaz için en son telemetri değerlerini görüntüleyin. Örneğin, bir veya daha fazla cihazın en son sıcaklık, basınç ve nem değerlerini görüntülemek için bu kutucuğu kullanabilirsiniz.
Bilinen son değer (LKV) kutucuğu aşağıdaki yapılandırmaya sahiptir:
Veri Akışı Adı | Açıklama |
---|---|
capabilities |
Görüntülenecek telemetriyi belirtir. |
devices |
Görüntülenecek cihazların listesi. |
format |
Sözcük kaydırmanın metin boyutu gibi LKV kutucuğunun biçim yapılandırması. |
group |
Görüntülenecek cihaz grubunun kimliği. |
showTrend |
Bilinen son değerle önceki değer arasındaki farkı gösterir. |
type |
lkv |
Aşağıdaki örnekte çizgi grafik, markdown ve bilinen son değer kutucukları içeren yeni bir pano ekleyen bir istek gövdesi gösterilmektedir. LKV ve çizgi grafik kutucukları kutucuklardır 2x2
. Markdown kutucuğu bir 1x1
kutucuk. Kutucuklar panonun üst satırına yerleştirilmiştir:
{
"displayName": "My Dashboard ",
"tiles": [
{
"displayName": "LKV Temperature",
"configuration": {
"type": "lkv",
"capabilities": [
{
"capability": "temperature",
"aggregateFunction": "avg"
}
],
"group": "0fb6cf08-f03c-4987-93f6-72103e9f6100",
"devices": [
"3xksbkqm8r",
"1ak6jtz2m5q",
"h4ow04mv3d"
],
"format": {
"abbreviateValue": false,
"wordWrap": false,
"textSize": 14
}
},
"x": 0,
"y": 0,
"width": 2,
"height": 2
},
{
"displayName": "Documentation",
"configuration": {
"type": "markdown",
"description": "Comprehensive help articles and links to more support.",
"href": "https://aka.ms/iotcentral-pnp-docs",
"image": "4d6c6373-0220-4191-be2e-d58ca2a289e1"
},
"x": 2,
"y": 0,
"width": 1,
"height": 1
},
{
"displayName": "Average temperature",
"configuration": {
"type": "lineChart",
"capabilities": [
{
"capability": "temperature",
"aggregateFunction": "avg"
}
],
"devices": [
"3xksbkqm8r",
"1ak6jtz2m5q",
"h4ow04mv3d"
],
"group": "0fb6cf08-f03c-4987-93f6-72103e9f6100",
"format": {
"xAxisEnabled": true,
"yAxisEnabled": true,
"legendEnabled": true
},
"queryRange": {
"type": "time",
"duration": "PT30M",
"resolution": "PT1M"
}
},
"x": 3,
"y": 0,
"width": 2,
"height": 2
}
],
"favorite": false
}
Bu isteğin yanıtı aşağıdaki örneğe benzer:
{
"id": "dtmi:kkfvwa2xi:p7pyt5x38",
"displayName": "My Dashboard",
"personal": false,
"tiles": [
{
"displayName": "lineChart",
"configuration": {
"type": "lineChart",
"capabilities": [
{
"capability": "temperature",
"aggregateFunction": "avg"
}
],
"devices": [
"1cfqhp3tue3",
"mcoi4i2qh3"
],
"group": "da48c8fe-bac7-42bc-81c0-d8158551f066",
"format": {
"xAxisEnabled": true,
"yAxisEnabled": true,
"legendEnabled": true
},
"queryRange": {
"type": "time",
"duration": "PT30M",
"resolution": "PT1M"
}
},
"x": 5,
"y": 0,
"width": 2,
"height": 2
}
],
"favorite": false
}
Karşıya dosya yükleme depolama hesabı yapılandırması ekleme
IoT Central uygulamanızda bir dosya karşıya yükleme blob depolama hesabı yapılandırması oluşturmak için aşağıdaki isteği kullanın:
PUT https://{your-app-subdomain}.azureiotcentral.com/api/fileUploads?api-version=2022-07-31
İstek gövdesinde aşağıdaki alanlar bulunur:
account
: Dosyanın karşıya yüklendiği depolama hesabı adı.connectionString
: Depolama hesabına bağlanmak için bağlantı dizesi.container
: Depolama hesabının içindeki kapsayıcının adı. Aşağıdaki örnekte adıfileuploads
kullanılır.etag
: Birden çok karşıya yükleme ile çakışmayı önlemek için ETagsasTtl
: ISO 8601 süre standardı, Cihazın bir dosyayı karşıya yükleme isteğinin süresi dolmadan önce geçerli olur.
{
"account": "yourAccountName",
"connectionString": "DefaultEndpointsProtocol=https;AccountName=yourAccountName;AccountKey=*****;BlobEndpoint=https://yourAccountName.blob.core.windows.net/",
"container": "fileuploads",
"sasTtl": "PT1H"
}
Bu isteğin yanıtı aşağıdaki örneğe benzer:
{
"account": "yourAccountName",
"connectionString": "DefaultEndpointsProtocol=https;AccountName=yourAccountName;AccountKey=*****;BlobEndpoint=https://yourAccountName.blob.core.windows.net/",
"container": "fileuploads",
"sasTtl": "PT1H",
"state": "pending",
"etag": "\"7502ac89-0000-0300-0000-627eaf100000\""
}
Dosya karşıya yükleme depolama hesabı yapılandırmasını alma
IoT Central uygulamanızda bir dosya karşıya yükleme blob depolama hesabı yapılandırmasının ayrıntılarını almak için aşağıdaki isteği kullanın:
GET https://{your-app-subdomain}.azureiotcentral.com/api/fileUploads?api-version=2022-07-31
Bu isteğin yanıtı aşağıdaki örneğe benzer:
{
"account": "yourAccountName",
"connectionString": "DefaultEndpointsProtocol=https;AccountName=yourAccountName;AccountKey=*****;BlobEndpoint=https://yourAccountName.blob.core.windows.net/",
"container": "yourContainerName",
"state": "succeeded",
"etag": "\"7502ac89-0000-0300-0000-627eaf100000\""
}
Dosya karşıya yükleme depolama hesabı yapılandırmasını güncelleştirme
IoT Central uygulamanızda bağlantı dizesi dosya yükleme blob depolama hesabını güncelleştirmek için aşağıdaki isteği kullanın:
PATCH https://{your-app-subdomain}.azureiotcentral.com/api/fileUploads?api-version=2022-07-31
{
"connectionString": "DefaultEndpointsProtocol=https;AccountName=yourAccountName;AccountKey=*****;BlobEndpoint=https://yourAccountName.blob.core.windows.net/"
}
Bu isteğin yanıtı aşağıdaki örneğe benzer:
{
"account": "yourAccountName",
"connectionString": "DefaultEndpointsProtocol=https;AccountName=yourAccountName;AccountKey=*****;BlobEndpoint=https://yourAccountName.blob.core.windows.net/",
"container": "yourContainerName",
"sasTtl": "PT1H",
"state": "succeeded",
"etag": "\"7502ac89-0000-0300-0000-627eaf100000\""
}
Karşıya dosya yükleme depolama hesabı yapılandırmasını kaldırma
Depolama hesabı yapılandırmasını silmek için aşağıdaki isteği kullanın:
DELETE https://{your-app-subdomain}.azureiotcentral.com/api/fileUploads?api-version=2022-07-31
Pano alma
Pano kimliğini kullanarak bir panonun ayrıntılarını almak için aşağıdaki isteği kullanın.
GET https://{your app subdomain}.azureiotcentral.com/api/dashboards/{dashboardId}?api-version=2022-10-31-preview
Bu isteğin yanıtı aşağıdaki örneğe benzer:
{
"id": "dtmi:kkfvwa2xi:p7pyt5x38",
"displayName": "My Dashboard",
"personal": false,
"tiles": [
{
"displayName": "lineChart",
"configuration": {
"type": "lineChart",
"capabilities": [
{
"capability": "AvailableMemory",
"aggregateFunction": "avg"
}
],
"devices": [
"1cfqhp3tue3",
"mcoi4i2qh3"
],
"group": "da48c8fe-bac7-42bc-81c0-d8158551f066",
"format": {
"xAxisEnabled": true,
"yAxisEnabled": true,
"legendEnabled": true
},
"queryRange": {
"type": "time",
"duration": "PT30M",
"resolution": "PT1M"
}
},
"x": 5,
"y": 0,
"width": 2,
"height": 2
}
],
"favorite": false
}
Panoyu güncelleştirme
PATCH https://{your app subdomain}.azureiotcentral.com/api/dashboards/{dashboardId}?api-version=2022-10-31-preview
Aşağıdaki örnek, bir panonun görünen adını güncelleştiren ve panoyu sık kullanılanlar listesine ekleyen bir istek gövdesini gösterir:
{
"displayName": "New Dashboard Name",
"favorite": true
}
Bu isteğin yanıtı aşağıdaki örneğe benzer:
{
"id": "dtmi:kkfvwa2xi:p7pyt5x38",
"displayName": "New Dashboard Name",
"personal": false,
"tiles": [
{
"displayName": "lineChart",
"configuration": {
"type": "lineChart",
"capabilities": [
{
"capability": "AvailableMemory",
"aggregateFunction": "avg"
}
],
"devices": [
"1cfqhp3tue3",
"mcoi4i2qh3"
],
"group": "da48c8fe-bac7-42bc-81c0-d8158551f066",
"format": {
"xAxisEnabled": true,
"yAxisEnabled": true,
"legendEnabled": true
},
"queryRange": {
"type": "time",
"duration": "PT30M",
"resolution": "PT1M"
}
},
"x": 5,
"y": 0,
"width": 5,
"height": 5
}
],
"favorite": true
}
Bir panoyu silme
Pano kimliğini kullanarak bir panoyu silmek için aşağıdaki isteği kullanın:
DELETE https://{your app subdomain}.azureiotcentral.com/api/dashboards/{dashboardId}?api-version=2022-10-31-preview
Panoları listeleme
Uygulamanızdan pano listesini almak için aşağıdaki isteği kullanın:
GET https://{your app subdomain}.azureiotcentral.com/api/dashboards?api-version=2022-10-31-preview
Bu isteğin yanıtı aşağıdaki örneğe benzer:
{
"value": [
{
"id": "dtmi:kkfvwa2xi:p7pyt5x3o",
"displayName": "Dashboard",
"personal": false,
"tiles": [
{
"displayName": "Device templates",
"configuration": {
"type": "markdown",
"description": "Get started by adding your first device.",
"href": "/device-templates/new/devicetemplates",
"image": "f5ba1b00-1d24-4781-869b-6f954df48736"
},
"x": 1,
"y": 0,
"width": 1,
"height": 1
},
{
"displayName": "Quick start demo",
"configuration": {
"type": "markdown",
"description": "Learn how to use Azure IoT Central in minutes.",
"href": "https://aka.ms/iotcentral-pnp-video",
"image": "9eb01d71-491a-44e5-8fac-7af3bc9f9acd"
},
"x": 2,
"y": 0,
"width": 1,
"height": 1
},
{
"displayName": "Tutorials",
"configuration": {
"type": "markdown",
"description": "Step-by-step articles teach you how to create apps and devices.",
"href": "https://aka.ms/iotcentral-pnp-tutorials",
"image": "7d9fc12c-d46e-41c6-885f-0a67c619366e"
},
"x": 3,
"y": 0,
"width": 1,
"height": 1
},
{
"displayName": "Documentation",
"configuration": {
"type": "markdown",
"description": "Comprehensive help articles and links to more support.",
"href": "https://aka.ms/iotcentral-pnp-docs",
"image": "4d6c6373-0220-4191-be2e-d58ca2a289e1"
},
"x": 4,
"y": 0,
"width": 1,
"height": 1
},
{
"displayName": "IoT Central Image",
"configuration": {
"type": "image",
"format": {
"backgroundColor": "#FFFFFF",
"fitImage": true,
"showTitle": false,
"textColor": "#FFFFFF",
"textSize": 0,
"textSizeUnit": "px"
},
"image": ""
},
"x": 0,
"y": 0,
"width": 1,
"height": 1
},
{
"displayName": "Contoso Image",
"configuration": {
"type": "image",
"format": {
"backgroundColor": "#FFFFFF",
"fitImage": true,
"showTitle": false,
"textColor": "#FFFFFF",
"textSize": 0,
"textSizeUnit": "px"
},
"image": "c9ac5af4-f38e-4cd3-886a-e0cb107f391c"
},
"x": 0,
"y": 1,
"width": 5,
"height": 3
},
{
"displayName": "Available Memory",
"configuration": {
"type": "lineChart",
"capabilities": [
{
"capability": "AvailableMemory",
"aggregateFunction": "avg"
}
],
"devices": [
"1cfqhp3tue3",
"mcoi4i2qh3"
],
"group": "da48c8fe-bac7-42bc-81c0-d8158551f066",
"format": {
"xAxisEnabled": true,
"yAxisEnabled": true,
"legendEnabled": true
},
"queryRange": {
"type": "time",
"duration": "PT30M",
"resolution": "PT1M"
}
},
"x": 5,
"y": 0,
"width": 2,
"height": 2
}
],
"favorite": false
}
]
}