Necesito reflexión, visión y documentación sobre mi problema.
Escribí un script de python para calcular algo de una API y exportar el resultado en un archivo CSV. Luego, uso un script de JavaScript para mostrar los datos de este archivo CSV en un sitio web de construcción. Necesito tener los datos más recientes disponibles para mi sitio web, así que abrí una instancia de VM en Google Cloud Platform (Google Compute Engine) y configuré un trabajo de Crontab para ejecutar automáticamente mi secuencia de comandos de python. El cálculo ahora se ejecuta todos los días y el resultado se exporta al archivo CSV, pero se almacena en esta instancia de VM.
Este es mi objetivo: ¿Cómo puedo obtener mi archivo CSV en mi sitio web? El CSV siempre está en la máquina virtual y no sé cómo comunicarme con mi script de JavaScript a la VM. ¿Tengo que comunicarme directamente con la máquina virtual? ¿Tengo que pasar por otro paso antes (servidor, API, etc.)?
No puedo encontrar una solución específica para mi problema en Internet.
Gracias por adelantado.
Le sugiero un enfoque diferente al uso de una VM para calcular y almacenar su CSV.
La idea sería usar una función Python Cloud en su lugar, que será ejecutada por Cloud Scheduler y Pub/Sub.
Esta función generará su archivo CSV, que se almacenará en Cloud Storage. Aquí puede encontrar un ejemplo de cómo cargar un objeto en Cloud Storage usando Python.
Luego, debe darle a su sitio web la capacidad de acceder a ese archivo CSV en Cloud Storage cuando sea necesario. Como lo indica @guillaumeblaquiere, la forma exacta dependerá de dónde esté alojado su sitio web: en especial, restringirá los mecanismos de autenticación que necesita usar para descargar sus datos. La documentación en GCP proporciona varios ejemplos sobre este asunto.
La documentación de Google Cloud proporciona un ejemplo de la arquitectura propuesta.
Encontré un artículo que, de cierta manera, también describe la configuración que sugerí.
Por favor, considere revisar los costos de los diferentes productos mencionados.
¿Cómo puedo obtener mi archivo CSV en mi sitio web?
Al hacer que su secuencia de comandos de python genere el CSV en la carpeta raíz de su sitio web.
Ejemplo, si está ejecutando apache, es probable que su carpeta raíz esté en algún lugar de /var/www/html/...
Si el script se genera desde otra máquina (no la que tiene su sitio web), entonces lo alojaré y haré que el servidor que aloja su sitio web lo busque a través de cronjob.
Básicamente: si su CSV se genera desde la misma máquina que el sitio web que lo usará, simplemente envíelo a la carpeta del sitio web
Si su CSV se genera desde otra máquina, hágalo públicamente accesible y haga que el cronjob de la máquina de su sitio web busque ese CSV unos minutos después de que se genere.