Sdílet prostřednictvím


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-AzStackEdgeRolejsou , New-AzStackEdgeRole, Set-AzStackEdgeRolenebo Remove-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-AzStackEdgeRolenebo 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.

Další kroky