IoT Edge změn správy rolí pro zařízení Azure Stack Edge
V případě správy rolí Azure IoT Edge pro zařízení Azure Stack Edge použijte aktualizovanou verzi rozhraní API, sady SDK a Azure PowerShell, která je naplánovaná na vydání v lednu 2021.
Tento článek podrobně popisuje změny, které je potřeba provést při použití této nejnovější verze.
Aktualizace z ledna 2021 bude dostupná jenom pro zařízení Azure Stack Edge Pro – GPU, Azure Stack Edge Pro R a Azure Stack Edge Mini R. Informace v tomto článku platí jenom pro tato zařízení.
Poznámka
Na verzi z ledna 2021 nemusíte upgradovat. Pokud se rozhodnete pokračovat v používání aktuální verze, nemá to žádný vliv na správu IoT Edge rolí. Pokud ale chcete nové funkce využívat a snížit bezpečnostní rizika, doporučujeme nainstalovat novější verzi.
IoT Edge změn správy rolí
Po instalaci volitelné aktualizace z ledna 2021 na zařízení Azure Stack Edge budete muset ke správě rolí IoT Edge použít nejnovější verzi rozhraní API, sady SDK a rutin PowerShellu.
Následující změny jsou vyžadovány pouze v případě, že použijete aktualizaci z ledna 2021:
- Pokud aktuálně používáte rozhraní API služby Role Management z 1. 8. 2019, upgradujte na verzi rozhraní API, která bude vydána v lednu 2021.
- Pokud aktuálně používáte správu rolí prostřednictvím sady SDK verze 1.0.0, upgradujte na verzi, která bude vydána v lednu 2021.
- Pokud používáte správu rolí s rutinami Azure PowerShell (Preview), jako
Get-AzStackEdgeRole
jsou ,New-AzStackEdgeRole
,Set-AzStackEdgeRole
neboRemove-AzStackEdgeRole
, počkejte na vydání nových rutin v únoru 2021.
Využití rozhraní API
Pokud aktuálně provádíte správu rolí IoT Edge prostřednictvím rozhraní API, měli byste použít novou verzi rozhraní API z 1. 12. 2020, která bude publikována později. Pokud používáte aktuální rozhraní API rolí, musíte po instalaci nadcházející verze softwaru zařízení přejít na roli PUT, GET nebo DELETE Kubernetes následovanou rozhraním PUT IoT Add-on API.
Pro metodu PUT
Aktuální požadavek HTTP
Volání rozhraní API se provádí na tomto identifikátoru URI:https://management.azure.com/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/GroupForEdgeAutomation/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/testedgedevice/roles/IoTRole1?api-version=2019-08-01
Text požadavku vypadá takto:
{ "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" } }
Chystaný požadavek HTTP
Volání rozhraní API pro roli Kubernetes se provádí na následujícím identifikátoru URI:
'https://management.azure.com/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/GroupForEdgeAutomation/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/testedgedevice/roles/KubernetesRole1?api-version=2020-12-01'
Text požadavku bude vypadat takto:
{ "kind": "Kubernetes", "properties": { "hostPlatform": "Linux", "kubernetesClusterInfo": { "version": "v1.17.3" }, "kubernetesRoleResources": { "storage": { "endpoints": [] }, "compute": { "vmProfile": "DS1_v2" } } } }
Volání rozhraní API pro doplněk IoT Edge se provádí s následujícím identifikátorem URI:
'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'
Text požadavku bude vypadat takto:
{ "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" } } } } } }
Pro metodu GET
Aktuální odpověď HTTP
Volání rozhraní API se provádí na následujícím identifikátoru URI:
'https://management.azure.com/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/GroupForEdgeAutomation/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/testedgedevice/roles/IoTRole1?api-version=2019-08-01'
Text odpovědi vypadá takto:
"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" }
Chystaná odpověď HTTP
Volání rozhraní API se provádí na následujícím identifikátoru URI:
'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'
Text odpovědi vypadá takto:
{ "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", }
Pro metodu DELETE
Aktuální volání rozhraní API
Volání rozhraní API se provádí na následujícím identifikátoru URI:
'https://management.azure.com/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/GroupForEdgeAutomation/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/testedgedevice/roles/IoTRole1?api-version=2019-08-01'
Nadcházející volání rozhraní API
Volání rozhraní API se provádí na následujícím identifikátoru URI:
'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'
Využití sady SDK
Pokud používáte sadu SDK, po instalaci aktualizace z ledna 2021 budete muset změnit způsob nastavení role IoT Edge, jak je znázorněno v následující ukázce. Pak si stáhnete a nainstalujete chystaný balíček NuGet a přesunete se na novou sadu SDK, jak je znázorněno tady.
Aktuální ukázka sady SDK
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);
Nová ukázka sady SDK
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
Použití rutiny
Pokud aktuálně používáte rutinu Get-AzStackEdgeRole
, New-AzStackEdgeRole
, Set-AzStackEdgeRole
nebo Remove-AzStackEdgeRole
, budete muset počkat na novou verzi, která je plánovaná pro vydání z února 2021.
Nejčastější dotazy
Používám Azure Stack Edge Pro – FPGA. Má aktualizace z ledna 2021 vliv na model FPGA?
Ne. Aktualizace z ledna 2021 se vztahuje pouze na zařízení Azure Stack Edge Pro – FPGA, Azure Stack Edge Pro R a Azure Stack Edge Mini R. Azure Stack Edge Pro – FPGA není touto aktualizací ovlivněná a nevyžaduje žádné změny IoT Edge správy rolí.
Pokud v lednu 2021 aktualizuji Azure Stack Edge Pro – GPU na nový software zařízení, týká se to některé ze stávajících služeb?
Ne. Po instalaci aktualizace zařízení z ledna 2021 se to netýká nakonfigurovaných služeb.
Jaké jsou hlavní změny rozhraní API, sady SDK nebo rutiny IoT Edge Management?
IoT Edge je doplněk v rámci role Kubernetes, což znamená, že musíte nejprve zajistit konfiguraci Kubernetes a pak provést konfiguraci IoT Edge.