Informationen zum Verwenden der IoT Central-REST-API zum Verwalten von Bereitstellungsmanifesten
Mit einem Bereitstellungsmanifest können Sie die Module angeben, die von der IoT Edge-Runtime heruntergeladen und konfiguriert werden sollen. Ein IoT Edge-Gerät kann ein Bereitstellungsmanifest herunterladen, wenn es zum ersten Mal eine Verbindung mit Ihrer IoT Central-Anwendung herstellt. In diesem Artikel wird beschrieben, wie Sie Bereitstellungsmanifeste verwalten, die in Ihrer IoT Central-Anwendung mithilfe der REST-API gespeichert sind.
Weitere Informationen zu IoT Edge und IoT Central finden Sie unter Verbinden von Azure IoT Edge-Geräten in einer Azure IoT Central-Anwendung.
Jeder IoT Central-REST-API-Aufruf erfordert einen Autorisierungsheader. Weitere Informationen finden Sie unter Authentifizieren und Autorisieren von IoT Central-REST-API-Aufrufen.
Die Referenzdokumentation für die IoT Central-REST-API finden Sie unter Azure IoT Central: Referenz zur REST-API.
Informationen zum Verwalten von Bereitstellungsmanifesten mithilfe der IoT Central-Benutzeroberfläche finden Sie unter Verwalten von IoT Edge-Bereitstellungsmanifesten in Ihrer IoT Central-Anwendung.
Bereitstellungsmanifeste-REST-API
Mit der IoT Central-REST-API können Sie folgende Aktionen ausführen:
- Hinzufügen eines Bereitstellungsmanifests zu Ihrer Anwendung
- Aktualisieren eines Bereitstellungsmanifests in Ihrer Anwendung
- Abrufen einer Liste der Bereitstellungsmanifeste in der Anwendung
- Abrufen eines Bereitstellungsmanifests nach ID
- Löschen eines Bereitstellungsmanifests in Ihrer Anwendung
Hinweis
Die Bereitstellungsmanifeste-REST-API befindet sich derzeit in der Vorschau.
Hinzufügen eines Bereitstellungsmanifests
Verwenden Sie die folgende Anforderung, um ein neues Bereitstellungsmanifest zu erstellen.
PUT https://{your app subdomain}/api/deploymentManifests/{deploymentManifestId}?api-version=2022-10-31-preview
Das folgende Beispiel zeigt einen Anforderungstext, der ein Bereitstellungsmanifest hinzufügt, das drei Module definiert:
{
"id": "envsensorv1",
"displayName": "Environmental sensor deployment manifest",
"data": {
"modulesContent": {
"$edgeAgent": {
"properties.desired": {
"schemaVersion": "1.0",
"runtime": {
"type": "docker",
"settings": {
"minDockerVersion": "v1.25",
"loggingOptions": "",
"registryCredentials": {}
}
},
"systemModules": {
"edgeAgent": {
"type": "docker",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-agent:1.4",
"createOptions": "{}"
}
},
"edgeHub": {
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-hub:1.4",
"createOptions": "{}"
}
}
},
"modules": {
"SimulatedTemperatureSensor": {
"version": "1.0",
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.0",
"createOptions": "{}"
}
}
}
}
},
"$edgeHub": {
"properties.desired": {
"schemaVersion": "1.0",
"routes": {
"route": "FROM /* INTO $upstream"
},
"storeAndForwardConfiguration": {
"timeToLiveSecs": 7200
}
}
},
"SimulatedTemperatureSensor": {
"properties.desired": {
"SendData": true,
"SendInterval": 10
}
}
}
}
}
Der Anforderungstext enthält einige erforderliche Felder:
id
: eine eindeutige ID für das Bereitstellungsmanifest in der IoT Central-Anwendung.displayName
: ein Name für das Bereitstellungsmanifest, der auf der Benutzeroberfläche angezeigt wird.data
: das IoT Edge-Bereitstellungsmanifest.
Die Antwort auf diese Anforderung sieht wie das folgende Beispiel aus:
{
"id": "envsensorv1",
"data": {
"modulesContent": {
"$edgeAgent": {
"properties.desired": {
"schemaVersion": "1.1",
"runtime": {
"type": "docker",
"settings": {
"minDockerVersion": "v1.25",
"loggingOptions": "",
"registryCredentials": {}
}
},
"systemModules": {
"edgeAgent": {
"type": "docker",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-agent:1.4",
"createOptions": "{}"
}
},
"edgeHub": {
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-hub:1.4",
"createOptions": "{}"
}
}
},
"modules": {
"SimulatedTemperatureSensor": {
"version": "1.0",
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.0",
"createOptions": "{}"
}
}
}
}
},
"$edgeHub": {
"properties.desired": {
"schemaVersion": "1.1",
"routes": {
"route": "FROM /* INTO $upstream"
},
"storeAndForwardConfiguration": {
"timeToLiveSecs": 7200
}
}
},
"SimulatedTemperatureSensor": {
"properties.desired": {
"SendData": true,
"SendInterval": 10
}
}
}
},
"displayName": "Environmental sensor deployment manifest",
"etag": "\"0500f164-0000-1100-0000-637cf09c0000\""
}
Abrufen eines Bereitstellungsmanifests
Verwenden Sie die folgende Anforderung, um Details einem Bereitstellungsmanifest aus Ihrer Anwendung abzurufen:
GET https://{your app subdomain}/api/deploymentManifests/{deploymentManifestId}?api-version=2022-10-31-preview
Sie können die Werte deploymentManifestId
mithilfe der API Bereitstellungsmanifeste auflisten abrufen.
Die Antwort auf diese Anforderung sieht wie das folgende Beispiel aus:
{
"id": "envsensor",
"data": {
"modulesContent": {
"$edgeAgent": {
"properties.desired": {
"schemaVersion": "1.1",
"runtime": {
"type": "docker",
"settings": {
"minDockerVersion": "v1.25",
"loggingOptions": "",
"registryCredentials": {}
}
},
"systemModules": {
"edgeAgent": {
"type": "docker",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-agent:1.4",
"createOptions": "{}"
}
},
"edgeHub": {
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-hub:1.4",
"createOptions": "{}"
}
}
},
"modules": {
"SimulatedTemperatureSensor": {
"version": "1.0",
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.0",
"createOptions": "{}"
}
}
}
}
},
"$edgeHub": {
"properties.desired": {
"schemaVersion": "1.1",
"routes": {
"route": "FROM /* INTO $upstream"
},
"storeAndForwardConfiguration": {
"timeToLiveSecs": 7200
}
}
},
"SimulatedTemperatureSensor": {
"properties.desired": {
"SendData": true,
"SendInterval": 10
}
}
}
},
"displayName": "Environmental sensor deployment manifest",
"etag": "\"0500f663-0000-1100-0000-637cec590000\""
}
Aktualisieren eines Bereitstellungsmanifests
PATCH https://{your app subdomain}/api/deploymentManifests/{deploymentManifestId}?api-version=2022-10-31-preview
Der folgende Beispielanforderungstext aktualisiert die Einstellung der SendInterval
-Eigenschaft für das SimuatedTemperatureSetting
-Modul:
{
"data": {
"modulesContent": {
"SimulatedTemperatureSensor": {
"properties.desired": {
"SendInterval": 30
}
}
}
}
}
Die Antwort auf diese Anforderung sieht wie das folgende Beispiel aus:
{
"id": "envsensorv1",
"data": {
"modulesContent": {
"$edgeAgent": {
"properties.desired": {
"schemaVersion": "1.1",
"runtime": {
"type": "docker",
"settings": {
"minDockerVersion": "v1.25",
"loggingOptions": "",
"registryCredentials": {}
}
},
"systemModules": {
"edgeAgent": {
"type": "docker",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-agent:1.4",
"createOptions": "{}"
}
},
"edgeHub": {
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-hub:1.4",
"createOptions": "{}"
}
}
},
"modules": {
"SimulatedTemperatureSensor": {
"version": "1.0",
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.2",
"createOptions": "{}"
}
}
}
}
},
"$edgeHub": {
"properties.desired": {
"schemaVersion": "1.1",
"routes": {
"route": "FROM /* INTO $upstream"
},
"storeAndForwardConfiguration": {
"timeToLiveSecs": 7200
}
}
},
"SimulatedTemperatureSensor": {
"properties.desired": {
"SendData": true,
"SendInterval": 30
}
}
}
},
"displayName": "Environmental sensor deployment manifest",
"etag": "\"05003065-0000-1100-0000-637cf1b00000\""
}
Löschen eines Bereitstellungsmanifests
Verwenden Sie die folgende Anforderung, um ein Bereitstellungsmanifest zu löschen:
DELETE https://{your app subdomain}/api/deploymentManifests/{deploymentManifestId}?api-version=2022-10-31-preview
Bereitstellungsmanifeste auflisten
Verwenden Sie die folgende Anforderung, um eine Liste von Bereitstellungsmanifesten aus Ihrer Anwendung abzurufen:
GET https://{your app subdomain}/api/deploymentManifests?api-version=2022-10-31-preview
Die Antwort auf diese Anforderung sieht wie das folgende Beispiel aus:
{
"value": [
{
"id": "envsensor",
"data": {
"modulesContent": {
"$edgeAgent": {
"properties.desired": {
"schemaVersion": "1.1",
"runtime": {
"type": "docker",
"settings": {
"minDockerVersion": "v1.25",
"loggingOptions": "",
"registryCredentials": {}
}
},
"systemModules": {
"edgeAgent": {
"type": "docker",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-agent:1.4",
"createOptions": "{}"
}
},
"edgeHub": {
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-hub:1.4",
"createOptions": "{}"
}
}
},
"modules": {
"SimulatedTemperatureSensor": {
"version": "1.0",
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.0",
"createOptions": "{}"
}
}
}
}
},
"$edgeHub": {
"properties.desired": {
"schemaVersion": "1.1",
"routes": {
"route": "FROM /* INTO $upstream"
},
"storeAndForwardConfiguration": {
"timeToLiveSecs": 7200
}
}
},
"SimulatedTemperatureSensor": {
"properties.desired": {
"SendData": true,
"SendInterval": 10
}
}
}
},
"displayName": "Environmental sensor deployment manifest",
"etag": "\"0500f663-0000-1100-0000-637cec590000\""
},
{
// More deployment manifests
}
]
}
Zuweisen eines Bereitstellungsmanifests zu einem Gerät
Um ein Bereitstellungsmanifest zu verwenden, das bereits in Ihrer IoT Central-Anwendung gespeichert ist, verwenden Sie zuerst die APIBereitstellungsmanifest abrufen, um es abzurufen. Verwenden Sie die folgende Anforderung, um einem IoT Edge-Gerät in Ihrer IoT Central-Anwendung ein Bereitstellungsmanifest zuzuweisen:
POST https://{your app subdomain}.azureiotcentral.com/api/devices/{your IoT Edge device ID}/applyDeploymentManifest?api-version=2022-10-31-preview
Der folgende Beispielanforderungstext weist dem IoT Edge-Gerät das Bereitstellungsmanifest zu:
{
"data": {
"modulesContent": {
"$edgeAgent": {
"properties.desired": {
"schemaVersion": "1.0",
"runtime": {
"type": "docker",
"settings": {
"minDockerVersion": "v1.25",
"loggingOptions": "",
"registryCredentials": {}
}
},
"systemModules": {
"edgeAgent": {
"type": "docker",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-agent:1.4",
"createOptions": "{}"
}
},
"edgeHub": {
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-hub:1.4",
"createOptions": "{}"
}
}
},
"modules": {
"SimulatedTemperatureSensor": {
"version": "1.0",
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.0",
"createOptions": "{}"
}
}
}
}
},
"$edgeHub": {
"properties.desired": {
"schemaVersion": "1.0",
"routes": {
"route": "FROM /* INTO $upstream"
},
"storeAndForwardConfiguration": {
"timeToLiveSecs": 7200
}
}
},
"SimulatedTemperatureSensor": {
"properties.desired": {
"SendData": true,
"SendInterval": 10
}
}
}
}
}
Nächste Schritte
Nachdem Sie nun erfahren haben, wie Sie mithilfe der REST-API Bereitstellungsmanifeste verwalten, können Sie mit dem Artikel Verwenden der IoT Central-REST-API zum Verwalten von Benutzern und Rollen fortfahren.