No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Iniciar proyecto con Serverless Framework

9/25
Recursos

Aportes 12

Preguntas 6

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

serverless create --path hola-mundo --template-url https://github.com/platzi/serverless-framework/tree/main/hola-mundo

Siempre cambio los nombres para saber si estoy entendiendo como se conecta cada archivo, as铆 qued贸 mi handles.js

const hello = async (event, context) => {
  return {
    statusCode: 200,
    body: JSON.stringify({ message: "Hello World - Serverless Framework AWS" }),
  };
};

module.exports = {
  hello,
};

Y as铆 quedo mi serverless.yml :

service: hello-world

provider:
  name: aws
  runtime: nodejs18.x

functions:
  hello-world:
    handler: handler.hello
    events:
      - http:
          path: hello
          method: GET

Si tienes errores al momento de hacer el deployment, necesitas que tu usuario de AWS tenga los siguientes permisos, los puedes configurar wn AWS console dentro del servicio IAM.

AmazonAPIGatewayAdministrator
AmazonS3FullAccess
AWSCloudFormationFullAccess
AWSLambda_FullAccess
CloudWatchLogsFullAccess
IAMFullAccess

Si a la hora de hacer el deploy les tira error, deben de configurar su cuenta aws con el comando:

aws confgure

Deben de proporcionar su AWS Access key ID y AWS Secret Access Key.
Esas claves las pueden generar luego de crear un usuario en IAM

Iniciar proyecto con Serverless Framework

El objetivo es crear la primera aplicaci贸n serverless(hola mundo) se siguen los siguientes pasos:

  1. Se crea una carpeta en donde se almacenaran los archivos del proyecto

  2. Crear el proyecto desde consola invocando el comando de serverless framework (serverless o sls abreviado) si se seleciona una plantilla de la lista se crea un nuevo proyecto desde esa plantilla, para ver la ayuda ssl help. Con el siguiente comando se crea un proyecto basado en una plantilla en github, tambien se indica su path.

    serverless create --path hola-mundo --template-url https://github.com/platzi/serverless-framework/tree/main/hola-mundo
    
  3. Se crea la estructura de archivos y cada uno tiene su sentido:

    1. package.json: son las dependencias que se usan en el proyecto, y las descripciones generales. Similar a un proyecto est谩ndar de node.js. Tiene la dependencia del paquete serverless en la versi贸n 3.21.0.
    2. handler.js: desarrollado para este ejemplo en javascript es la funci贸n lambda principal. Es una arrow function asincrona que recibe un evento y un contexto. Esta funci贸n retorna un objeto json con c贸digo de estado 200 en el body.
    3. serverless.yaml: Tiene las secciones de servicio con el nombre del proyecto, el provider en donde se indica el nombre aws en este caso y el runtime que es node.js en la versi贸n 14 y en la seccion de functions se hace referencia a la funcion definida en el handler.js indicando como evento que va a tener un http de tipo get y que apunta a hello, el evento indica cuando se va invocar la funci贸n lambda.

Desplegar la Aplicaci贸n

En la carpeta donde se encuentra el archivo serverless.yaml ejecutar el comando de despliegue

cd hola_mundo
sls deploy

Es importante mencionar que el cliente de AWS debe estar configurado a nivel global para poder hacer el despliegue

al finalizar se muestra la ruta que se defini贸 en los recursos del archivo serverless.yaml

Hola. Tambi茅n funciona actualmente el siguiente comando:

npx serverless
A dia de hoy, no se soporta el runtime nodejs nodejs14.x, habria que actualizarlo en el archivo serverless.yml para usar una version nueva de node (nodejs20.x por ejemplo)
Me arroja un error 403 al momento que trato de utilizar el endpoint generado. En postman la respuesta muestra el mensaje "Forbidden". 驴Alguien podr铆a ayudarme qu茅 puede estar pasando? He tratado de seguir todos los pasos y ya he desplegado el proyecto 2 veces.

En mi caso ya tenia un archivo con una configuraci贸n por defecto para el aws cli. El cual uso para mi trabajo.
Para dejar ese archivo sin modificar y seguir con el curso con mis credenciales de mi cuenta personal, utilice el siguiente comando:

sls config credentials --overwrite --provider aws --key [IAM key] --secret [IAM secret]
Eureka!!! Funciona!!!

Comando para clonar el proyecto 鈥渉ola-mundo鈥

sls create --path hola-mundo --template-url https://github.com/platzi/serverl
ess-framework/tree/main/hola-mundo