Movatterモバイル変換


[0]ホーム

URL:


Skip to content
DEV Community
Log in Create account

DEV Community

Cover image for Google Cloud functions -> Node.js
Falcon
Falcon

Posted on • Edited on

     

Google Cloud functions -> Node.js

Google Cloud Functions es un entorno de ejecución sin servidor para crear y conectar servicios en la nube. Con Cloud Functions, usted escribe funciones simples y de un solo propósito que se adjuntan a eventos emitidos desde su infraestructura y servicios en la nube. Su función en la nube se activa cuando se dispara un evento que se está viendo. Su código se ejecuta en un entorno totalmente administrado. No es necesario aprovisionar infraestructura ni preocuparse por administrar servidores, en otras palabras usted solo se preocupa por "tirar código como loco".

Google Cloud Functions se pueden escribir en Node.js, Python y Go, y se ejecuta en tiempos de ejecución específicos del idioma. El entorno de ejecución de Cloud Functions varía según el tiempo de ejecución elegido.

Tipos de Cloud functions

Hay 2 distintos tipos de Cloud functions: HTTP y Background functions.

Funciones HTTP

Invoca funciones HTTP a partir de solicitudes HTTP estándar. Estas solicitudes HTTP esperan la respuesta y el manejo de soporte de métodos comunes de solicitud HTTP como GET, PUT, POST, DELETE y OPTIONS. Cuando utiliza Cloud Functions, se le proporciona automáticamente un certificado TLS, por lo que todas las funciones HTTP se pueden invocar a través de una conexión segura.

Funciones Background

Las funciones en background manejan eventos de su infraestructura en la nube, como mensajes en un tema de Cloud Pub / Sub, o cambios en un depósito de Cloud Storage.

Para este post, hablaré sobre funciones HTTP, en otros posts hablaré sobre las de background, así que, manos a la obra.

Requisitos

Antes de comenzar, usted debería asegurarse de haber instalado Node en su máquina, haber creado un Proyecto de Google Cloud y de haber instalado el SDK de Google Cloud.

Para verificar que Node ha sido instalado, usted debería ejecutar los siguientes comandos.

npm -v
node -v

Además, usted podría verificar que Google Cloud SDK ha sido instalado con un comando similar:

gcloud --version

Setting up Google Cloud

Una vez que haya creado su proyecto Google Cloud, podemos habilitar la API de Cloud function en la nube. En la consola de Google Cloud, navegue a APIs & Services y luego en la biblioteca busque la API de Cloud Function. Debería encontrarse en una pantalla similar a la siguiente. Continúa y habilita la API.

O si usted es un fan de la consola como mi persona, podría correr este comando el cual tiene el mismo efecto:

gcloud services enable cloudfunctions.googleapis.com

Si la instalación fue satisfactoria, usted debería ver este API activo usando el siguiente comando:

gcloud services list --available

Alt Text

Creando un Express App

Para inicializar la aplicación, usaremos la herramientanpm para crear elpackage.json y luego crearemos el archivo en el que vamos a escribir nuestro código.

En algún directorio de su preferencia, vamos a crear un folder llamadocloud-functions-nodejs, dentro de este folder corramos el siguiente comandonpm init, este comando nos crea elpackage.json.

El siguiente paso es instalar Express a nuestro proyecto, lo haremos ejecutando el siguiente comando:

npm install express --save

Finalmente, crear un archivo llamadoindex.js, donde escribiremos nuestro código. Ok, ya estamos con lo necesario para comenzar a desarrollar, abrir el archivo anteriormente creado con tu editor favorito y codear lo siguiente:

```const express = require('express');
const app = express();

const PORT = 5555;

app.listen(PORT, () => {
console.log(Server ejecutándose en el puerto ${PORT});
});```

Ejecutar su app por medio del comando:

node index.js

.

Usted debería ser capaz de ver el siguiente mensaje en su consola:

Server ejecutándose en el puerto 5555

.

¡Felicidades! ¡Has creado tu primera aplicación Express! El único problema es que si deseas ejecutar alguna acción enhttp: // localhost: 5555 no veras nada porque no hemos configurado la aplicación para escuchar las solicitudes.

Modifiquemos nuestro index.js con el siguiente código para crear algunos endpoints:

const express = require('express');const app = express();const PORT = 5555;const USERS = [    {        id: 1,        firstName: 'Gerardo',        lastName: 'Lopez'    },    {        id: 2,        firstName: 'Yirian',        lastName: 'Acuña'    }];app.listen(PORT, () => {    console.log(`Server ejecutándose en el puerto ${PORT}`);});app.get('/users', (req, res, next) => {    res.json(USERS);});app.get('/users/:userId', (req, res, next) => {    res.json(USERS.find(user => user.id === parseInt(req.params.userId)));});module.exports = {    app};
Enter fullscreen modeExit fullscreen mode

Vuelva a ejecutar la aplicación y debería poder ir a
http://localhost:5555/users y ver nuestra lista de usuarios.

Nuestro segundo endpoint muestra cómo puede usar los parámetros de ruta en Express, por lo que si va ahttp://localhost:5555/users/2 verá a nuestro usuario "Yirian Acuña".

Deployeando en Cloud Functions

Ahora implementemos nuestra aplicación en Cloud Functions. Para implementar nuestra aplicación solo necesitamos un comando. En el directorio de nivel raíz de nuestra aplicación (el que contiene index.js), ejecute el comando:

gcloud functions deploy mi-primer-funcion --runtime nodejs8 --trigger-http --entry-point app

Esto tardará unos minutos en ejecutarse, pero una vez que haya terminado, debería ver lo siguiente impreso en la consola.

Deploying function (may take a while - up to 2 minutes)...done.httpsTrigger:  url: https://us-central1-<GCP-PROJECT-ID>.cloudfunctions.net/mi-primer-funcionlabels:  deployment-tool: cli-gcloudname: projects/<GCP-PROJECT-ID>/locations/us-central1/functions/mi-primer-funcionruntime: nodejs8
Enter fullscreen modeExit fullscreen mode

Analicemos brevemente el comando que ejecutamos. Después de implementar la función gcloud, el siguiente parámetro es el nombre de su función. El indicador--runtime le dice a GCP qué tiempo de ejecución necesita su aplicación. El indicador--entry-point apunta al método ó objeto en index.js que deseamos exportar como un Cloud function, en otras palabras, es el punto de entrada para la función.

Después de haber implementado la función, deberías poder verla en la consola de Google Cloud y puedes llamar a tu función usandohttps://us-central1-<GCP-PROJECT-ID>.cloudfunctions.net/mi-primer-funcion/users.

Alt Text

Eso fue fácil pero ya al menos tienes la idea suficiente de como crear un Google cloud run (HTTP events). En un futuro no muy lejano escribiré sobre los otros tipos de funciones.

Agradezco compartir con la comunidad. Si quieres seguir aprendiendo junto a mí, te invito a seguir mis redes sociales:

Top comments(0)

Subscribe
pic
Create template

Templates let you quickly answer FAQs or store snippets for re-use.

Dismiss

Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment'spermalink.

For further actions, you may consider blocking this person and/orreporting abuse

Google Developer Expert in Google Cloud. Sr Software Developer with experience in design and develop of microservices on cloud. Interested on cloud stuff. Love to teach and learn
  • Location
    Costa Rica
  • Work
    Senior Software Developer
  • Joined

More fromFalcon

DEV Community

We're a place where coders share, stay up-to-date and grow their careers.

Log in Create account

[8]ページ先頭

©2009-2025 Movatter.jp