Tengo un repositorio de Github que tiene páginas habilitadas. En Pages, tengo un index.js que contiene una función. La función se ejecuta automáticamente cuando llega a un punto final HTTP. La aplicación es un widget, por lo que no es como si quisiera alojar un sitio web completo. Solo quiero poder llegar a un punto final desde una etiqueta <script> y ejecutar mi código en un sitio de terceros.
El archivo index.js se crea al crear mi aplicación React con Parcel y compilarlo en un solo archivo js. El archivo en sí ejecuta un IIFE: lo crea Parcel después de compilarlo y se parece a esto:
!function(){function e(e,t,n,r){Object.defineProperty... // hundreds of lines minified into one humongus line of code ...{domElement:e})}),e)})),Er()}();Como referencia, lo creé siguiendo este tutorial , y puedes ver el script del autor en su repositorio de github aquí .
Pero las PAges de Github son públicas, así que quería mover mi script a GCP. Pensé que una simple función de la nube funcionaría, pero aparece el temido error could not handle the request . Para mi aplicación Cloud Functions probé lo siguiente:
exports.helloWorld = (req, res) => { const widget = // copy in all of the above code res.status(200).send(widget); }Esto arrojó el error anterior.
¿Hay una forma mejor/diferente de alojar un único script de función como este que se ejecuta en una llamada http?
Por lo que entiendo, simplemente está tratando de alojar un archivo javascript en algún lugar donde otros proyectos puedan usarlo. Si está configurado en la nube de Google, simplemente puede cargar su archivo javascript en un cubo público . A menos que desee realizar alguna lógica dinámica cada vez que se solicite el archivo, no necesita nada más complicado que un host estático.
Mencionas que quieres usar GCP porque las páginas de Github son públicas, pero cualquier archivo que alojes sería público a menos que quieras configurar reglas para que solo dominios específicos puedan solicitar el archivo.