az Azure Stack Edge-eszköz szerepkörkezelési változásainak IoT Edge
Az Azure IoT Edge Azure Stack Edge-eszköz szerepkörkezeléséhez használja az API, az SDK és a Azure PowerShell frissített verzióját, amely a 2021. januári kiadásra van ütemezve.
Ez a cikk részletesen ismerteti a legújabb verzió használatakor szükséges módosításokat.
A 2021. januári frissítés csak az Azure Stack Edge Pro – GPU, az Azure Stack Edge Pro R és az Azure Stack Edge Mini R eszközökhöz lesz elérhető. A cikkben szereplő információk csak ezekre az eszközökre vonatkoznak.
Megjegyzés
Nem kell frissítenie a 2021. januári verzióra. Ha úgy dönt, hogy továbbra is az aktuális verziót használja, nincs hatással IoT Edge szerepkörkezelésre. Az új funkciók előnyeinek kihasználásához és a biztonsági kockázatok csökkentéséhez azonban javasoljuk, hogy telepítse az újabb verziót.
IoT Edge szerepkörkezelési változások
Miután telepítette az opcionális 2021. januári frissítést az Azure Stack Edge-eszközére, az API, az SDK és a PowerShell-parancsmagok legújabb verzióját kell használnia IoT Edge szerepkörkezeléshez.
A következő módosítások csak akkor szükségesek, ha a 2021. januári frissítést alkalmazza:
- Ha jelenleg a Role Management API 2019-08-01-es verzióját használja, frissítsen a 2021 januárjában megjelenő API-verzióra.
- Ha jelenleg az SDK 1.0.0-s verzióján keresztül használja a szerepkörkezelést, frissítsen a 2021 januárjában megjelenő verzióra.
- Ha szerepkörkezelést használ az Azure PowerShell parancsmagokkal (előzetes verzió), például
Get-AzStackEdgeRole
,New-AzStackEdgeRole
,Set-AzStackEdgeRole
, vagyRemove-AzStackEdgeRole
, várja meg, amíg az új parancsmagok 2021 februárjában megjelennek.
API-használat
Ha jelenleg IoT Edge szerepkörkezelést végez API-val, használja az API 2020-12-01-es új verzióját, amely később lesz közzétéve. Ha az aktuális Szerepkör API-t használja, a közelgő eszközszoftver-verzió telepítése után át kell lépnie a PUT, GET vagy DELETE Kubernetes szerepkörre, majd a PUT IoT add-on API-ra.
A PUT metódushoz
Az aktuális HTTP-kérés
Az API-hívások a következő URI-n lesznek: 'https://management.azure.com/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/GroupForEdgeAutomation/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/testedgedevice/roles/IoTRole1?api-version=2019-08-01'
A kérelem törzse így néz ki:
{ "kind": "IOT", "properties": { "hostPlatform": "Linux", "ioTDeviceDetails": { "deviceId": "iotdevice", "ioTHostHub": "iothub.azure-devices.net", "ioTHostHubId": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/GroupForEdgeAutomation/Microsoft.Devices/IotHubs/testrxiothub", "authentication": { "symmetricKey": { "connectionString": { "value": "Encrypted<<HostName=iothub.azure-devices.net;DeviceId=iotDevice;SharedAccessKey=2C750FscEas3JmQ8Bnui5yQWZPyml0/UiRt1bQwd8=>>", "encryptionCertThumbprint": "348586569999244", "encryptionAlgorithm": "AES256" } } } }, "ioTEdgeDeviceDetails": { "deviceId": "iotEdge", "ioTHostHub": "iothub.azure-devices.net", "ioTHostHubId": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/GroupForEdgeAutomation/Microsoft.Devices/IotHubs/testrxiothub", "authentication": { "symmetricKey": { "connectionString": { "value": "Encrypted<<HostName=iothub.azure-devices.net;DeviceId=iotEdge;SharedAccessKey=2C750FscEas3JmQ8Bnui5yQWZPyml0/UiRt1bQwd8=>>", "encryptionCertThumbprint": "1245475856069999244", "encryptionAlgorithm": "AES256" } } } }, "shareMappings": [], "roleStatus": "Enabled" } }
A közelgő HTTP-kérés
A Kubernetes-szerepkörhöz tartozó API-hívások a következő URI-n érhetők el:
'https://management.azure.com/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/GroupForEdgeAutomation/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/testedgedevice/roles/KubernetesRole1?api-version=2020-12-01'
A kérelem törzse a következőképpen fog kinézni:
{ "kind": "Kubernetes", "properties": { "hostPlatform": "Linux", "kubernetesClusterInfo": { "version": "v1.17.3" }, "kubernetesRoleResources": { "storage": { "endpoints": [] }, "compute": { "vmProfile": "DS1_v2" } } } }
A IoT Edge bővítmény API-hívásai a következő URI-n érhetők el:
'https://management.azure.com/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/GroupForEdgeAutomation/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/testedgedevice/roles/KubernetesRole1/addons/iotaddon?api-version=2020-12-01'
A kérelem törzse a következőképpen fog kinézni:
{ "kind": "IoT", "properties": { "ioTDeviceDetails": { "deviceId": "iotdevice", "ioTHostHub": "iothub.azure-devices.net", "ioTHostHubId": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/GroupForEdgeAutomation/Microsoft.Devices/IotHubs/testrxiothub", "authentication": { "symmetricKey": { "connectionString": { "value": "Encrypted<<HostName=iothub.azure-devices.net;DeviceId=iotDevice;SharedAccessKey=2C750FscEas3JmQ8Bnui5yQWZPyml0/UiRt1bQwd8=>>", "encryptionCertThumbprint": "348586569999244", "encryptionAlgorithm": "AES256" } } } }, "ioTEdgeDeviceDetails": { "deviceId": "iotEdge", "ioTHostHub": "iothub.azure-devices.net", "ioTHostHubId": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/GroupForEdgeAutomation/Microsoft.Devices/IotHubs/testrxiothub", "authentication": { "symmetricKey": { "connectionString": { "value": "Encrypted<<HostName=iothub.azure-devices.net;DeviceId=iotEdge;SharedAccessKey=2C750FscEas3JmQ8Bnui5yQWZPyml0/UiRt1bQwd8=>>", "encryptionCertThumbprint": "1245475856069999244", "encryptionAlgorithm": "AES256" } } } } } }
A GET metódushoz
Az aktuális HTTP-válasz
Az API-hívások a következő URI-n történik:
'https://management.azure.com/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/GroupForEdgeAutomation/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/testedgedevice/roles/IoTRole1?api-version=2019-08-01'
A válasz törzse így néz ki:
"kind": "IOT", "properties": { "hostPlatform": "Linux", "ioTDeviceDetails": { "deviceId": "iotdevice", "ioTHostHub": "iothub.azure-devices.net", "ioTHostHubId": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/GroupForEdgeAutomation/Microsoft.Devices/IotHubs/testrxiothub", "authentication": { "symmetricKey": {} } }, "ioTEdgeDeviceDetails": { "deviceId": "iotEdge", "ioTHostHub": "iothub.azure-devices.net", "ioTHostHubId": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/GroupForEdgeAutomation/Microsoft.Devices/IotHubs/testrxiothub", "authentication": { "symmetricKey": {} } }, "shareMappings": [], "roleStatus": "Enabled" }, "id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/GroupForEdgeAutomation/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/testedgedevice/roles/IoTRole1", "name": "IoTRole1", "type": "dataBoxEdgeDevices/roles" }
A közelgő HTTP-válasz
Az API-hívások a következő URI-n történik:
'https://management.azure.com/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/GroupForEdgeAutomation/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/testedgedevice/roles/KubernetesRole1/addons/iotaddon?api-version=2020-12-01'
A válasz törzse így néz ki:
{ "kind": "IoT", "properties": { "provisioningState": "Creating", "ioTDeviceDetails": { "deviceId": "iotdevice", "ioTHostHub": "iothub.azure-devices.net", "ioTHostHubId": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/GroupForEdgeAutomation/Microsoft.Devices/IotHubs/testrxiothub", "authentication": { "symmetricKey": {} } }, "ioTEdgeDeviceDetails": { "deviceId": "iotEdge", "ioTHostHub": "iothub.azure-devices.net", "ioTHostHubId": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/GroupForEdgeAutomation/Microsoft.Devices/IotHubs/testrxiothub", "authentication": { "symmetricKey": {} } }, "version": "0.1.0-beta10" }, "id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/GroupForEdgeAutomation/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/res1/roles/kubernetesRole/addons/iotName", "name": " iotName", "type": "Microsoft.DataBoxEdge/dataBoxEdgeDevices/roles/addon", }
A DELETE metódushoz
Az aktuális API-hívások
Az API-hívások a következő URI-n történik:
'https://management.azure.com/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/GroupForEdgeAutomation/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/testedgedevice/roles/IoTRole1?api-version=2019-08-01'
A közelgő API-hívások
Az API-hívások a következő URI-n történik:
'https://management.azure.com/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/GroupForEdgeAutomation/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/testedgedevice/roles/KubernetesRole1/addons/iotaddon?api-version=2020-12-01'
SDK-használat
Ha az SDK-t használja, a 2021. januári frissítés telepítése után módosítania kell a IoT Edge szerepkör beállításának módját az alábbi példában látható módon. Ezután letölti és telepíti a közelgő NuGet-csomagot az új SDK-ra való áttéréshez, az itt látható módon.
Az aktuális SDK-minta
var iotRoleStatus = "Enabled";
var iotHostPlatform = "Linux";
var id = $@"/subscriptions/546ec571-2d7f-426f-9cd8-0d695fa7edba/resourceGroups/resourceGroup/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/deviceName/roles/iotrole";
var name = "iotrole";
var type = "Microsoft.DataBoxEdge/dataBoxEdgeDevices/role";
var iotRoleName = "iotrole";
var ioTDeviceDetails = new IoTDeviceInfo(...);
var ioTEdgeDeviceDetails = new IoTDeviceInfo(...);
var ioTEdgeAgentInfo = new IoTEdgeAgentInfo(...);
var shareMappings = new List<MountPointMap>(...);
var role = new IoTRole(roleStatus,
hostPlatform,
shareMappings,
ioTDeviceDetails,
ioTEdgeDeviceDetails,
ioTEdgeAgentInfo,
id,
name,
type);
DataBoxEdgeManagementClient.Roles.CreateOrUpdate(deviceName, iotRoleName, role, resourceGroup);
Az új SDK-minta
var k8sRoleStatus = "Enabled";
var k8sHostPlatform = "Linux";
var k8sId = $@"/subscriptions/546ec571-2d7f-426f-9cd8-0d695fa7edba/resourceGroups/resourceGroup/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/deviceName/roles/KubernetesRole";
var k8sRoleName = "KubernetesRole";
var k8sClusterVersion = "v1.17.3"; //Final values will be updated here around January 2021
var k8sVmProfile = "DS1_v2"; //Final values will be updated here around January 2021
var type = "Microsoft.DataBoxEdge/dataBoxEdgeDevices/role";
var k8sRole = new KubernetesRole(
roleStatus,
hostPlatform,
shareMappings,
k8sClusterVersion,
k8sVmProfile,
k8sId,
k8sRoleName,
type
);
DataBoxEdgeManagementClient.Roles.CreateOrUpdate(deviceName, k8sRoleName, k8sRole, resourceGroup); //Final usage will be updated here around January 2021
var ioTId = $@"/subscriptions/546ec571-2d7f-426f-9cd8-0d695fa7edba/resourceGroups/resourceGroup/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/deviceName/roles/KubernetesRole/addons/iotaddon";
var ioTAddonName = "iotaddon";
var ioTAddonType = "Microsoft.DataBoxEdge/dataBoxEdgeDevices/roles/addons";
var addon = new IoTAddon(
ioTDeviceDetails,
ioTEdgeDeviceDetails,
ioTEdgeAgentInfo,
ioTId,
ioTAddonName,
ioTAddonType);
DataBoxEdgeManagementClient.AddOns.CreateOrUpdate(deviceName, k8sRoleName, addonName, addon, resourceGroup); //Final usage will be updated here around January 2021
Parancsmagok használata
Ha jelenleg a Get-AzStackEdgeRole
, New-AzStackEdgeRole
, Set-AzStackEdgeRole
vagy Remove-AzStackEdgeRole
parancsmagot használja, meg kell várnia a 2021. februári kiadásra tervezett új verziót.
Gyakori kérdések
Az Azure Stack Edge Pro - FPGA-t használom. Hatással van a 2021. januári frissítés az FPGA-modellre?
Nem. A 2021. januári frissítés csak az Azure Stack Edge Pro – FPGA, az Azure Stack Edge Pro R és az Azure Stack Edge Mini R eszközökre vonatkozik. Az Azure Stack Edge Pro – FPGA-t ez a frissítés nem érinti, és nem igényel módosításokat IoT Edge szerepkörkezelésben.
Miután 2021 januárjában frissítettem az Azure Stack Edge Pro – GPU-t az új eszközszoftverre, a meglévő szolgáltatások bármelyike érintett?
Nem. A konfigurált szolgáltatásokra a 2021. januári eszközfrissítés telepítése után nincs hatással.
Melyek a IoT Edge felügyeleti API, az SDK vagy a parancsmag magas szintű változásai?
IoT Edge egy bővítmény a Kubernetes szerepkörben, ami azt jelenti, hogy először meg kell győződnie arról, hogy a Kubernetes konfigurálva van, majd végre kell hajtania a IoT Edge konfigurációt.