Azure / iotedgedev

The Azure IoT Edge Dev Tool greatly simplifies your Azure IoT Edge development process. It has everything you need to get started and helps with your day-to-day Edge development.
https://aka.ms/iotedgedev
Other
160 stars 69 forks source link

Add support for DPS #487

Open EliiseS opened 3 years ago

EliiseS commented 3 years ago

In our project we're using DPS to provison our edge devices. Right now we have a mixed solution of using iotedgedev build --push and az iot edge deployment create for our deployments. This works when you don't set the DEVICE_CONNECTION_STRING in the .env file.

Would it be possible to add DPS support for iotedge deploy and do you have plans to support it?

Example of a DPS provisioned device connection string: HostName=soak-iot-hub.azure-devices.net;DeviceId=soak-edge-device;x509=true Example of a regular device connection string: HostName=iotedgedev-iothub-d278b7.azure-devices.net;DeviceId=iotedgedev-edgedevice;SharedAccessKey=NfS9UhVSljRM4=

Steps to reproduce issue:

  1. Provision and set up IoTEdge with a Virtual Machine by following the QuickStart guide
  2. In the generated .env replace DEVICE_CONNECTION_STRING value with "HostName=soak-iot-hub.azure-devices.net;DeviceId=<your_edge_device_id>;x509=true" where the <your_edge_device_id> is the same as the DeviceId from your original DEVICE_CONNECTION_STRING
  3. Retry: iotedgedev solution deploy

Current solution

The DEVICE_CONNECTION_STRING value is only required for extracting the DeviceId for all commands in the iotedgedev CLI, with the exception of the commands that use the simulator (iotedgehubdev).

The .env template also already contains EDGE_DEVICE_ID value, which id currently only used to retrieve the device connection string using Azure CLI: image image

There are a number of commands that check that the DEVICE_CONNECTION_STRING is set in commands that only use the DeviceId: image

When using a DPS device connection string, the device connection string is set to empty, failing the above validations: image

Implementation suggestion

angie4u commented 2 years ago

hi! :)

seanmiller168 commented 2 years ago

I'll pick this up