Open sw para analítica y monitorizacion


En efecto vamos  a   hablar de Grafana ,un software de  código abierto, rico en muchas características, potente, elegante ideal par analytics  y monitorizacion  que se puede ejecutar en Linux, Windows y MacOS.

Tal es su aceptación  que de hecho es un software de facto para el análisis de datos,  utilizado  en DStack overflow, eBay, PayPal, Uber y Digital  Ocean – sólo por mencionar algunos.

Soporta más  de 30 código abierto así como fuentes de datos bases de datos comerciales incluyendo MySQL, PostgreSQL, Graphite, Elasticsearch, OpenTSDB, Prometheus y InfluxDB . Le permite  digerir profundamente en grandes volúmenes de datos en tiempo real, datos operativos; visualizaciones, consultas, establecer alertas y obtener ideas de sus métricas desde ubicaciones de almacenamiento diferentes.

Es de destacar  que, Grafana permite la creación de múltiples configuraciones   independientes  teniendo su propio entorno de uso (administradores, fuentes de datos, paneles y usuarios).

Grafana Analytics Monitoring Software

Algunas características de Grafana

  • Elegantes gráficos para visualización de datos.
  • Gráficos rápidos y flexibles con muchas opciones.
  • Cuadros de mando dinámicos y reutilizables.
  • Es altamente extensible en cientos de paneles de control y plugins de la biblioteca oficial.
  • Ayudas de alimentación las preferencias del usuario.
  • Soporta multi tenancy, configuración de múltiples organizaciones independientes.
  • Compatible con la autenticación via LDAP, Google Auth, Grafana.com y Github.
  • Soporta notificaciones via Slack, PagerDuty y mas
  • Apoya notable colaboración que permite compartir datos y cuadros de mando a través de equipos y mucho más.
  • Una demostración en línea está disponible para probar antes de instalar Grafana en tu distribución Linux.: Demo URL: http://play.grafana.org/

 

En este post vamos a explicar cómo instalar software Grafana – visualización de datos y monitoreo en las distribuciones CentOS, Debian y Ubuntu .

Instalar Grafana en sistemas Linux

1. Vamos a instalar Grafana desde sus repositorios YUM o APT para que usted pueda actualizar con su administrador de paquetes predeterminado.

Instalar Grafana en Debian y Ubuntu

$ echo "deb https://packagecloud.io/grafana/stable/debian/ stretch main" | sudo tee -a /etc/apt/sources.list
$ curl https://packagecloud.io/gpg.key | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install grafana

Instalar Grafana en RHEL, CentOS y Fedora

# echo "[grafana]
name=grafana
baseurl=https://packagecloud.io/grafana/stable/el/7/$basearch
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packagecloud.io/gpg.key https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt" | sudo tee /etc/yum.repos.d/grafana.repo
# yum install grafana

2. Después de instalar Grafana, puede encontrar archivos importantes en las siguientes ubicaciones:

  • El Binario se instala en /usr/sbin/grafana-server
  • Instala el script de Init.d para /etc/init.d/grafana-server
  • Crea archivo predeterminado (entorno vars) a /etc/default/grafana-server
  • Instala el archivo de configuración para /etc/grafana/grafana.ini
  • Instala servicio systemd service  grafana-server.service
  • La configuración predeterminada establece el archivo de registro en /var/log/grafana/grafana.log
  • La configuración predeterminada especifica un db de sqlite3 en /var/lib/grafana/grafana.db
  • Instala JS/HTML/CSS y otros archivos de Grafana en /usr/share/grafana

3. A continuación, iniciar el servicio Grafana , y  comprobar si esta levantado  y funcionando, habitándolo  para el inicio automático en el arranque siguiente. De forma predeterminada, el proceso se ejecuta como el usuario grafana (creado durante el proceso de instalación) y escucha en el puerto HTTP  3000.

Iniciar servidor de Grafana (a través de Systemd)

# systemctl daemon-reload
# systemctl start grafana-server
# systemctl status grafana-server
# systemctl enable grafana-server

Iniciar servidor de Grafana (a través de init.d)

# service grafana-server start
# service grafana-server status
# sudo update-rc.d grafana-server defaults  [On Debian/Ubuntu]
# /sbin/chkconfig --add grafana-server      [On CentOS/RHEL/Fedora]

4. Si su sistema tiene un firewall activado por defecto, necesita abrir el puerto 3000 en el firewall para permitir las solicitudes de cliente para el proceso de grafana.

-----------  [On Debian/Ubuntu] -----------
$ sudo ufw allow 3000/tcp
$ sudo ufw reload
-----------  [On CentOS/RHEL/Fedora] -----------  
# firewall-cmd --permanent --add-port=3000/tcp
# firewall-cmd --reload

5. Ahora utilice la siguiente URL para acceder a la Grafana, que le redirigirá a la página de inicio de sesión, las credenciales de usuario como username: admin y contraseña: admin)

http://Your-Domain.com:3000
OR
http://IP-Address:3000

Grafana Admin Login

6. Después del inicio de sesión, usted accederá a la consola casera, como se muestra en la imagen de abajo.

Grafana Home Dashboard

7. A continuación, agregar un origen de datos o base de datos, haga clic en “Agregar origen de datos“. Por ejemplo vamos a añadir una base de datos MySQL ; especificar los parámetros de nombre, tipo y conexión de fuente de datos. Haga clic en Guardar y probar.

Add Grafana Data Source

Se le notificará si la conexión de base de datos es exitosa o ha fracasado, como se muestra en la captura de pantalla.

Luego volver a la consola Inicio para añadir un panel nuevo.

Grafana Data Source Connection

8. En el panel de Inicio , haga clic en tablero de instrumentos nuevo para añadir un nuevo panel para visualizar parámetros de origen de datos.

Add Grafana New Dashboard

Desde aquí, puede agregar más fuentes de datos, dashboards, invitar a los miembros de su equipo, instalar aplicaciones y plugins para extender las funcionalidades por defecto y hacer más.

Puede encontrar más información de la Grafana Homepage: https://grafana.com/

 

Fuente tecmint.com

Anuncios

Tres servicios gratuitos de transcripción de voz a texto


Puede parecer algo futurista, pero lo cierto es que probablemente el teclado y ratón tal como los conocemos hoy en día tenga sus días contados gracias al espectacular avance sufrido estos años en el apartado de reconocimiento de voz usando redes neuronales  y las técnicas de aprendizaje automático

En efecto ,gracias a  la tecnología del aprendizaje automático ,se aplican los algoritmos más avanzados de redes neuronales del aprendizaje profundo al audio de sus ficheros o del procedente de un micrófono  para conseguir un reconocimiento de voz de máxima precisión.

Mencionar que en todos los  sistemas de aprendizaje con redes neuronales la precisión de la API Speech mejora con el tiempo, es decir conforme perfeccionan la tecnología interna de reconocimiento de voz que usa los diferentes productos que vamos   a ver , lo cual significa que en realidad usando estos servicios estamos “entrenado”a estos sistemas para que su porcentaje  de aciertos sea cada vez mayor

Veamos algunas soluciones de reconocimiento de voz liderados por grandes proveedores como pueden ser Google ,Microsoft o IBM.

Reconocimiento de voz de bing

En efecto,   mediante la  nube  de Microsoft ( Azure)   y el servicio Bing Search  se puede convertir audio con voz en texto mediante streaming en tiempo real mediante la cual, al mismo tiempo que se envía el audio al servidor, se devuelven resultados parciales de reconocimiento.

De igual modo podría reconocer el texto a partir del audio almacenado en un archivo pero desde la pagina de demostración no es posible,pero como  “truco” casero para  probar   la funcionalidad  se  puede inyectar  el audio  ya grabado desde un dispositivo externo  por  medio de un cable de audio que lo  introduciría en el pc  pero no olvide seleccionar como dispositivo grabador la entrada de audio donde conecte la señal de audo externa .De este modo regulando adecuadamente el nivel de esta señal  debería funcionar exactamente igual que si habláramos por un micrófono

Para probar el servicio vaya a la url   https://azure.microsoft.com/es-es/services/cognitive-services/speech/

No olvide  seleccionar el idioma de destino en Language, haga clic en el micrófono en Iniciar grabación y empiece a hablar.

bibg

También tiene la opción de hacer clic en las dos frases de voz de ejemplo para ver cómo funciona el reconocimiento de voz.

Como en todos estos tipos de servicios ,si usa esta demostración, significa que consiente ofrecer datos de entrada de voz a Microsoft para fines de mejora del servicio.De  hecho al cargar datos para esta demostración, acepta que Microsoft puede guardarlos y usarlos para mejorar los servicios Microsoft, entre los que se encuentra el  API. A fin de facilitar la protección de la privacidad, se adoptan medidas para desperzonalizar los datos y protegerlos. Los datos no se publicarán ni se permitirá que terceros los usen.

IBM

También esta disponible para efectos de pruebas  la version de IBM por Watson  que permite  igualmente el dictado de voz a texto

El servicio IBM Watson Speech to Text utiliza capacidades de reconocimiento de voz para convertir el árabe, el inglés, el español, el francés, el portugués de Brasil, el japonés y el mandarín en texto.

Lo mas destacable de  Watson es asimismo la capacidad de transcribir audio done se puede usa su micrófono para grabar audio o cargar audio pregrabado (.mp3, .mpeg, .wav, .flac o .opus solamente).

Incluso puede subir  archivos de audio o probar ficheros de muestra para probar el servicio , ( los archivos de audio de muestra  son en inglés de EE. UU y están cubiertos por la licencia de Creative Commons.)

El resultado devuelto incluye el texto reconocido, las alternativas de palabras y las palabras clave moteadas. Algunos modelos pueden detectar múltiples altavoces; lo cual  puede ralentizar el rendimiento.

A continuación esta es la url para probar el servicio en modo  demo: https://speech-to-text-demo.ng.bluemix.net/

No olvide  seleccionar el idioma de destino(Voice Model ) , haga clic en el micrófono(record Audio)   y empiece a hablar.

En unos instantes en tiempo real debería ir viendo las transcripciones  directamente desde esta pagina

Este sistema por el momento se usa  para fines de demostración y no está destinado a procesar datos personales ,así  que no se deben ingresar datos personales en este sistema, ya que puede no tener los controles necesarios para cumplir con los requisitos del Reglamento general de protección de datos (UE) 2016/679.

En teoría los primeros 1000 minutos al mes son gratis en el servicio estándar,   así que el limite es muy superior de uso gratuito al de Google o al  de Microsft .

Reconocmiento  de voz de Google

Tambien  Google dispone de su propio servicio de reconocimiento de voz  , el cual por cierto es el usado por  ejemplo desde los terminales Android.

En el caso de que este validado contra Google  y  tenga cuenta en Google Cloud , incluso se pueden subir directamente los ficheros que deseamos transcribir mediante la opción File Upload  teniendo en cuenta la limitación de 60 minutos en caso de no querer pasar por caja.

Si quiere probar esta funcionalidad esta es la url : https://cloud.google.com/speech-to-text/

No olvide  seleccionar el idioma de destino(Languaje ) ,seleccione el micrófono(Microphone)    y empiece a hablar.

En unos instantes ,en tiempo real debería ir viendo las transcripciones  directamente desde esta pagina:

Como no podía ser de otra manera, también  es posible reconocer el audio subido en la solicitud e integrarlo en su almacenamiento de audio de Google Cloud Storage

¿Pero cual elegimos?

Como hemos podido  ver todos estos servicios de reconocimiento de voz  están en fase de pruebas para demostrar por  ahora incluso en el estado inicial  lo que pueden llegar  a poder hacer.

De todas las opciones ,en caso de tener necesidad de usarlo por mucho tiempo,  el servicio de IBM tiene una oferta mas que generosa de 1000 minutos frente a los 100 de Google  , pero no olvidemos que si queremos integrar este servicio con una aplicación albergada en Azure o en la infraestructura de Google  entonces necesitaremos usar sus propios servicios  .

 

Transcripcion de ficheros de audio


Puede parecer algo anacrónico, pero  lo cierto es que probablemente el teclado y ratón tal como los conocemos  hoy en día tenga  sus días contados   gracias al espectacular avance  sufrido estos años   en apartado de  reconocimiento de voz   usando redes neuronales  claramente  propiciado  por en las ingentes subida de  capacidades de computo gracias al  Cloud  Commputing  ,el Big Data y el aprendizaje automático

Veamos algunas soluciones de reconocimiento de voz  liderado por grandes proveedores como pueden ser Google o IBM

speech-api-lead

Google Cloud Speech

En efecto desde Google proponen la API Speech de Google Cloud , la cual  permite que los desarrolladores conviertan audio en texto aplicando potentes modelos de redes neuronales en una API fácil de usar. La API Speech reconoce más de 80 idiomas y sus variantes para gestionar una clientela internacional. Asimismo, se puede filtrar el contenido inapropiado en los resultados de texto.

La API Speech de Cloud se tarifica por intervalos de 15 segundos de audio procesados después de los 60 primeros minutos, que son gratuitos.

USO MENSUAL PRECIO POR CADA 15 SEGUNDOS*
Hasta 60 minutos Gratuito
61 – 1.000.000 de minutos* 0,006 $

*Este precio es válido para aplicaciones de sistemas personales (por ejemplo, teléfonos, tablets, portátiles y ordenadores).  El uso mensual está limitado a un millón de minutos.

Se puede transcribir el texto que los usuarios dictan al micrófono de una aplicación, habilitar el control por voz o transcribir archivos de audio, entre muchas otras funciones.

La API Speech puede transmitir resultados de texto conforme vaya reconociendo el audio, de forma que el texto reconocido aparece inmediatamente mientras la persona habla  asi que consigue resultados de texto en tiempo real

De igual modo, la API puede reconocer el texto a partir del audio almacenado en un archivo pero solo si se tiene cuenta en Google Cloud.

Como   “truco” casero para  probar   la funcionalidad del API se  puede inyectar  el audio  ya grabado desde un dispositivo externo  por  medio de un cable de audio que lo  introduciría en el pc  seleccionando como dispositivo grabador la entrada de audio :debería funcionar exactamente igual que si hablamos por un micrófono

En el caso de que este validado contra Google  y  tenga cuenta en Google Cloud este paso se puede obviar porque se pueden subir directamente los ficheros que deseamos transcribir mediante la opción File Upload  teniendo en cuenta la limitación de 60 minutos en caso de no querer pasar por caja

Si quiere probar esta funcionalidad esta es la url : https://cloud.google.com/speech-to-text/

 

Como no podía ser de otra manera, también  es posible reconocer el audio subido en la solicitud e integrarlo en su almacenamiento de audio de Google Cloud Storage. 

Gracias a  la tecnología del aprendizaje automático ,se aplican los algoritmos más avanzados de redes neuronales del aprendizaje profundo al audio de sus ficheros  para conseguir un reconocimiento de voz de máxima precisión. Mencionar que como todos los  sistemas de aprendizaje con redes neuronales la precisión de la API Speech mejora con el tiempo, conforme perfeccionan la tecnología interna de reconocimiento de voz que usa los productos de Google.

No se necesitan pues  sistemas avanzados de procesamiento de señales ni reducción de ruido antes de enviar el audio a la API Speech. El servicio es capaz de procesar audio ruidoso procedente de diversos entornos de forma satisfactoria.

El reconocimiento de voz se puede adaptar al contexto suministrando un conjunto independiente de palabras clave con cada llamada a la API, lo que resulta especialmente útil para las situaciones de control de dispositivos y aplicaciones.

La API Speech es compatible con cualquier dispositivo que pueda enviar solicitudes REST o gRPC, incluidos teléfonos, ordenadores, tablets y dispositivos con Internet de las Cosas (por ejemplo, coches, televisores o altavoces).

CARACTERÍSTICAS DE LA API SPEECH

Conversión de voz en texto gracias al aprendizaje automático

El reconocimiento automático de voz (ASR) basado en redes neuronales de aprendizaje profundo dota a las   aplicaciones , la funcionalidad  de búsqueda por voz o transcripción de voz.Reconoce más de 80 idiomas y variantes, con un amplio vocabulario proporcionando resultados de reconocimiento mientras los usuarios siguen hablando.
Es posible personalizar el reconocimiento de voz según un contexto específico suministrando un conjunto de palabras y frases que tienen muchas probabilidades de aparecer. Esto resulta especialmente útil para añadir palabras y nombres personalizados al vocabulario, así como en situaciones de control por voz.
El sonido puede proceder del micrófono de una aplicación o de un archivo de audio grabado previamente. Se admiten diversas codificaciones de audio, como FLAC, AMR, PCMU y Linear-16.
Es capaz de procesar audio de diversos entornos ruidosos sin necesidad de reducción de ruido adicional así que puede filtrar contenido inapropiado en los resultados de texto para algunos idiomas.
El  API como vemos esta integrada:los archivos de audio se pueden subir en la solicitud o integrar en Google Cloud Storage.

Transcripción de archivos de audio cortos

Es muy sencillo transcribir un archivo de audio corto a texto utilizando el reconocimiento de voz sincrónico.

El reconocimiento de voz síncrona devuelve el texto reconocido para audio corto (menos de ~ 1 minuto) en la respuesta tan pronto como se procese(para procesar una solicitud de reconocimiento de voz para audio largo, use el Reconocimiento de voz asincrónico ).

El contenido de audio se puede enviar directamente a Cloud Speech-to-Text, o puede procesar contenido de audio que ya reside en Google Cloud Storage.

Speech-to-Text v1 se lanzó oficialmente y, en general, está disponible desde el extremo https://speech.googleapis.com/v1/speech . Las bibliotecas de cliente se lanzan como alfa y es probable que se modifiquen de formas incompatibles hacia atrás. Las bibliotecas del cliente actualmente no se recomiendan para uso de producción.

Estas muestras requieren que haya configurado gcloud y haya creado y activado una cuenta de servicio.

Realización de reconocimiento de voz síncrono en un archivo local

Aquí hay un ejemplo de cómo realizar el reconocimiento de voz sincrónico en un archivo de audio local mediantes comados de GCLOUD

Consulte el comando de recognize para obtener detalles completos.Para realizar el reconocimiento de voz en un archivo local, use la herramienta de línea de comandos de gcloud , pasando la ruta de archivo local del archivo para realizar el reconocimiento de voz.

 gcloud ml speech reconoce CAMINO-AL-LOCAL-FILE --language-code = 'en-US'

Si la solicitud es exitosa, el servidor devuelve una respuesta en formato JSON:

{
  "results": [
    {
      "alternatives": [
        {
          "confidence": 0.9840146,
          "transcript": "how old is the Brooklyn Bridge"
        }
      ]
    }
  ]
}

Realización de reconocimiento de voz síncrono en un archivo remoto

Para su comodidad, la API de voz a texto puede realizar el reconocimiento de voz sincrónico directamente en un archivo de audio ubicado en Google Cloud Storage, sin la necesidad de enviar el contenido del archivo de audio en el cuerpo de su solicitud.

Aquí hay un ejemplo de cómo realizar el reconocimiento de voz sincrónico en un archivo ubicado en Cloud Storage  usando comandos  GCLOUD

Consulte el comando de recognize para obtener detalles completos.Para realizar el reconocimiento de voz en un archivo local, use la herramienta de línea de comandos de gcloud , pasando la ruta de archivo local del archivo para realizar el reconocimiento de voz.

 gcloud ml speech reconoce 'gs: //cloud-samples-tests/speech/brooklyn.flac' \
 --language-code = 'en-US'

Si la solicitud es exitosa, el servidor devuelve una respuesta en formato JSON:

{
  "results": [
    {
      "alternatives": [
        {
          "confidence": 0.9840146,
          "transcript": "how old is the Brooklyn Bridge"
        }
      ]
    }
  ]
}

Mas  informacion en https://cloud.google.com/speech-to-text/docs/sync-recognize?hl=es#speech-sync-recognize-gcloud

IBM

También esta disponible para testeo  Watson de IBM, que permite  dictado a texto

El servicio IBM Watson Speech to Text utiliza capacidades de reconocimiento de voz para convertir el árabe, el inglés, el español, el francés, el portugués de Brasil, el japonés y el mandarín en texto.Este sistema por el momento se usa o para fines de demostración y no está destinado a procesar datos personales ,así  que no se deben ingresar datos personales en este sistema, ya que puede no tener los controles necesarios para cumplir con los requisitos del Reglamento general de protección de datos (UE) 2016/679.

Lo mas destacable DE Watson es asimismo la capacidad de transcribir audio done se puede usa su micrófono para grabar audio o cargar audio pregrabado (.mp3, .mpeg, .wav, .flac o .opus solamente).

Incluso puede reproduzca uno de los archivos de audio de muestra para probar el servicio , ahora eso si los archivos de audio de muestra de banda ancha son en inglés de EE. UU y están cubiertos por la licencia de Creative Commons.

El resultado devuelto incluye el texto reconocido, las alternativas de palabras y las palabras clave moteadas. Algunos modelos pueden detectar múltiples altavoces; esto puede ralentizar el rendimiento.

A continuación esta es la url para probar el servicio en modo  demo: https://speech-to-text-demo.ng.bluemix.net/

 

En teoría los primeros 1000 minutos al mes son gratis en el servicio estándar,   así que el limite es muy superior de uso gratuito al de Google .

¿Le parece mejor opción la de IBM  que la de Google?¿Conoce algún otro servicio gratuito que podamos usar desde nuestras apps? Sin duda  la carrera por copar este mercado no acaba mas que empezar

 

Creación de una aplicación web de Node.js en Azure


Es relativamente sencillo como vamos a ver , implementar una aplicación en App Service en Windows  gracias  a queAzure Web Apps proporciona un servicio de hospedaje web muy escalable y con aplicación de revisiones de un modo automático.

 

Aplicación de ejemplo que se ejecuta en Azure

Estos pasos se pueden realizar con una máquina Mac, Windows o Linux,pero lo importante de la magia del Cloud, una vez instalados los requisitos previos, tardará aproximadamente cinco minutos en completar los pasos.

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar. Asimismo  tambien necesitará  completar esta guía de inicio rápido :instalación de Node.js y NPM

Descarga del ejemplo

Descargue el proyecto de ejemplo de Node.js de https://github.com/Azure-Samples/nodejs-docs-hello-world/archive/master.zip y extraiga el archivo ZIP.

En una ventana de terminal, vaya al directorio raíz del proyecto de ejemplo de Node.js (el que contiene index.php).

Ejecución de la aplicación de forma local

Ejecute la aplicación localmente abriendo una ventana de terminal y utilizando el script npm start para iniciar el servidor HTTP de Node.js integrado.

npm start

Abra un explorador web y vaya a la aplicación de ejemplo en http://localhost:1337.

Verá el mensaje Hola mundo de la aplicación de ejemplo que aparece en la página.

Aplicación de ejemplo que se ejecuta localmente

En la ventana de terminal, presione Ctrl + C para salir del servidor web.

Creación de un archivo ZIP de proyecto

Cree un archivo ZIP con todo el contenido del proyecto. El siguiente comando usa la herramienta predeterminada de su terminal:

# Bash
zip -r myAppFiles.zip .

# PowerShell
Compress-Archive -Path * -DestinationPath myAppFiles.zip

Posteriormente, cargue el archivo ZIP en Azure e impleméntelo en App Service.

Inicio de Azure Cloud Shell

Azure Cloud Shell proporcina  un shell interactivo gratuito que puede usar para ejecutar los pasos que vamos a ver .  Tiene las herramientas comunes de Azure preinstaladas y configuradas para usarlas en la cuenta. Simplemente haga clic en el botón Copiar para copiar el código, péguelo en la instancia de Cloud Shell y, a continuación, presione Entrar para ejecutarlo.

 

Hay varias  maneras de iniciar Cloud Shell:

Haga clic en Probarlo en la esquina superior derecha de un bloque de código. Cloud Shell en este artículo
Abra Cloud Shell en el explorador. https://shell.azure.com/bash
Haga clic en el botón Cloud Shell en el menú de la parte superior derecha de Azure Portal. Cloud Shell en el portal

Crear un grupo de recursos

Un grupo de recursos es un contenedor lógico en el que se implementan y administran recursos de Azure como aplicaciones web, bases de datos y cuentas de almacenamiento. Por ejemplo, más adelante puede elegir eliminar todo el grupo de recursos en un solo paso.

En Cloud Shell, cree un grupo de recursos con el comando az group create. En el ejemplo siguiente, se crea un grupo de recursos denominado myResourceGroup en la ubicación Europa Occidental. Para ver todas las ubicaciones que se admiten en App Service en el nivel Gratis, ejecute el comando az appservice list-locations --sku F1.

Desde Azure CLI   pruebe el comando:
az group create --name myResourceGroup --location "West Europe"

Generalmente se crean el grupo de recursos y los recursos en una región cercana.

Cuando finaliza el comando, una salida de JSON muestra las propiedades del grupo de recursos.

Crear un plan de Azure App Service

En Cloud Shell, cree un plan de App Service con el comando az appservice plan create.

En el siguiente ejemplo se crea un plan de App Service denominado myAppServicePlan con el plan de tarifa Gratis:

Desde Azure CLI   pruebe el comando:
az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku FREE

Cuando se ha creado el plan de App Service, la CLI de Azure muestra información en formato json similar al ejemplo siguiente :

{ 
  "adminSiteName": null,
  "appServicePlanName": "myAppServicePlan",
  "geoRegion": "West Europe",
  "hostingEnvironmentProfile": null,
  "id": "/subscriptions/0000-0000/resourceGroups/myResourceGroup/providers/Microsoft.Web/serverfarms/myAppServicePlan",
  "kind": "app",
  "location": "West Europe",
  "maximumNumberOfWorkers": 1,
  "name": "myAppServicePlan",
  < JSON data removed for brevity. >
  "targetWorkerSizeId": 0,
  "type": "Microsoft.Web/serverfarms",
  "workerTierName": null
} 

Creación de una aplicación web

En Cloud Shell, cree una aplicación web en el plan de App Service myAppServicePlan con el comando az webapp create.

En el siguiente ejemplo, reemplace  por un nombre único global de aplicación (los caracteres válidos son a-z0-9 y -). El tiempo de ejecución se establece en NODE|6.9. Para ver todos los entornos en tiempo de ejecución admitidos, ejecute az webapp list-runtimes.

Desde Azure CLI   pruebe el comando:
az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name  --runtime "NODE|6.9"

Cuando se haya creado la aplicación web, la CLI de Azure mostrará información  en formato json similar a la del ejemplo siguiente:

{
  "availabilityState": "Normal",
  "clientAffinityEnabled": true,
  "clientCertEnabled": false,
  "cloningInfo": null,
  "containerSize": 0,
  "dailyMemoryTimeQuota": 0,
  "defaultHostName": ".azurewebsites.net",
  "enabled": true,
  < JSON data removed for brevity. >
}

Vaya a la aplicación web recién creada. Reemplace  por el  nombre de su aplicación único.

http://xxxxxxx.azurewebsites.net

Este es el aspecto que debería tener su nueva aplicación web:

Página de la aplicación web vacía

Implementación de un archivo ZIP

En el explorador, vaya a https://xxxx.scm.azurewebsites.net/ZipDeploy.

Cargue el archivo ZIP que creó en Creación de un archivo ZIP de proyecto arrastrándolo al área del explorador de archivos en la página web.

Cuando la implementación está en curso, un icono en la esquina superior derecha muestra el progreso como un porcentaje. La página también muestra mensajes detallados para la operación debajo del área del explorador. Cuando se haya completado, el último mensaje de implementación debe indicar Deployment successful.

Navegación hasta la aplicación

Vaya a la aplicación implementada mediante el explorador web.

http://xxxxx.azurewebsites.net

El código de ejemplo de Node.js se está ejecutando en una aplicación web de Azure App Service.

Aplicación de ejemplo que se ejecuta en Azure

¡Enhorabuena! Ha implementado la primera aplicación de Node.js en App Service.

Actualización del código y nueva implementación

Con un editor de texto, abra el archivo index.js en la aplicación de Node.js puede realizar un pequeño cambio en el texto en la llamada a response.end:

response.end("Hello Azure!");

En la ventana de terminal local, desplácese al directorio raíz de la aplicación y cree un nuevo archivo ZIP para el proyecto actualizado.

# Bash
zip -r myUpdatedAppFiles.zip .

# PowerShell
Compress-Archive -Path * -DestinationPath myUpdatedAppFiles.zip

Implemente este nuevo archivo ZIP en App Service utilizando los mismos pasos que en Cargar el archivo ZIP.

Vuelva a la ventana del explorador que se abrió en el paso Navegación hasta la aplicación y actualice la página.

Aplicación de ejemplo actualizada que se ejecuta en Azure

Administración de la nueva aplicación web de Azure

Vaya al portarl de  Azure  para administrar la aplicación web que ha creado.

En el menú izquierdo, haga clic en App Services y, a continuación, haga clic en el nombre de la aplicación web de Azure.

Navegación desde el portal a la aplicación web de Azure

Podrá ver la página de información general de la aplicación web. En este caso, puede realizar tareas de administración básicas como examinar, detener, iniciar, reiniciar y eliminar.

Página de App Service en Azure Portal

El menú izquierdo proporciona distintas páginas para configurar la aplicación.

Limpieza de recursos

En los pasos anteriores, creó en Azure en un grupo de recursos. Si prevé que no necesitará estos recursos en el futuro, elimine el grupo de recursos ejecutando el siguiente comando en Cloud Shell:

az group delete --name myResourceGroup

Este comando puede tardar varios segundos en ejecutarse.

Fuente https://docs.microsoft.com/es-es/azure/app-service/app-service-web-get-started-nodejs

Google Cloud IoT Core


En post anteriores hemos visto la potencia de Microsft Azure en torno al Universo del Edge Iot Computing  mostrando de una forma clara como es posible con una Raspeberry Pi 3 o un ESP8266   empezar a utilizar con muy buenos resultados dicha plataforma, pues bien como no podía ser de otra forma Google también ha desarrollado su propia plataforma denominada Google Cloud Iot Core

 

Cloud IoT Core es un servicio completamente administrado que le permite conectar, administrar e ingerir datos de manera fácil y segura desde millones de dispositivos dispersos a nivel mundial. Cloud IoT Core, en combinación con otros servicios en la plataforma Google Cloud IoT, proporciona una solución completa para recopilar, procesar, analizar y visualizar datos de IoT en tiempo real para admitir una mejor eficiencia operativa.

loud IoT Core, que utiliza Cloud Pub / Sub debajo, puede agregar datos de dispositivos dispersos en un solo sistema global que se integra perfectamente con los servicios de análisis de datos de Google Cloud. Por ejemplo puede usarse el  flujo de datos de IoT para análisis avanzados, visualizaciones, aprendizaje automático y más para ayudarlo a mejorar la eficiencia operativa, anticipar problemas y crear modelos completos que describan y optimicen mejor su negocio.

Cloud IoT Core es compatible con los protocolos estándar MQTT y HTTP, por lo que se pueden usar dispositivos existentes con mínimos cambios de firmware.Asimismo Google Cloud IoT Core se ejecuta en la infraestructura sin servidores de Google, que se amplía automáticamente en respuesta a los cambios en tiempo real y se adhiere a los estrictos protocolos de seguridad estándar de la industria que protegen los datos de su empresa

 

En este post  veremos  Google Cloud Platform Console para crear un registro de dispositivos Cloud IoT Core y registrar un dispositivo. También veremos  cómo conectar un dispositivo y publicar eventos de telemetría del dispositivo.

Como siempre antes de empezar se requiere cumplir ciertos requisitos:

  • Inicie sesión en su cuenta de Google. (si aún no tiene uno, regístrese para obtener una cuenta nueva) .
  • En la consola de GCP, vaya a la página Administrar recursos y seleccione o cree un nuevo proyecto.Vaya a la página Administrar recursos
  • Asegúrese de que la facturación esté habilitada para su proyecto.Desde aqui se puede  habilitar la facturación
  • Habilite las API Cloud IoT Core y Cloud Pub / Sub.Habilita las API

Configure Google Cloud SDK y gcloud

  1. Instale Google Cloud SDK . Cloud IoT Core requiere la versión 173.0.0 o superior del SDK.
  2. Ejecute el siguiente comando para actualizar la CLI de gcloud que se incluye en el SDK:
    gcloud components update
    

    Si está utilizando una máquina virtual de Compute Engine con la instalación predeterminada de gcloud, no podrá actualizar los componentes. Para habilitar Cloud IoT Core en una máquina virtual de Compute Engine, reinstale gcloud ejecutando los siguientes comandos:

    sudo apt-get remove google-cloud-sdk
        curl https://sdk.cloud.google.com | bash
        exec -l $SHELL
        gcloud init
    

Para obtener más detalles, consulte la documentación de referencia de los comandos de gcloud iot .

Introducción al Cloud IoT Core

Registro del dispositivo

Para que un dispositivo se conecte, primero debe registrarse con Cloud IoT Core. El registro consiste en agregar un dispositivo a una colección (el registro) y definir algunas propiedades esenciales. Puede registrar un dispositivo con Cloud Platform Console, comandos gcloud o la API REST-style.  En conjunto, las funciones que le permiten registrar, monitorear y configurar dispositivos se llaman administrador de dispositivos.

Protocolos (MQTT y HTTP)

Cloud IoT Core admite dos protocolos para la conexión y comunicación del dispositivo: MQTT y HTTP. Los dispositivos se comunican con Cloud IoT Core a través de un “puente”, ya sea el puente MQTT o el puente HTTP. Cuando crea un registro de dispositivo, selecciona protocolos para habilitar: MQTT, HTTP o ambos.

MQTT es un protocolo de publicación / suscripción estándar que los dispositivos integrados usan y soportan con frecuencia, y también es común en las interacciones máquina a máquina.

HTTP es un protocolo “sin conexión”: con el puente HTTP, los dispositivos no mantienen una conexión con el Núcleo Cloud IoT. En cambio, envían solicitudes y reciben respuestas.

Autenticación de dispositivo

Cloud IoT Core utiliza autenticación de clave pública (o asimétrica):

  • El dispositivo usa una clave privada para firmar un JSON Web Token (JWT) . El token se pasa al Cloud IoT Core como prueba de la identidad del dispositivo.
  • El servicio utiliza la clave pública del dispositivo (cargada antes de que se envíe el JWT) para verificar la identidad del dispositivo.

Control del dispositivo desde la nube

Con Cloud IoT Core, puede controlar un dispositivo modificando su configuración. Una configuración de dispositivo es una acumulación arbitraria de datos definidos por el usuario que pueden estructurarse o no. Si sus dispositivos usan MQTT, las configuraciones se propagan automáticamente a ellos. Si sus dispositivos se conectan a través de HTTP, deben solicitar configuraciones explícitamente.

Configurando dispositivos

Con Cloud IoT Core, puede controlar un dispositivo modificando su configuración. La configuración de un dispositivo es una burbuja de datos arbitraria y definida por el usuario. Después de que se haya aplicado una configuración a un dispositivo, el dispositivo puede informar su estado a Cloud IoT Core.

La configuración del dispositivo funciona de manera diferente en los puentes MQTT y HTTP. Ver abajo para más detalles.

Límites

Las actualizaciones de configuración están limitadas a 1 actualización por segundo, por dispositivo. Sin embargo, para obtener los mejores resultados, la configuración del dispositivo debe actualizarse con mucha menos frecuencia, como máximo, una vez cada 10 segundos.

La tasa de actualización se calcula como el tiempo entre el acuse de recibo más reciente del servidor y la próxima solicitud de actualización.

Diferencias de protocolo

MQTT

Los dispositivos que usan MQTT pueden suscribirse a un tema especial de MQTT para actualizaciones de configuración:

 / devices / {device-id} / config

Cuando un dispositivo se suscribe al tema de configuración, el puente MQTT responde con un mensaje SUBACK MQTT, que contiene la QoS concedida para el tema de configuración (0 o 1) o 128 si se produce un error.

Después de suscribirse inicialmente, el dispositivo recibe la configuración más reciente en la carga útil de un mensaje y recibirá actualizaciones de configuración adicionales a medida que se envíen a Cloud IoT Core.

Las siguientes muestras ilustran cómo recuperar las actualizaciones de configuración en un dispositivo a través de MQTT usando Python:

def get_client(
project_id
, cloud_region, registry_id, device_id, private_key_file,
algorithm
, ca_certs, mqtt_bridge_hostname, mqtt_bridge_port):
“””Create our MQTT client. The client_id is a unique string that identifies
this device. For Google Cloud IoT Core, it must be in the format below.”””

client
= mqtt.Client(
client_id
=(‘projects/{}/locations/{}/registries/{}/devices/{}’
.format(
project_id
,
cloud_region
,
registry_id
,
device_id
)))

# With Google Cloud IoT Core, the username field is ignored, and the
# password field is used to transmit a JWT to authorize the device.
client
.username_pw_set(
username
=‘unused’,
password
=create_jwt(
project_id
, private_key_file, algorithm))

# Enable SSL/TLS support.
client
.tls_set(ca_certs=ca_certs, tls_version=ssl.PROTOCOL_TLSv1_2)

# Register message callbacks. https://eclipse.org/paho/clients/python/docs/
# describes additional callbacks that Paho supports. In this example, the
# callbacks just print to standard out.
client
.on_connect = on_connect
client
.on_publish = on_publish
client
.on_disconnect = on_disconnect
client
.on_message = on_message

# Connect to the Google MQTT bridge.
client
.connect(mqtt_bridge_hostname, mqtt_bridge_port)

    # This is the topic that the device will receive configuration updates on.
    mqtt_config_topic = ‘/devices/{}/config’.format(device_id)

    # Subscribe to the config topic.
    client.subscribe(mqtt_config_topic, qos=1)

return client

HTTP

Si está utilizando el puente HTTP , los dispositivos deben solicitar explícitamente nuevas configuraciones .

El  siguiente ejemplo en python ilustran cómo recuperar las actualizaciones de configuración en un dispositivo a través de HTTP:

def get_config(
version
, message_type, base_url, project_id, cloud_region, registry_id,
device_id
, jwt_token):
headers
= {
‘authorization’: ‘Bearer {}’.format(jwt_token),
‘content-type’: ‘application/json’,
‘cache-control’: ‘no-cache’
}

basepath = ‘{}/projects/{}/locations/{}/registries/{}/devices/{}/’
template
= basepath + ‘config?local_version={}’
config_url
= template.format(
base_url
, project_id, cloud_region, registry_id, device_id, version)

resp = requests.get(config_url, headers=headers)

if (resp.status_code != 200):
print(‘Error getting config: {}, retrying’.format(resp.status_code))
raise AssertionError(‘Not OK response: {}’.format(resp.status_code))

return resp

Actualización de la configuración del dispositivo

Puede actualizar la configuración del dispositivo utilizando Cloud Platform Console, Cloud IoT Core API o gcloud.

Por Consola

  1. Vaya a la página Registros del dispositivo en la Consola GCP.
  2. Haga clic en el ID del registro que contiene el dispositivo.
  3. En la página de detalles del registro , haga clic en el ID del dispositivo cuya configuración desea actualizar.
  4. En la parte superior de la página, haz clic en Actualizar config.
  5. Seleccione un formato para la configuración y pegue los datos en el cuadro Configuración .
  6. Haga clic en Enviar al dispositivo .

Usando gcloud

Para actualizar la configuración de un dispositivo, ejecute el gcloud iot devices configs update :

 gcloud iot dispositivos configs update \
   (--config-data = CONFIG_DATA | --config-file = CONFIG_FILE ) \
   --device = DEVICE_ID \
   --registry = REGISY_ID \
   --region = REGION \
   [--version-to-update = VERSION_TO_UPDATE ]

Los dispositivos se actualizarán de acuerdo con el protocolo que usan .

Usando Cloud iot Core API

Para actualizar la configuración del dispositivo a través de la API, use el método Device modifyCloudToDeviceConfig , especificando la nueva configuración en el campo config . También puede especificar una configuración al crear un dispositivo y luego usar modifyCloudToDeviceConfig para cambiarla más tarde.

El siguiente ejemplo en Pythoon  ilustran cómo actualizar la configuración de un dispositivo:

def set_config(
service_account_json
, project_id, cloud_region, registry_id, device_id,
version
, config):
print(‘Set device configuration’)
client
= get_client(service_account_json)
device_path
= ‘projects/{}/locations/{}/registries/{}/devices/{}’.format(
project_id
, cloud_region, registry_id, device_id)

config_body = {
‘versionToUpdate’: version,
‘binaryData’: base64.urlsafe_b64encode(
config
.encode(‘utf-8’)).decode(‘ascii’)
}

return client.projects(
).locations().registries(
).devices().modifyCloudToDeviceConfig(
name
=device_path, body=config_body).execute()

Revisando la configuración del dispositivo

Por ultimo  tambien uede revisar las últimas 10 versiones de la configuración de un dispositivo mediante Cloud Platform Console, la API o gcloud.

Consola

  1. Vaya a la página Registros del dispositivo en la Consola GCP.
  2. Haga clic en el ID del registro que contiene el dispositivo cuya configuración desea actualizar.
  3. En la página de detalles del registro , haga clic en el ID del dispositivo cuya configuración desea actualizar.
  4. Haga clic en Configuración e historial de estado.

Utilice las casillas de verificación para controlar si se muestra el historial de configuración o el historial de estado, o ambos. Haga clic en Comparar para ver si la configuración y el estado coinciden como espera.

gcloud

Para obtener configuraciones recientes, ejecute la gcloud iot devices configs list y describe comandos:

 Configuración de dispositivos de gcloud iot list DEVICE_ID \
   --registry = REGISY_ID \
   --region = REGION \
   [--filter = EXPRESIÓN ]
   [--limit = LIMIT ]
   [--sort-by = [ CAMPO , ...]]
 Las configuraciones de dispositivos gcloud iot describen DEVICE_ID \
   --registry = REGISY_ID \
   --region = REGION

Fuentes:   https://cloud.google.com/iot/docs/how-tos/getting-startedhttps://cloud.google.com/iot/docs/how-tos/config/configuring-devices

Monitorizacion remota de IoT con notificaciones desde Azure en conexión de su hub de IoT


Azure Logic Apps proporciona una forma de automatizar procesos como una serie de pasos. Una aplicación lógica se puede conectar a través de varios servicios y protocolos. Comienza con un activador como ‘Cuando se agrega una cuenta’, y luego una combinación de acciones, una como ‘enviar una notificación de inserción’. Esta característica hace que Logic Apps sea una solución de IoT perfecta para la monitorización de dispositivos IoT, como por ejemplo para alerta ante anomalías, entre otros escenarios de uso.  

 

Resumidamente   estas son las cosas  que necesitaremos  hacer par lograr nuestro objetivo:

  • Crear un espacio de nombres del autobús de servicio y añadir una cola a él.
  • Añadir un punto final y una regla de enrutamiento a su hub de IoT.
  • Crear, configurar y probar una aplicación de la lógica.

Necesitaremos para ello como siempre tener configurado  un dispositivo de Iot enviando mensajes a la nube de Azure de Iot Hub.

 

Crear espacio de nombres de Servicio del Bus y añadirle una cola

Crear un espacio de nombres del bus de servicio

  1. En el portal de Azure, haga clic en crear un recurso >Enterprise Integration(Integración empresarial )> Service Bus.
  2. Proporcione la siguiente información:Nombre: el nombre del bus de servicios.Pricing tier  déjelo en Standard .
  3. En suscripción dejelo  en Evaluación gratuitaGrupo de recursos: utilizar el mismo grupo de recursos que utiliza el hub de IoT.

    Ubicación: utilizar la misma ubicación que utiliza el hub de IoT.

  4. Pinchar Anclar al panel
  5. Haga clic en crear.

Añadir una cola de autobús de servicio

  1. Abrir el espacio de nombres del Bus de servicio y haga clic en + Quue(cola.)
  2. Introduzca un nombre para la cola y haga clic en crear.
  3. Abrir la cola del Bus de servicio(entities-Queues-el nombre del la nueva cola )   y haga clic en CONFIGURACION  –Shared access policies (directivas de acceso compartido) > + añadir.
  4. Introduzca un nombre para la política de controlar administrar y haga clic en create (crear).

Añadir un punto final y una regla de enrutamiento a su hub de IoT

Añadir un punto final

  • Abrir su centro de IoT, haga clic en MensajeriaPuntos de conexión > + Añadir.
  • Introduzca la siguiente información:                                                                                 Nombre: el nombre del extremo.Tipo de punto final: seleccione Cola de autobús servicio.Espacio de nombres del servicio de bús: seleccionar el espacio de nombres que creó.

    Cola de Service Bus: seleccione la cola creada.

  • Haga clic en Aceptar.

Add an endpoint to your IoT hub in the Azure portal

Agregar una regla de enrutamiento

  1. En su centro de Internet, haga clic en  MENSAJERIA  – rutas > + añadir.
  2. Introduzca la siguiente información:Nombre: el nombre de la regla de enrutamiento.Fuente de datos: seleccionar DeviceMessages.Punto final: seleccione el punto final de ha creado.

    Cadena de consulta: entrar.temperatureAlert = "true"

  3. Haga clic en Guardar.

Add a routing rule in the Azure portal

Crear y configurar una aplicación de lógica

Crear una aplicación de lógica

  1. En el portal de Azure, haga clic en crear un recurso >Enterprise Integration( Integración empresarial )> Lógic app.
  2. Introduzca la siguiente información:Nombre: el nombre de la aplicación de la lógica.Grupo de recursos: utilizar el mismo grupo de recursos que utiliza el hub de IoT.Ubicación: utilizar la misma ubicación que utiliza el hub de IoT.
  3. Haga clic en crear.

Configurar la aplicación de la lógica

  1. Abra la lógica de la aplicación que se abre en el diseñador de aplicaciones de la lógica.
  2. En el diseñador de aplicaciones de lógica, haga clic en BlanK Logic App
  3. Haga clic en Service Bus.
  4. Haga clic en el Servicio de Bus cuando uno o varios mensajes en una cola (Autocompletar).
  5. Crear una conexión de bus de servicio.
    1. Introduzca un nombre de conexión.
    2. Haga clic en el espacio de nombres de servicio bus > la política de autobús servicio > crear.
    3. Haga clic en continuar después de la conexión de bus de servicio.
    4. Seleccione la cola que creó e introduzca para recuento de mensajes máximo175
    5. Haga clic en “Guardar” el botón para guardar los cambios.
  6. Crear una conexión de servicio de SMTP.
    1. Haga clic en nuevo paso > Agregar una acción.
    2. Tipo, haga clic en el servicio SMTP en el resultado de la búsqueda y haga clic en SMTP – envíe correo electrónico.SMTP
    3. Introduzca la información de SMTP del buzón y haga clic en crear.Obtenga la información de SMTP para Hotmail/Outlook.com, Gmaily Yahoo Mail. ( Nota :Su proveedor de servicios de correo electrónico necesitará verificar la identidad de remitente para asegurarse de que eres tú quien envía el correo electrónico9.
    4. Introduzca su dirección de correo electrónico para de y ay para asunto y el cuerpo.High temperature detected
    5. Haga clic en Guardar.

 

La aplicación de la lógica estará   en orden de funcionamiento en cuanto se guarde así que ya podemos probar su funcionalidad  así que :

  1. Inicie la aplicación cliente que implementa en el dispositivo en ESP8266 conectar a Azure IoT.
  2. Aumentar la temperatura del ambiente alrededor del Sensor por encima de 30 C.(por ejemplo, encendiendo una vela cerca del sensor ).
  3. Usted debe recibir una notificación por correo electrónico enviada por la aplicación .

     

Hemos visto lo relativamente sencillo que es  crear  una aplicación lógica que conecta el hub de IoT y buzón para monitorizar  temperatura y enviar notificaciones.

Fuente https://docs.microsoft.com/en-gb/azure/iot-hub/iot-hub-monitoring-notifications-with-azure-logic-apps

Como usar la extensión de IoT para Azure CLI 2.0 para gestionar dispositivos de Azure IoT Hub


La Extensión de la IoT para Azure CLI 2.0 es una nueva extensión para IoT en código  abierto que añade a las capacidades de Azure CLI 2.0, la cual como vamos a ver  incluye comandos para interactuar con el administrador de recursos Azure como por ejemplo, puede utilizar Azure CLI 2.0 para crear una VM de Azure o un IoT Hub.

Una extensión CLI permite un servicio de Azure incrementar el Azure CLI dando  acceso a funciones adicionales específicas de servicio como vamos a ver.

La extensión de IoT da IoT permite a los  desarrolladores y aficionados acceso desde línea de comandos a todos los  IoT Hub, IoT Edge, y las capacidades  de  IoT Hub Device Provisioning Service

Algunos ejemplos de posibilidades que ofrece esta extension:

Opción de manejo Tarea
Métodos directos Hacer un dispositivo actuar como arrancar o parar el envío de mensajes o reiniciar el dispositivo.
Propiedades de dos deseadas Poner un dispositivo en algunos estados, tales como poner establecer un LED a verde o establecer el intervalo de enviar telemetría cada 30 minutos.
Doble registrados propiedades Obtener el estado que informó  un dispositivo. Por ejemplo, el dispositivo informa que el LED parpadea ahora.
Etiquetas de doble funcion Almacenar metadatos específicos del dispositivo en la nube. Por ejemplo, la situación de la implementación de una máquina expendedora.
Consultas de doble dispositivo Consulta todos los gemelos de dispositivo para recuperarlas condiciones arbitrarias, tales como identificar los dispositivos que están disponibles para su uso.

Device twins (Gemelos de dispositivo) son documentos JSON que almacenan información de estado del dispositivo (metadatos, configuraciones y condiciones). Eje de IoT persiste a una doble dispositivo de cada dispositivo que se conecta a él.

Extensión de IoT para Azure CLI 2.0

Vamos   a ver  usar  la extensión de IoT para Azure CLI 2.0 con varias opciones de manejo en nuestra máquina de desarrollo ejecutando Azure CLI 2.0 y la extensión de IoT para Azure CLI 2.0 con varias opciones de gestión.

Para poder usar esta extensión necesitaremos  haber configurado el dispositivo completo  de Iot  cubriendo los siguientes requisitos:

    • Una suscripción activa de Azure.
    • Un centro de Azure IoT bajo su suscripción.
    • Una aplicación de cliente que envíe mensajes a su hub de IoT de Azure.

Debemos asegurarnos de que el dispositivo se está ejecutando con la aplicación de cliente .Por ejemplo un método muy cómodo de comprobarlo es usando la herramienta  Microsoft Azure Storage siempre que hayamos vinculado nuestro  Hub de Iot a Azure Storage (como vimos es este post) ,pues desde esta herramienta podremos ver fácilmente el contenido de los mensajes enviados por el dispositivo

azurestorage

Microsoft Azure IoT Extension for Azure CLI 2.0  proporciona nuevos y emocionantes comandos y capacidades de IoT centrados en los servicios IoT Hub y IoT Device Provisioning. La funcionalidad se proporciona como un paquete de extensión CLI de Azure para una integración perfecta con la funcionalidad de línea de comandos existente.

La extensión aumenta el Azure CLI IoT de Azure agregando o modificando el espacio de comando existente. La extensión incluye capacidades en las siguientes categorías:

  • IoT Hub
  • IoT Edge
  • IoT Device Provisioning Service (DPS)

Instalación  

Paso1; Instalación de Python.

Como requisito previo se necesita instalar Python en el equipo de desarrollo. Podemos instalar  Python 2.7 x o Python 3.x. Python 3.65 es la ultima version disponible y que podemos instalar. Simplemente ir a   https://www.python.org/downloads/  pinchar sobre enlace para descargar la ultima version  y después ejecutar el instalable para lanzar la instalación.

Paso 3:Instalar Azure CLI 2.0 

Tambien necesitamos instalar el cliente de Azure CLI 2.0  para  agregar despuesla extensión IoT. Podemos instalar  directamente con un  instalador desde  Windows  el cliente CLI , para ello descargaremos MSI y luego lo  instalaremos en nuestro equipo de desarrollo

azure cli.PNG

Como mínimo, la versión Azure CLI 2.0 debe ser 2.0.24 o superior. Esta versión admite los comandos de extensión az e introduce el marco de comandos knack, es por eso que podemos utilizar para comprobarlo el comando desde linea de comandos (cmd): 

 az --version .

Por ejemplo este el resultado de la ejecución de este comando con la ultima version instalada (2.0.31) del cliente de Azure:

C:\Users\Carlos>az –version
azure-cli (2.0.31)
acr (2.0.23)
acs (2.0.31)
advisor (0.5.1)
appservice (0.1.31)
backup (1.1.1)
batch (3.2.0)
batchai (0.2.0)
billing (0.1.8)
cdn (0.0.14)
cloud (2.0.13)
cognitiveservices (0.1.12)
command-modules-nspkg (2.0.1)
configure (2.0.15)
consumption (0.3.0)
container (0.1.22)
core (2.0.31)
cosmosdb (0.1.20)
dla (0.0.19)
dls (0.0.21)
eventgrid (0.1.12)
eventhubs (0.1.2)
extension (0.0.12)
feedback (2.1.1)
find (0.2.9)
interactive (0.3.19)
iot (0.1.19)
keyvault (2.0.21)
lab (0.0.21)
monitor (0.1.5)
network (2.0.28)
nspkg (3.0.2)
profile (2.0.22)
rdbms (0.2.1)
redis (0.2.12)
reservations (0.1.2)
resource (2.0.27)
role (2.0.22)
servicebus (0.1.2)
servicefabric (0.0.12)
sql (2.0.25)
storage (2.0.31)
vm (2.0.30)
Python location ‘C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\python.exe’
Extensions directory ‘C:\Users\Carlos\.azure\cliextensions’
Python (Windows) 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 17:54:52) [MSC v.1900 32 bit (Intel)]
Legal docs and information: aka.ms/AzureCliLegal

También puede seguir las instrucciones de instalación en Microsoft Docs configurar Azure CLI 2.0 en su entorno.

Paso 4: Instalación  de la extensión de cliente de Azureo pare IoTI

Finalmente también  tenemos que instalar la extensión de la IoT ahora que tiene una extensión de  cliente de Azure compatible instalado.

Cuando se instala una extensión, cualquier dependencia adicional de Python requerida se descarga  y se instala automáticamente.
Hay múltiples opciones para la instalación. Después de instalar la extensión, puede usar una lista de extensiones az para validar las extensiones instaladas actualmente o la extensión az show – nombre azure-cli-iot-ext para ver detalles sobre la extensión IoT.
En todos los casos, asegúrese de que la extensión IoT sea la versión 0.3.2 o superior.

La extensión está diseñada para ser plug-and-play con Azure CLI. Incluso si tiene Azure CLI instalado, asegúrese de que esté actualizado.La forma más sencilla es ejecutar el siguiente comando.

az extension add --name azure-cli-iot-ext

Puede usar el comando  az list list-available para ver todas las extensiones disponibles en el índice y es posible tambien actualizar una extensión en su lugar utilizando la extensión az update –name, Asimismo El IoT extensión archivo Léame describe varias maneras de instalar la extensión.

Paso 5:Inicie sesión  en Azure

Inicie sesión su cuenta Azure ejecutando el siguiente comando:

az login

Ahora  vaya a la  pagina   https://microsoft.com/devicelogin  e    introduzca el código que devuelve el comando    en  la  pagina anterior   para validarse.

 

inicioazure.PNG

Una vez aceptada en la página nos pide nuestro login de la cuenta de Azure  y tras aceptarse  ya  no es necesario continuar en el navegador   y a partir de aqui ya estan disponible los comandos  posibles de Azure  CLI

login.PNG

Una  validado  nos dará un mensaje de finalizacioó

fin.PNG

 

Ahora desde linea de comando tenemos muchas posibilidades :

Hub

Command group: az iot hub

az iot hub query

az iot hub generate-sas-token
az iot hub show-connection-string

az iot hub apply-configuration

az iot hub invoke-device-method
az iot hub invoke-module-method

Hub Device Identity

Command group: az iot hub device-identity

az iot hub device-identity create
az iot hub device-identity show
az iot hub device-identity list
az iot hub device-identity update
az iot hub device-identity delete

az iot hub device-identity show-connection-string

az iot hub device-identity import
az iot hub device-identity export

Hub Device Twin

Command group: az iot hub device-twin

az iot hub device-twin show
az iot hub device-twin replace
az iot hub device-twin update

Hub Module Identity

Command group: az iot hub module-identity

az iot hub module-identity create
az iot hub module-identity show
az iot hub module-identity list
az iot hub module-identity update
az iot hub module-identity delete

az iot hub module-identity show-connection-string

Hub Module Twin

Command group: az iot hub module-twin

az iot hub module-twin show
az iot hub module-twin replace
az iot hub module-twin update

Edge Deployment

Command group: az iot edge deployment

az iot edge deployment create
az iot edge deployment show
az iot edge deployment list
az iot edge deployment update
az iot edge deployment delete

Device

Command group: az iot device

az iot device send-d2c-message
az iot device simulate
az iot device upload-file

Device c2d-message

Command group: az iot device c2d-message

az iot device c2d-message receive

az iot device c2d-message complete
az iot device c2d-message abandon
az iot device c2d-message reject

DPS Enrollment

Command group: az iot dps enrollment

az iot dps enrollment create
az iot dps enrollment show
az iot dps enrollment list
az iot dps enrollment update
az iot dps enrollment delete

DPS Enrollment Group

Command group: az iot dps enrollment-group

az iot dps enrollment-group create
az iot dps enrollment-group show
az iot dps enrollment-group list
az iot dps enrollment-group update
az iot dps enrollment-group delete

DPS Registration

Command group: az iot dps registration

az iot dps registration show
az iot dps registration list
az iot dps registration delete

 

Importante:

Añada –help o -h a un grupo de comandos o comando para obtener más información.
Para grupos de comandos, esto revelará los comandos del grupo objetivo
Para los comandos, esto revelará información sobre los parámetros y puede incluir ejemplos de uso.

 

Algunos ejemplos de uso prácticos:

  • Metodos directos :  Se puede invocar directamente desde linea de comandos:                az iot hub invoke-device-method –device-id –hub-name –method-name –method-payload
  • Propiedades del dispositivo gemelo deseado: Por ejemplo se puede establecer una  propiedad de  intervalo = 3000 ejecutando el siguiente comando: az iot hub device-twin update -n -d –set properties.desired.interval = 3000                                  Esta propiedad  puede ser leída tamnbien  desde  su dispositivo.
  • Propiedades del doble dispositivo registrados : se pueden obtener las propiedades divulgadas del dispositivo ejecutando el siguiente comando: az iot hub device-twin update -n -d –set properties.reported.interval = 3000 .  Una de las propiedades es $metadata. $lastUpdated que muestra la última vez que este dispositivo envía o recibe un mensaje.
  • Etiquetas de doble dispositivo: Se pueden mostrar las etiquetas y propiedades del dispositivo ejecutando el siguiente comando: az iot hub device-twin show –hub-name –device-id                                                                                                            Agregar una función de campo = temperatura & humedad al dispositivo ejecutando el siguiente comando:az iot hub device-twin update –hub-name –device-id –set tags = ‘{“role”:”temperature&humidity”}}’
  • Consultas de doble dispositivo :Consulta de dispositivos con una etiqueta de papel = ‘temperatura & humedad’ ejecutando el siguiente comando:az iot hub query –hub-name –query-command “SELECT * FROM devices WHERE tags.role = ‘temperature&humidity’
  • Consulta todos los dispositivos excepto los que tienen una etiqueta de papel = ‘temperatura & humedad’ ejecutando el siguiente comando:az iot hub query –hub-name –query-command “SELECT * FROM devices WHERE tags.role != ‘temperature&humidity'”

 

 

 

Hemos visto por tanto cómo controlar mensajes de dispositivo a nube y enviar mensajes de dispositivo de nube entre su dispositivo de IoT y Azure IoT Hub.

Fuente https://docs.microsoft.com/en-gb/azure/iot-hub/iot-hub-device-management-iot-extension-azure-cli-2-0