LabVIEW AWS Toolkit

 

Paleta de Funciones de NI Cloud Toolkit for AWS

LabVIEW es uno de nuestros lenguajes favoritos y AWS nuestra plataforma de Nube preferida. ¿A que estaría bien utilizarlos conjuntamente? Hay un toolkit para ello, o sea que vamos a animarnos a usarlo.

Seguramente será relativamente fácil comunicarnos con las APIs de los servicios de AWS directamente, pero es fantástico contar con un toolkit que hace el trabajo por nuestra parte. Se llama LabVIEW Cloud Toolkit for AWS by NI y lo puedes instalar desde el repositorio VIPM. Tiene un conjunto de ejemplos para cuatro servicios, pero podríamos adaptarlo a otros servicios usando las funciones básicas subyacientes.

Como en posts anteriores, vamos a hacer algunos ejercicios con el toolkit. Para ello, necesitas acceso programático a AWS. Si no tienes un Access Key y un Secret Access Key, pide uno a tu profesor (si eres estudiante de nuestras asignaturas) o crea una cuenta gratuita en AWS.

LabVIEW AWS Toolkit: ejemplo para obtener todos los buckets S3 de la cuenta  
 
Hemos cambiado el tipo de formato de los controles string a "password" antes de capturar la imagen de ejemplo, pero puedes comprobar que eso no es suficiente para resolver los problemas de privacidad, porque cualquiera podría revertir ese cambio si compartimos el VI tal cual. Hablaremos de eso un poquito más adelante.
 
¿Entonces, cuál será nuestro desafío para ti? Simplemente, pon en marcha los ejemplos con tus propios keys y comprueba que funcionan. Puedes hacer las comprobaciones desde LabVIEW o desde la AWS Management Console. Es facil crear un bucket (algo parecido a una carpeta) en S3 y subir archivos ahi. También es fácil crear una cola SQS (una especie de buzón de correo) y mandar y recibir mensajes a través de ella. También es fácil mandar emails automáticos usando SNS (por favor, no mandes SMS, que también se puede hacer, pero nos cobran por cada mensaje enviado). No es tan fácil probar la interfaz IoT, porque hace falta un dispositivo llamado AWS IoT button para ello.

Solo para hacerte a la idea de cómo de simple podría ser tu programa, puedes ver el diagrama de bloques de algunos de los ejemplos, como el siguiente:
 
 
Diagrama de bloques del ejemplo de cómo enviar un email usando AWS SNS

Como ya hemos mencionado, es difícil mantener secretos en LabVIEW. Si quieres compartir tus ideas con tus colegas y mandarles tus VIs con tus keys incluidos (tendrías que hacer"Make Current Value Default" para que no se pierdan al enviarlos), cualquiera podría acceder a otros servicios de tu cuenta AWS programáticamente. Esto es tan peligroso que tienes que intentar ocultarlo lo mejor posible, pero si tienes varios VIs y les borrar los keys, luego hay que ponerlos a mano todos y esto es muy engorroso. También podrías crear una aplicación con los keys convertidos en constantes, pero entonces tus colegas no verían todo el trabajo que has hecho en el diagrama. ¿Hay alguna otra manera?

Bueno, no se puede hacer mucho para ocultar los secretos dentro del VI, pero si podemos llevarlos fuera y leerlos desde un archivo de texto. En ese caso, les explicaríamos a nuestros colegas cómo poner sus keys en ese archivo de texto. Hemos creado un subVI que hace exactamente eso, para que lo puedas cablear fácilmente en tu diagrama:

Cómo llamar al subVI get AWS credentials desde tus VIs

Y ahora veamos el diagrama de bloques del subVI. La figura es, además, una snippet, por lo que se puede arrastrar a un VI en blanco y funciona.

VI snippet de "get AWS credentials.vi"

El archivo credentials.txt tendría que tener esta pinta:

AKIxxxxxxxxxxxMD;j2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxd9

esto es,

tuAccessKey;tuSecretAccessKey

¡Ya está!¡Dále duro! Y disfruta con los ejemplos de LabVIEW y AWS.