Deploying Custom Modules for Industrial IoT Solution | Microsoft Azure IoT Developer Exam

Deploying Custom Modules

Question

As a part of an industrial IoT solution, you have four high-speed cameras used for quality control, and connected to an edge device.

The images sent by the cameras must be pre-processed locally on the edge, and only images with identified quality defects must be forwarded to the IoT hub for further analysis and archiving.

You need to create three IoT Edge modules that receive messages from the cameras, run a machine learning model to process images, then forward the relevant images to IoT Hub.

You need to deploy two custom modules on your device.

Which property groups should you add to the deploymentManifest.json?

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D.

Correct Answer: B.

Option A is incorrect because “$edgeAgent.systemModules”is used to define properties of the standard edge modules like edgeAgent and edgeHub.

Definitions of custom modules go under the “modules” property.

Option B is CORRECT because the custom module definitions must go into the “modules” section of the edgeAgent, while the connections between the modules are described in the “routes” section of the edgeHub definition.

Option C is incorrect because the custom module definitions must go into the “modules” section of the edgeAgent, rather than the edgeHub.

Option D is incorrect because the “Binds” parameter is needed if a module needs to access a local folder (typically for storing data locally)

It is not needed for the current scenario.

registryCredentials is actually needed and used to define the custom container registries.

References:

To implement the described solution, you need to create three IoT Edge modules that receive messages from the cameras, run a machine learning model to process images, then forward the relevant images to IoT Hub. In order to deploy the modules to the edge device, you will need to use the deployment manifest, which is a JSON file that describes the modules to be deployed and how they should be configured.

The deployment manifest should include the following property groups:

  1. "$edgeAgent.systemModules" and "$edgeAgent.properties.desired.routes"
  2. "$edgeHub.modules" and "$edgeHub.properties.desired.routes"
  3. Two custom module definitions, each with the necessary properties.

Option A: "$edgeAgent.systemModules" and "$edgeAgent.properties.desired.routes" The "$edgeAgent.systemModules" property group should be included in the deployment manifest because it defines the system modules that are required to run on the edge device, including the Edge Agent and Edge Hub. The "$edgeAgent.properties.desired.routes" property group is also required, as it defines the routes that the Edge Hub should use to send messages between modules.

Option B: "$edgeAgent.modules" and "$edgeHub.properties.desired.routes" This option is not correct, as "$edgeAgent.modules" should not be used. "$edgeAgent.modules" is used to define custom modules that are not part of the system modules, and should not be used to define system modules. "$edgeHub.properties.desired.routes" should be used to define the routes for the Edge Hub, but "$edgeHub.modules" should be used to define custom modules that will be deployed on the Edge Hub.

Option C: "$edgeHub.modules" and "$edgeHub.properties.desired.routes" This option is partially correct, as "$edgeHub.properties.desired.routes" should be included in the deployment manifest to define the routes for the Edge Hub. However, "$edgeHub.modules" should not be used to define the custom modules that will run on the edge device. Instead, the custom modules should be defined as part of the main deployment manifest.

Option D: "HostConfig.Binds" and "registryCredentials" This option is not correct, as "HostConfig.Binds" and "registryCredentials" are not used to define IoT Edge modules in the deployment manifest.

In summary, the correct option for this scenario is A: "$edgeAgent.systemModules" and "$edgeAgent.properties.desired.routes". Additionally, two custom module definitions should be included in the main deployment manifest, each with the necessary properties to receive messages from the cameras, run a machine learning model to process images, and forward the relevant images to IoT Hub.