IoT Edge zmiany zarządzania rolami dla Azure Stack urządzenia brzegowegoIoT Edge role management changes for your Azure Stack Edge device

Aby uzyskać Azure IoT Edge Zarządzanie rolami dla urządzenia brzegowego Azure Stack, użyj zaktualizowanej wersji interfejsu API, zestawu SDK i Azure PowerShell zaplanowanych dla wydania styczeń 2021.For Azure IoT Edge role management for your Azure Stack Edge device, use the updated version of the API, SDK, and Azure PowerShell, which is scheduled for January 2021 release.

W tym artykule opisano szczegółowo zmiany, które należy wprowadzić w przypadku korzystania z tej najnowszej wersji.This article describes in detail the changes that you need to make when you use this newest version.

Aktualizacja z stycznia 2021 będzie dostępna tylko dla Azure Stack EDGE Pro-GPU, Azure Stack EDGE Pro R i Azure Stack Edge mini R urządzenia.The January 2021 update will be available only for Azure Stack Edge Pro - GPU, Azure Stack Edge Pro R, and Azure Stack Edge Mini R devices. Informacje zawarte w tym artykule dotyczą tylko tych urządzeń.The information in this article applies only to these devices.

Uwaga

Nie jest wymagane uaktualnienie do wersji 2021 stycznia.You're not required to upgrade to the January 2021 version. Jeśli zdecydujesz się nadal korzystać z bieżącej wersji, nie ma to wpływu na Zarządzanie rolą IoT Edge.If you choose to continue using your current version, there is no impact on IoT Edge role management. Jednak aby skorzystać z nowych funkcji i pomóc w zmniejszeniu zagrożenia bezpieczeństwa, zalecamy zainstalowanie nowszej wersji.However, to take advantage of the new features and to help reduce any security risks, we recommend that you install the newer version.

IoT Edge zmiany zarządzania rolamiIoT Edge role management changes

Po zainstalowaniu opcjonalnej aktualizacji 2021 Azure Stack na urządzeniu brzegowym, należy użyć najnowszej wersji interfejsu API, zestawu SDK i poleceń cmdlet programu PowerShell do zarządzania rolami IoT Edge.After you install the optional January 2021 update on your Azure Stack Edge device, you'll need to use the latest version of the API, SDK, and PowerShell cmdlets for IoT Edge role management.

Następujące zmiany są wymagane tylko w przypadku zastosowania aktualizacji z stycznia 2021:The following changes are required only if you apply the January 2021 update:

  • Jeśli obecnie używasz interfejsu API zarządzania rolami   w wersji 2019-08-01, przeprowadź uaktualnienie do wersji interfejsu API, która zostanie wydana w styczniu 2021.If you're currently using the Role Management API version 2019-08-01, upgrade to the API version that will be released in January 2021.
  • Jeśli obecnie korzystasz z zarządzania rolami za pomocą zestawu SDK   1.0.0, Uaktualnij do wersji, która zostanie wydana w styczniu 2021.If you're currently using role management via SDK version 1.0.0, upgrade to the version that will be released in January 2021.
  • Jeśli używasz zarządzania rolami za pomocą poleceń cmdlet Azure PowerShell (wersja zapoznawcza), takich jak Get-AzStackEdgeRole ,, New-AzStackEdgeRole Set-AzStackEdgeRole , lub Remove-AzStackEdgeRole , poczekaj, aż nowe polecenia cmdlet zostaną wydane w lutym 2021.If you're using role management with the Azure PowerShell cmdlets (Preview), such as Get-AzStackEdgeRole, New-AzStackEdgeRole, Set-AzStackEdgeRole, or Remove-AzStackEdgeRole, wait for the new cmdlets to be released in February 2021.

Użycie interfejsu APIAPI usage

Jeśli obecnie wykonujesz IoT Edge Zarządzanie rolami za pośrednictwem interfejsu API, Użyj nowego interfejsu API w wersji 2020-12-01, który zostanie opublikowany później.If you're currently performing IoT Edge role management via API, you should use the new API version 2020-12-01, which will be published later. Jeśli korzystasz z interfejsu API bieżącej roli, po zainstalowaniu kolejnej wersji oprogramowania urządzenia należy przejść do roli PUT, GET lub DELETE Kubernetes, a następnie interfejsu API PUT dodatku IoT.If you're using the current Role API, after you install the upcoming device software version, you must move to the PUT, GET, or DELETE Kubernetes role, followed by the PUT IoT Add-on API.

Dla metody PUTFor the PUT method

Bieżące żądanie HTTPThe current HTTP request

  • Wywołania interfejsu API są nawiązywane przy użyciu tego identyfikatora 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 "The API calls are made at this 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'

  • Treść żądania wygląda następująco:The request body looks like this:

    {
        "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"
        }
    }
    

Nadchodzące żądanie HTTPThe upcoming HTTP request

  • Wywołania interfejsu API dla roli Kubernetes są nawiązywane przy użyciu następującego identyfikatora URI:The API calls for the Kubernetes role are made at the following 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''https://management.azure.com/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/GroupForEdgeAutomation/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/testedgedevice/roles/KubernetesRole1?api-version=2020-12-01'

    Treść żądania będzie wyglądać następująco:The request body will look like this:

    {
        "kind": "Kubernetes",
        "properties": {
            "hostPlatform": "Linux",
            "kubernetesClusterInfo": {
                "version": "v1.17.3"
            },
            "kubernetesRoleResources": {
                "storage": {
                    "endpoints": []
                },
                "compute": {
                    "vmProfile": "DS1_v2"
                }
            }
        }
    }
    
  • Wywołania interfejsu API dla dodatku IoT Edge są wykonywane z następującym identyfikatorem URI:The API calls for the IoT Edge add-on are made at the following 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''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'

    Treść żądania będzie wyglądać następująco:The request body will look like this:

    {
        "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"
                        }
                    }
                }
            }
        }
    }
    

Dla metody GETFor the GET method

Bieżąca odpowiedź HTTPThe current HTTP response

  • Wywołania interfejsu API są nawiązywane przy użyciu następującego identyfikatora URI:The API calls are made at the following 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''https://management.azure.com/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/GroupForEdgeAutomation/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/testedgedevice/roles/IoTRole1?api-version=2019-08-01'

  • Treść odpowiedzi wygląda następująco:The response body looks like this:

        "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"
    }    
    

Nadchodząca odpowiedź HTTPThe upcoming HTTP response

  • Wywołania interfejsu API są nawiązywane przy użyciu następującego identyfikatora URI:The API calls are made at the following 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''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'

  • Treść odpowiedzi wygląda następująco:The response body looks like this:

    {
        "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",
    }
    

Dla metody DELETEFor the DELETE method

Bieżące wywołania interfejsu APIThe current API calls

Wywołania interfejsu API są nawiązywane przy użyciu następującego identyfikatora URI:The API calls are made at the following 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''https://management.azure.com/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/GroupForEdgeAutomation/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/testedgedevice/roles/IoTRole1?api-version=2019-08-01'

Nadchodzące wywołania interfejsu APIThe upcoming API calls

Wywołania interfejsu API są nawiązywane przy użyciu następującego identyfikatora URI:The API calls are made at the following 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''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 usage (Użycie zestawu SDK)SDK usage

Jeśli korzystasz z zestawu SDK, po zainstalowaniu aktualizacji z stycznia 2021 należy zmienić sposób konfigurowania roli IoT Edge, jak pokazano w poniższym przykładzie.If you're using the SDK, after you've installed the January 2021 update, you'll need to change the way you set up the IoT Edge role, as shown in the following sample. Następnie pobierz i zainstaluj nadchodzący pakiet NuGet, aby przejść do nowego zestawu SDK, jak pokazano tutaj.You'll then download and install the upcoming NuGet package to move to the new SDK, as shown here.

Bieżący przykład zestawu SDKThe current SDK sample

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);

Nowy przykład zestawu SDKThe new SDK sample

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

Użycie polecenia cmdletCmdlet usage

Jeśli obecnie używasz Get-AzStackEdgeRole New-AzStackEdgeRole Set-AzStackEdgeRole polecenia cmdlet,, lub, musisz Remove-AzStackEdgeRole poczekać na nową wersję zaplanowaną dla wydania z lutego 2021.If you're currently using the Get-AzStackEdgeRole, New-AzStackEdgeRole, Set-AzStackEdgeRole, or Remove-AzStackEdgeRole cmdlet, you'll need to wait for the new version that's planned for the February 2021 release.

Często zadawane pytaniaFrequently asked questions

Używam Azure Stack EDGE Pro-FPGA. Czy aktualizacja z stycznia 2021 ma wpływ na model FPGA?I'm using Azure Stack Edge Pro - FPGA. Does the January 2021 update affect the FPGA model?

Nie.No. Aktualizacja z stycznia 2021 dotyczy tylko Azure Stack brzegów FPGA, Azure Stack EDGE Pro R i Azure Stack Edge mini R urządzeń.The January 2021 update applies only to Azure Stack Edge Pro - FPGA, Azure Stack Edge Pro R, and Azure Stack Edge Mini R devices. Ta aktualizacja nie ma wpływu na Azure Stack EDGE Pro-FPGA i nie wymaga żadnych zmian w IoT Edge zarządzania rolami.Azure Stack Edge Pro - FPGA isn't affected by this update and doesn't require any changes to IoT Edge role management.

Czy po uaktualnieniu usługi Azure Stack EDGE Pro-GPU do nowego oprogramowania urządzenia w 2021 styczniuAfter I update Azure Stack Edge Pro - GPU to the new device software in January 2021, are any of the existing services affected?

Nie.No. Po zainstalowaniu aktualizacji urządzenia z 2021 stycznia nie wpłynie to na skonfigurowane usługi.Your configured services won't be affected after you install the January 2021 device update.

Jakie są zmiany wysokiego poziomu dotyczące interfejsu API zarządzania IoT Edge, zestawu SDK lub polecenia cmdlet?What are the high-level changes to the IoT Edge management API, SDK, or cmdlet?

IoT Edge jest dodatkiem w ramach roli Kubernetes, co oznacza, że najpierw należy upewnić się, że Kubernetes jest skonfigurowany, a następnie wykonać IoT Edge konfigurację.IoT Edge is an add-on under the Kubernetes role, which implies that you'll first need to ensure that Kubernetes is configured and then perform the IoT Edge configuration.

Następne krokiNext steps