Como Ejecutar Python en servidores Cloud de Velneo

Buenas

Hace tiempo que intentaba conectar Python con Velneo para una tarea, leí un blog en el que explicaba como Ejecutar Funciones Remotas desde Python y me surgio la curiosidad que más se podía hacer.

Desconozco si es posible conectarse al cloud de Velneo mediante un cliente SSH (Yo almenos no lo he encontrado), pero si con un Cliente SFTP.

Despues de un par de pruebas, encontré mi mejor recurso para estos casos: Ejecutar Comando del Sistema.

Simplemente como la gran mayoría sabreis, los servidores de Velneo usan Linux, entonces con mi amigo comando, me puse a probar. Creé una solución nueva y estos fueron los pasos:

Cree un Proceso: ON_INIT_CLIENT que contiene lo siguiente:

Ejecutar proceso ( INSTALL_PYTHON@sendinblue_app, 3º plano: Servidor (síncrono), , , )
Libre

El proceso INSTALL_PYTHON contiene:

Ejecutar comando del sistema ( "apt-get install python3.6 -y",  )

Despues de eso, volví al proceso INSTALL_PYTHON y cambié lo siguiente:

Ejecutar comando del sistema ( "python3 --version > /Velneo/version.txt",  )

Comprobandolo con un cliente FTP, vi que efectivamente se había instalado y generado el fichero con la versión instalada actual de python (adjunto captura)

Con esto se pueden hacer infinidad de cosas que admite python, decir que al script se pueden pasar parámetros, desde archivos o cadenas JSON que genereís.

1 me gusta

Hola fran_garcia yo hago algo parecido pero con .NET tanto del lado del cliente como del lado de servidor.

En caso que sea Windows alcanza con .NET Framework y si es Linux o Mac tenemos .NET Core.

Del lado del cliente basta con adjuntar a la solución velneo tu .exe (si el cliente es Windows) y sino querés adjuntar nada, podés hacer que en el AUTOEXEC el sistema revise si existe en cacherun la carpeta o el fichero y sino llamar a una URL que los descargue.

En mi caso las soluciones en .NET se terminan transformando en “plugins” para Velneo que me sirven para realizar tareas que no pueden ser resueltas o hechas con Velneo y es la misma solución Velneo quien dispara el ejecutable, le pasa los parametros correspondientes y tambien devuelve un resultado que mi solución Velneo se encarga de levantar, procesar y mostrar al usuario final el resultado.

Hay colegas que adjuntan y ejecutan aplicaciones PHP tambien.

Al final como siempre, más que la herramienta que usemos, lo importante es el programador quien debe “darse mañas” para resolver los problemas que se le presenten.

Un Saludo y gracias por compartir!
Matias de Rimatcom | Desarrollador Certificado 2022

1 me gusta

Nosotros lo hacemos a través de vmodApache.
Un proyecto velneo que está siempre a la escucha de llamadas a través de curl y lanza llamadas a funciones remotas a cualquiera de los servidores que tenemos según sea la petición.
Los parámetros los pasamos formato JSON,

1 me gusta

A mi personalmente, a pesar de que utilizo el modApache, no me gusta mucho, ya que por cada solución gasta 2 enganches del vServer para que funcione correctamente. Además de que tenerlo en el cloud, conlleva un gasto adicional

Hola, Fran. Tengo una pregunta:
¿Serviría esto que haces con phyton para subir un par de ficheros a una FTP desde un proceso en 3P ejecutado desde un servidor en la nube de Velneo?

Es que, consultado con soporte, no se pueden usar comandos cUrl ni enviar por FTP archivos desde los servidores vServer de Velneo.

Y es que tengo todo el proceso completo funcionando en 3P en vServer:

1-Descargar del FTP de un proveedor 6 CSV
2-Importarlos a 1 tabla Velneo
3-Crear dos CSV para prestashop
4-PUM-CATAPUM no puedo subirlos a ningún sitio .

Hasta ahora solo encontré estas soluciones (nada satisfactorias) para completar el 4 paso del proceso:

1-Con un vClient en ejecución que este pendiente de ello.
2-Cambiando mi vServer en la nube de Velneo por un servidor Windows.
3-Dando acceso a Prestashop al sftp de Velneo, comprometiendo la seguridad y confidencialidad del vServer
4-Volverme loco con protocolos TPC

Había pensado instalar un programa en vServer que permita comandos cURL para Linux de Velneo pero no tengo ni p.idea si será posible o causará problemas.

No entiendo que se puedan hacer descargas pero no se puedan hacer subidas.
Entiendo que vServer escuche pero no que esté mudo.
Ni tampoco que exista un comando “Get fichero de Url” pero no un “Put fichero en Url”.

Buenas, si se podría mediantes scripts, automatizar la subida de esos ficheros, al igual que se podria hacer una dll con funciones de ftp. Yo optaria por tener un microservice en Heroku e ir subiendo ahí los ficheros, es gratis y gestionarias la súbida en velneo mediante peticiones http

Gracias, Fran. Como decía, consulté con soporte y me dijeron esto:

Siento informarte que desde el vServer cloud no puedes hacer uso de clientes de FTP ni comandos cURL, necesariamente tienes que hacerlo en 1er plano.

Por eso, como recordé que tú instalaste Phyton, quería saber si en tu opinión sería posible instalar cURL para servidores linux vServer de Velneo cloud. Y si lo ves factible … ¿ crees que supondría un riesgo para la estabilidad o seguridad del servidor ?

Supongo que la dll supondría estar en servidores tipo Windows. Con eso no tengo problema.

El Heroku está bien, no conocía, pero me resisto a meter más elementos en la ecuación. Quería una tarea única programada para que el servidor (en la nube de Velneo) la ejecute a diario llevando a cabo todas las operaciones.

Entonces nos olvidamos de heroku, si el servidor es cloud, puedes instalar cURL sin problema, lo que no me gusta de los servidores de velneo, es que no te dan acceso terminal via ssh, para que puedas autogestionartelo tu, eso no me gusta para nada, lo veo un 0 a la izquierda, por que para este tipo de cosas que quieres hacer te vendría de perlas.

Si lo quieres hacer via automatizado, yo crearía un script .sh para el servidor de velneo, que lleve una sería de parámetros y dentro del script hagas las operaciones, de hecho hay comandos ftp en linux, no te haría falta usar cURL ya que eso es para llamadas a apis.

Por otro lado la dll puede ser compilada tanto para Mac, Windows o Linux, de hecho el lenguaje Go, te permite hacer esto, ya que hacerlo en C, puede ser un tanto peculiar a estas alturas de la película…

1 me gusta