Preparar los recursos técnicos del módulo IoT EdgePrepare your IoT Edge module technical assets

En este artículo se describen los requisitos que deben cumplir los recursos técnicos del módulo IoT (Internet de las cosas) Edge para que se pueda publicar en Azure Marketplace.This article describes the requirements that your Internet of Things (IoT) Edge module technical assets must meet before being published in Azure Marketplace.

IntroducciónGet started

Un módulo IoT Edge es un contenedor compatible con Docker que se ejecuta en un dispositivo IoT Edge.An IoT Edge module is a Docker-compatible container that runs on an IoT Edge device.

Requisitos técnicosTechnical requirements

El módulo IoT Edge debe cumplir los siguientes requisitos técnicos para certificarse y publicarse en Azure Marketplace.Your IoT Edge module must meet the following technical requirements to be certified and published in Azure Marketplace.

Compatibilidad con plataformasPlatform support

El módulo IoT Edge debe admitir una de las siguientes opciones de plataforma:Your IoT Edge module must support one of the following platform options:

Plataformas de nivel 1 compatibles con IoT EdgeTier 1 platforms supported by IoT Edge

El módulo debe admitir todas las plataformas de nivel 1 compatibles con IoT Edge (según el registro de Compatibilidad de Azure IoT Edge).Your module must support all Tier 1 platforms supported by IoT Edge (as recorded in Azure IoT Edge support). Se recomienda esta opción porque proporciona una mejor experiencia de cliente.We recommend this option because it provides a better customer experience. Se presentarán los módulos que cumplan este criterio.Modules that meet this criteria will be showcased. Un módulo que use esta opción de plataforma debe:A module using this platform option must:

Un subconjunto de plataformas de nivel 1 compatibles con IoT EdgeA subset of Tier 1 platforms supported by IoT Edge

El módulo debe admitir un subconjunto (al menos uno) de plataformas de nivel 1 compatibles con IoT Edge (según el registro de Compatibilidad de Azure IoT Edge).Your module must support a subset (at least one) of Tier 1 platforms supported by IoT Edge (as recorded in Azure IoT Edge support). Un módulo que use esta opción de plataforma debe:A module using this platform option must:

  • Proporcionar una etiqueta más reciente y una etiqueta de versión (por ejemplo, 1.0.1) que sean etiquetas de manifiesto compiladas con la herramienta de manifiestos de GitHub, si hay más de una plataforma compatible.Provide a latest tag and a version tag (for example, 1.0.1) that are manifest tags built with the GitHub manifest-tool if more than one platform is supported. Las etiquetas de manifiesto son opcionales solo cuando hay una plataforma compatible.Manifest tags are optional only when one platform is supported.
  • Use la pestaña Descripción de la oferta del Centro de partners para agregar un vínculo en la sección Vínculos útiles a al menos un dispositivo IoT Edge del catálogo de dispositivos certificados Azure IoT Edge.Use the offer listing tab in Partner Center to add a link under the Useful links section to at least one IoT Edge device from the Azure IoT Edge Certified device catalog.

Se trata de una imagen de la sección Descripción de la oferta del Centro de partners

Dimensiones de dispositivosDevice dimensions

Las dimensiones de un módulo IoT Edge (como, por ejemplo, CPU, RAM, almacenamiento y GPU) en dispositivos IoT Edge de destino deben cumplir los siguientes requisitos:IoT Edge module dimensions (such as CPU, RAM, storage, and GPU) on targeted IoT Edge devices must meet the following requirements:

  • El módulo debe trabajar con al menos un dispositivo IoT Edge del catálogo de dispositivos certificados Azure IoT Edge.The module must work with at least one IoT Edge device from the Azure IoT Edge Certified device catalog.

  • Los requisitos mínimos de hardware deben quedar documentados como último párrafo de la descripción de la oferta (en la pestaña Descripción de la oferta del Centro de partners).The minimum hardware requirements must be documented as the last paragraph in the description of the offer (under the offer listing tab in Partner Center). También puede indicar los requisitos de hardware recomendados si difieren considerablemente.Optionally, you can also list the recommended hardware requirements if they differ significantly. Por ejemplo, agregue la siguiente sección al final de la descripción de la oferta:For example, add the following section at the end of your offer description:

Copie este texto HTML o use las funciones de texto enriquecido correspondientes de la ventana de edición.Copy this HTML text or use the corresponding rich text functions in the editing window.

<p><u>Minimum hardware requirements:</u> Linux x64 and arm32 OS, 1GB of RAM, 500 Mb of storage</p>

ConfiguraciónConfiguration

El módulo debe incluir la configuración predeterminada para que la implementación en un dispositivo IoT Edge se realice de la manera más simple posible.Your module must include default configuration settings to make the deployment to an IoT Edge device as straightforward as possible. Esta información se puede proporcionar en la página Configuración técnica del plan en el Centro de partners.This information can be provided in the Technical configuration page for the plan in Partner Center. Es posible que el contenedor también incluya el SDK del módulo IoT Edge para habilitar la comunicación con EdgeHub e IoT Hub.The container may also include the IoT Edge Module SDK to enable communication with the edge Hub and IoT Hub.

Configuración predeterminadaDefault configuration

Los módulos IoT Edge deben poder iniciarse con la configuración predeterminada proporcionada en la página Configuración técnica del plan en el Centro de partners.IoT Edge modules must be able to start with the default settings provided in the Technical configuration page for the plan in Partner Center. Están disponibles los siguientes valores predeterminados:The following default settings are available:

  • Rutas predeterminadasDefault routes
  • Propiedades deseadas del módulo gemelo predeterminadoDefault module twin desired properties
  • Variables de entorno predeterminadasDefault environment variables
  • Opciones de creación del contenedor predeterminadasDefault container create options

En un escenario donde un parámetro necesario para un valor predeterminado no tiene sentido (por ejemplo, la dirección IP del servidor de un cliente), agregue un parámetro como valor predeterminado.In a scenario where a parameter that's required for a default value doesn't make sense (for example, the IP address of a customer's server), add a parameter as the default value. Este valor se escribe en mayúsculas y entre corchetes.This value is upper case and enclosed in brackets. En este ejemplo, se configura la variable de entorno predeterminada siguiente:For this example, you'd set up the following default environment variable:

ServerIPAddress = <MY_SERVER_IP_ADDRESS>

Documentación de configuraciónConfiguration documentation

Toda la configuración de un módulo IoT Edge debe documentarse con claridad.All configuration settings of an IoT Edge module must be clearly documented. Por ejemplo, debe documentar cómo usar sus rutas, las propiedades deseadas de dispositivos gemelos, las variables de entorno, createOptions, etc.For example, you must document how to use its routes, twin desired properties, environment variables, createOptions, and so on. Debe proporcionar un vínculo a la documentación o convertirla en parte de la descripción del plan o la oferta.You must either provide a link to your documentation or make it part of your offer or plan description. Puede proporcionar esta información en la página Descripción de la oferta y Lista del plan del Centro de partners.You can provide this information in the Offer listing and Plan listing page in Partner Center.

Etiquetas y control de versionesTags and versioning

Los clientes deben poder implementar fácilmente un módulo y obtener automáticamente actualizaciones desde Marketplace (en un escenario de desarrollador).Customers must be able to easily deploy a module and automatically get updates from the marketplace (in a developer scenario). También deben poder usar y congelar una versión exacta que hayan probado (en un escenario de producción).They also must be able to use and freeze an exact version they've tested (in a production scenario).

Para satisfacer las expectativas de estos clientes y publicarse en Marketplace, los módulos IoT Edge deben cumplir los siguientes requisitos:To meet these customer expectations and be published in the marketplace, IoT Edge modules must meet the following requirements

  • Incluir una etiqueta más reciente de manifiesto que apunte a la versión más reciente en todas las plataformas compatibles.Include a manifest latest tag that points to the latest version on all supported platforms.
  • Crear etiquetas de versión del tipo X.Y.Z, donde X, Y y Z son números enteros.Make version tags in the form X.Y.Z, where X, Y, and Z are integers.
  • Incluir una etiqueta de "versión", como 1.0.1, que apunte a una versión concreta en todas las plataformas compatibles.Include a "version" tag, such as 1.0.1, that points to a specific version on all supported platforms.
  • No actualice las etiquetas de "versión", como 1.0.1, ya que no se deben cambiar.Don't update "version" tags, such as 1.0.1, because they must not be changed.

Nota

Opcionalmente, el control de versiones puede incluir etiquetas "revertir versión", como 2.0 y 1.0.Optionally, versioning can include "rolling version" tags, such as 2.0 and 1.0. Esto permite mantener varias versiones principales en paralelo.This supports maintaining multiple major versions in parallel.

TelemetríaTelemetry

Los módulos que usan el SDK de módulo IoT deben establecer el identificador de módulo único en PublisherId.OfferId.SkuId para fines de telemetría.Modules using the IoT Module SDK must set the unique module identifier to PublisherId.OfferId.SkuId for telemetry purposes. Un identificador único ayuda a Azure Marketplace a identificar la cantidad de instancias de módulos que se están ejecutando.A unique identifier helps Azure Marketplace identify the number of module instances that are running.

Use uno de los métodos siguientes de los SDK de módulo IoT para establecer ProductInfo en este identificador:Use one of the following methods from the IoT Module SDKs to set the ProductInfo to this identifier:

En cuanto a los módulos que no usan el SDK de módulo IoT, puede encontrar detalles menos precisos en el Centro de partners, por ejemplo el número de descargas.For modules that don't use the IoT Module SDK, less precise insights are available through Partner Center, such as the number of downloads.

SeguridadSecurity

Los módulos IoT Edge deben evitar los módulos con privilegios.IoT Edge modules must avoid privileged modules. En su lugar, pida el acceso con menos privilegios como sea posible al host.Instead ask for the least privileged access to the host as possible.

SDK de módulo IoTModule IoT SDK

Incluir el SDK de módulo IoT no es un requisito previo para realizar la certificación.Including the IoT Module SDK isn't a prerequisite for certification. Pero, si decide incluir el SDK de módulo IoT, puede proporcionar una experiencia de usuario mejor.However, including the IoT Module SDK may provide a better user experience. Por ejemplo, admitir el enrutamiento o el envío de mensajes a la nube.For example, to support routing or sending messages to the Cloud.

El SDK de módulo IoT es necesario para obtener datos de telemetría sobre la cantidad de instancias de módulos en ejecución.The IoT Module SDK is required to get telemetry data about the number of module instances that are running.

Proceso de recertificaciónRecertification process

Los asociados reciben una notificación siempre que hay un cambio importante que afecta a sus módulos, como:Partners are notified whenever there's a breaking change that affects their modules, such as:

  • Matriz de compatibilidad de sistema operativo o arquitectura de nivel 1 compatible con IoT EdgeTier 1 OS/arch support matrix supported by IoT Edge
  • SDK de módulo IoTIoT Module SDK
  • Entorno de tiempo de ejecución de IoT EdgeIoT Edge runtime
  • Directrices de certificación de módulo IoT EdgeIoT Edge module certification guidelines

Los asociados deben actualizar y volver a certificar sus ofertas volviendo a publicarlas en el Centro de partners.Partners must update and recertify their offers by re-publishing them in Partner Center.

La oferta también se volverá a certificar si se actualiza, por ejemplo, al agregar nuevas etiquetas de imagen.Your offer will also be recertified if you update it, such as adding new image tags.

Módulo Host en Azure Container RegistryHost module in Azure Container Registry

Para cargar el módulo IoT Edge en Azure Marketplace, primero debe hospedarlo en Azure Container Registry (ACR).To upload your IoT Edge module to Azure Marketplace, you first need to host it in an Azure Container Registry (ACR). El módulo debe incluir todas las etiquetas que quiere publicar, incluidas las etiquetas de imagen a las que hace referencia una etiqueta de manifiesto.The module must include all the tags that you want to publish, including the image tags that are referenced by a manifest tag. Para obtener más información, consulte el tutorial Creación de una instancia de Azure Container Registry e inserción de una imagen de contenedor.For more information, see the tutorial Create an Azure container registry and push a container image.

Pasos siguientesNext steps