IoT Edge alterações de gestão de funções para o dispositivo Azure Stack Edge
Para o Azure IoT Edge gestão de funções para o seu dispositivo Azure Stack Edge, utilize a versão atualizada da API, do SDK e do Azure PowerShell, que está agendada para a versão de janeiro de 2021.
Este artigo descreve detalhadamente as alterações que precisa de efetuar quando utiliza esta versão mais recente.
A atualização de janeiro de 2021 estará disponível apenas para dispositivos Mini R do Azure Stack Edge Pro - GPU, Azure Stack Edge Pro R e Mini R do Azure Stack Edge. As informações neste artigo aplicam-se apenas a estes dispositivos.
Nota
Não tem de atualizar para a versão de janeiro de 2021. Se optar por continuar a utilizar a sua versão atual, não haverá impacto na gestão de funções IoT Edge. No entanto, para tirar partido das novas funcionalidades e ajudar a reduzir quaisquer riscos de segurança, recomendamos que instale a versão mais recente.
IoT Edge alterações de gestão de funções
Depois de instalar a atualização opcional de janeiro de 2021 no seu dispositivo Azure Stack Edge, terá de utilizar a versão mais recente dos cmdlets da API, do SDK e do PowerShell para IoT Edge gestão de funções.
As seguintes alterações só são necessárias se aplicar a atualização de janeiro de 2021:
- Se estiver atualmente a utilizar a versão 2019-08-01 da API de Gestão de Funções, atualize para a versão da API que será lançada em janeiro de 2021.
- Se estiver atualmente a utilizar a gestão de funções através do SDK versão 1.0.0, atualize para a versão que será lançada em janeiro de 2021.
- Se estiver a utilizar a gestão de funções com os cmdlets de Azure PowerShell (Pré-visualização), como
Get-AzStackEdgeRole
,New-AzStackEdgeRole
,Set-AzStackEdgeRole
ouRemove-AzStackEdgeRole
, aguarde que os novos cmdlets sejam lançados em fevereiro de 2021.
Utilização da API
Se estiver atualmente a realizar IoT Edge gestão de funções através da API, deverá utilizar a nova versão da API 2020-12-01, que será publicada mais tarde. Se estiver a utilizar a API de Função atual, depois de instalar a próxima versão de software do dispositivo, tem de mudar para a função PUT, GET ou DELETE Kubernetes, seguida da API de Suplemento PUT IoT.
Para o método PUT
O pedido HTTP atual
As chamadas à API são feitas neste 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"
O corpo do pedido tem o seguinte aspeto:
{ "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" } }
O próximo pedido HTTP
As chamadas à API para a função do Kubernetes são feitas no seguinte 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'
O corpo do pedido terá o seguinte aspeto:
{ "kind": "Kubernetes", "properties": { "hostPlatform": "Linux", "kubernetesClusterInfo": { "version": "v1.17.3" }, "kubernetesRoleResources": { "storage": { "endpoints": [] }, "compute": { "vmProfile": "DS1_v2" } } } }
As chamadas à API para o suplemento IoT Edge são feitas no seguinte 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'
O corpo do pedido terá o seguinte aspeto:
{ "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" } } } } } }
Para o método GET
A resposta HTTP atual
As chamadas à API são efetuadas no seguinte 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'
O corpo da resposta tem o seguinte aspeto:
"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 resposta HTTP futura
As chamadas à API são efetuadas no seguinte 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'
O corpo da resposta tem o seguinte aspeto:
{ "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", }
Para o método DELETE
As chamadas à API atual
As chamadas à API são efetuadas no seguinte 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'
As próximas chamadas à API
As chamadas à API são efetuadas no seguinte 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'
Utilização do SDK
Se estiver a utilizar o SDK, depois de instalar a atualização de janeiro de 2021, terá de alterar a forma como configurou a função IoT Edge, conforme mostrado no exemplo seguinte. Em seguida, irá transferir e instalar o próximo pacote NuGet para mudar para o novo SDK, conforme mostrado aqui.
O exemplo atual do 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);
O novo exemplo do 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
Utilização de cmdlets
Se estiver atualmente a utilizar o Get-AzStackEdgeRole
cmdlet , New-AzStackEdgeRole
, Set-AzStackEdgeRole
ou Remove-AzStackEdgeRole
, terá de aguardar pela nova versão que está planeada para a versão de fevereiro de 2021.
Perguntas mais frequentes
Estou a utilizar o Azure Stack Edge Pro – FPGA. A atualização de janeiro de 2021 afeta o modelo FPGA?
N.º A atualização de janeiro de 2021 aplica-se apenas aos dispositivos Mini R do Azure Stack Edge Pro – FPGA, Azure Stack Edge Pro R e Azure Stack Edge. Azure Stack Edge Pro – FPGA não é afetada por esta atualização e não requer alterações à gestão de funções IoT Edge.
Depois de atualizar o Azure Stack Edge Pro – GPU para o novo software de dispositivo em janeiro de 2021, algum dos serviços existentes é afetado?
N.º Os seus serviços configurados não serão afetados depois de instalar a atualização de dispositivo de janeiro de 2021.
Quais são as alterações de alto nível à API de gestão de IoT Edge, SDK ou cmdlet?
IoT Edge é um suplemento na função kubernetes, o que implica que primeiro terá de garantir que o Kubernetes está configurado e, em seguida, executar a configuração IoT Edge.