Blog Azure Bicep

Microsoft.DeviceRegistry/assets: implementación con Bicep y ARM Templates

Implementación de Microsoft.DeviceRegistry/assets con Bicep y ARM Templates

Introducción a Microsoft.DeviceRegistry/assets

El recurso Microsoft.DeviceRegistry/assets es una parte esencial en la configuración de soluciones IoT en Azure. Este recurso permite modelar activos relacionados con un registro de dispositivos (Device Registry) en Azure cuando la versión de API utilizada está disponible en tu entorno. En este artículo, exploraremos cómo definir y desplegar este recurso utilizando Bicep y ARM templates, proporcionando ejemplos prácticos para facilitar su adopción.

Note: En los ejemplos se usa <api-version> como marcador. Sustitúyelo por una versión publicada y soportada en tu entorno antes de desplegar.


Propiedades clave del recurso

El recurso Microsoft.DeviceRegistry/assets incluye varias propiedades configurables que permiten personalizar su comportamiento. A continuación, se describen las propiedades más importantes:

  • name: Nombre del recurso. Debe ser único dentro del grupo de recursos.
  • type: Siempre será Microsoft.DeviceRegistry/assets.
  • apiVersion: Especifica la versión de la API, en este caso <api-version>.
  • location: La región donde se desplegará el recurso.
  • properties: Contiene la configuración específica del recurso, como metadatos o configuraciones adicionales.

Ejemplo de estructura JSON

A continuación, se muestra un ejemplo básico de cómo se define este recurso en formato JSON:

{
  "type": "Microsoft.DeviceRegistry/assets",
  "apiVersion": "<api-version>",
  "name": "myDeviceAsset",
  "location": "eastus",
  "properties": {
    "description": "Descripción del activo",
    "tags": {
      "environment": "production",
      "department": "IoT"
    }
  }
}

Implementación con ARM Templates

Los ARM templates son una forma declarativa de describir y desplegar recursos en Azure. A continuación, se presenta un ejemplo práctico para desplegar un recurso Microsoft.DeviceRegistry/assets utilizando un ARM template.

Ejemplo de ARM Template

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    {
      "type": "Microsoft.DeviceRegistry/assets",
      "apiVersion": "<api-version>",
      "name": "myDeviceAsset",
      "location": "eastus",
      "properties": {
        "description": "Descripción del activo IoT",
        "tags": {
          "environment": "production",
          "department": "IoT"
        }
      }
    }
  ]
}

Note: Antes de desplegar el template, asegúrate de que el grupo de recursos y el registro de dispositivos ya estén creados.

Despliegue del template

Para desplegar el template, utiliza el siguiente comando de Azure CLI:

az deployment group create \
  --resource-group myResourceGroup \
  --template-file ./template.json

Implementación con Bicep

Bicep es un lenguaje de dominio específico (DSL) diseñado para simplificar la creación de templates de ARM. A continuación, se muestra cómo implementar el recurso Microsoft.DeviceRegistry/assets utilizando Bicep.

Ejemplo de Bicep

resource myDeviceAsset 'Microsoft.DeviceRegistry/assets@<api-version>' = {
  name: 'myDeviceAsset'
  location: 'eastus'
  properties: {
    description: 'Descripción del activo IoT'
    tags: {
      environment: 'production'
      department: 'IoT'
    }
  }
}

Despliegue del archivo Bicep

Para desplegar este archivo Bicep, utiliza el siguiente comando de Azure CLI:

az deployment group create \
  --resource-group myResourceGroup \
  --template-file ./main.bicep

Warning: Asegúrate de tener instalada la última versión de Azure CLI y del módulo Bicep para evitar problemas de compatibilidad.


Mejores prácticas para el despliegue

  1. Uso de parámetros: Define parámetros en tus templates para permitir configuraciones reutilizables. Ejemplo en Bicep:

    param assetName string = 'myDeviceAsset'
    param location string = 'eastus'
    param environment string = 'production'
    
    resource myDeviceAsset 'Microsoft.DeviceRegistry/assets@<api-version>' = {
      name: assetName
      location: location
      properties: {
        description: 'Descripción del activo IoT'
        tags: {
          environment: environment
          department: 'IoT'
        }
      }
    }
    
  2. Validación previa: Antes de desplegar, valida tu template con el siguiente comando:

    az deployment group validate \
      --resource-group myResourceGroup \
      --template-file ./main.bicep
    
  3. Control de versiones: Usa un sistema de control de versiones como Git para rastrear cambios en tus templates.


Conclusión

El recurso Microsoft.DeviceRegistry/assets es una herramienta poderosa para gestionar activos en soluciones IoT en Azure. Con el soporte de ARM templates y Bicep, puedes implementar este recurso de manera eficiente y escalable. Aprovecha las capacidades declarativas de estos lenguajes para simplificar la gestión de tus despliegues en Azure.

Note: Si tienes dudas sobre las propiedades avanzadas del recurso o necesitas personalizaciones específicas, consulta la documentación oficial disponible para tu versión de API antes de desplegar.