Introducción al cómputo en la nube

1

¿Qué es el cómputo en la nube?

2

¿Cómo puedo empezar a usar AWS?

3

Introducción a la oferta de servicios de AWS y sus aplicaciones

Introducción a la oferta de AWS y sus interacciones

4

Ejemplo de arquitectura con Elastic Beanstalk

5

¿Qué es Amazon EC2?

6

Creando una instancia de EC2

7

Conectándonos a nuestra instancia desde Windows

8

Conectándonos a nuestra instancia desde Linux

9

Conectándonos a nuestra instancia desde OSX

10

Subiendo un proyecto: Clonando un repositorio de GitHub a nuestra Instancia de EC2

11

Subiendo un proyecto a nuestra instancia de EC2: Ejecutar nuestro proyecto

12

¿Qué es Lambda y Serverless?

13

Creando una función Lambda

Elastic Beanstalk

14

Conociendo Elastic Beanstalk

15

Creando un ambiente en Elastic Beanstalk

16

Almacenamiento - S3

17

Almacenamiento con S3: Contenido Estatico

18

Almacenamiento con Glacier: Contenido duradero

Bases de Datos

19

Bases de Datos - RDS Aurora PG

20

Conociendo RDS PG

21

Creando una base de datos Platzi DB

22

Haciendo una migración a RDS PG

23

Conociendo Aurora PG (Postgres)

24

Haciendo una migración a Aurora DB

25

Mejores prácticas de Bases de Datos y RDS

Redes

26

Redes - Route53

Herramientas de administración

27

Herramientas de administración - IAM

28

Utilizando IAM

29

CloudWatch

30

CloudTrail

Seguridad

31

Certificate manager

32

GuardDuty

Bonus

33

AWS Rekognition

34

Creando nuestro servicio de Postgres

35

Accediendo a nuestra base de datos Postgres

Cierre del curso

36

Conclusiones del curso de Fundamentos de AWS Cloud

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso Práctico de AWS Cloud

Curso Práctico de AWS Cloud

Mauro Parra Miranda

Mauro Parra Miranda

Creando una función Lambda

13/36
Recursos

Aportes 81

Preguntas 35

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Hola amigos, para quienes estén viendo este viseo recientemente y han notado que el entorno donde configuramos nuestro lamba en AWS ha cambiado con respecto al entorno que el tutor tiene, les comparto esto que les facilitara un poco la configuración.

  1. Configuración de las variables de entorno.
  2. Configuración de etiquetas.
  3. Dar un test o probar en código. (Antes de dar test, darle clic al botón color naranja que dice DEPLOY)

Me parece que hace falta aclarar por parte del tutor el porqué de estas funciones básicamente, y en qué ejemplos de la vida real deberían usarse y cuáles no. Para mi un ejemplo completo sería algo donde involucres costos, y el porqué sería mejor tener una API en contenedores y no en Lambda Functions, y viceversa, cuándo es que realmente se le saca provecho. Para mí queda muy confuso al momento de decidir si me voy por containers o Lambda Functions. Si alguien quiere brindar un ejemplo, bienvenido sea, me sería de mucha utilidad.

No había creado un rol por lo que seleccioné “Creación de un nuevo rol con permisos básicos de Lambda” y funcionó perfecto.

el enlace anterior que hace uso en este video
https://github.com/mauropm/aws-platzi-python

AWS: AWS Lambda
Microsoft Azure: Azure Functions
Google Cloud: Cloud Functions

Si alguno esta realizándolo recientemente, les recomiendo desde la parte de configuración del código de la función, darle en ‘deploy’ ya con esto nos permitirá darle en probar (test) y nos aparecerán los logs de que la ejecución fue exitosa (a pesar que en el diagrama no estés enviando a la Lambda a Amazon CloudWatch Logs)

El principal reto de las arquitecturas serverless es en diseñar las soluciones de una manera mas atómica y descentralizada, la combinación de AWS Lambda y AWS Stepfunctions te permite modelar los procesos de negocio como realmente son, pequeñas unidades de trabajo que realizan una única tarea y la hacen bien, y que combinadas completan un trabajo mas grande.

Al crear la función se escogió un role existente (service-role/text-platzi) pero quede perdido en que momento se creo dicho role

Funciones Lambda (AWS): ¿Qué son y como funciona esta tecnología?
.

Si te sale algo como
{
“statusCode”: 200,
“body”: ““Hello from Lambda!””
}
Lo que debes de hacer es:
Paso1: darle clic en Implementar(deploy)
Paso2: darle clic en Probar

Listo

Creada la funcion.

Pagina de GitHub donde esta el codigo de la funcion.

https://github.com/mauropm/aws-platzi-python/blob/master/funcion_lambda.py

Antes de correr el Test debes darle deploy y las variables de entorno y las Tags están en el apartado de configuración.

Para que no tengan que devolverse por el enlace a otra clase o por si no lo tieneen a la mano, este es el repositorio:

https://github.com/mauropm/aws-platzi-python

Hola, cuando ejecuto el test event, me dice
"Hello from Lambda" ¿Alguien más?

Me perdí, ¿En que momento creamos el Rol? porque me aparece solamente
"Crear un rol a partir de una plantilla" o
"Crear un rol personalizado"

???
=(

Gracias, muy didactico. Quisiera tener un ejemplo cotidiano para su uso. alguien tiene uno?

Como expongo una lambda al mundo?

Es algo difícil seguir este curso, esta clase ha sido muy confusa, algunas razones como:

  1. La interfaz ya no es la misma
  2. No habíamos creado un rol y el profesor ya lo tenía, así que no sabía que hacer ni como crear uno.
  3. Siento que el profesor va muy rápido y no da tiempo de que uno pueda visualizar la configuración. Hay que estar pausando para pausar en el momento justo donde se vea la configuración completa.
  4. El profesor solo dije, ponemos esto, esto y esto sin explicar el porque de eso.

Creo que esta clase le fato explicar mejor en que casos se usa lambda, para que funcionan y como se implementa en un proyecto real, encontré un video en youtube que la explica mucho mejo.
https://www.youtube.com/watch?v=oCE8LlcHtbw

Si despliego un API REst con LAMBDA, para ejecutarla desde otra aplicación, como haría con el tema de la seguridad? Para ejecutar un lambda por ejemplo con JWT ? Debo implementar la seguridad en el mismo lambda ?

Gracias.

DEsafotrunadamente es el problema de estos cursos que son algo viejos y el entorno de AWS ha cambiado desde entonces y seguir la linea de los cursos en cuanto a los laboratorios es dificl ya que se tiene que verificar donde seleccional las opciones para que el laboratorio sea exitoso y no frustrante como lo veo ahora.

Antes de probar la función lambda ubícate en el IDE y dale click a la opción de deploy para que lambda tome tu función nueva y no la que estaba por defecto.

Ya no contamos con 1000 ejecuciones concurrentes, ahora por el contrario solo son 10

Serverless es el presente y el futuro les recomiendo muchísimo estos 2 frameworks para crear tus aplicaciones 100% serverless
Servlerss Framework: (https://www.serverless.com/) el mas usado, la configuracion del proyecto lo haces en un archivo yml (buaaajj odio los yml) y lo puedes usar para varios proveedores de servicios en la nube (yo solo lo he usado en aws)
Servless Stack Framework: (https://docs.serverless-stack.com/) es relativamente nuevo pero ha recibido mucha inversión por su alto potencial, es mi preferido usa la versión 3 del sdk de amazon que es mas engorrosa pero tiene mejor performance

En las nuevas versiones de la pagina de lambda de AWS el botón saved no viene y si das click en el botón de test no te toma tu último código asi le des saved desde el editor de código, tienes que darle deploy para que lo tome como el código mas reciente

Como sería se escribí un algoritmo de ML en Jupyter Notebook, pero en este incluyo gráficas. Podría ejecutarlo en lambda quitandole las gráficas si solo quiero la predicción?

Que plantillas debería elegir para crear el rol?.
En que momento se creo el rol?

una consulta desde java se podría utilizar este tipo de funciones en aws y que tan complejo es la utilización de las mismas?

Integración de lambda con otros servicios, algunos triggers, para lambda etc…

Hola, como podria hacer una funcion donde liste las instancias unicamente por nombre.

import boto3
import json
import pprint

region = "us-east-1"
ec2 = boto3.client(‘ec2’, region_name=region)

def lambda_handler(event,context):

response = ec2.describe_instances(
    Filters = [
        {'Name': 'instance-state-name', 'Values':['*']}
        ])
print(response)

En que casos se puede hacer uso de Lambda?
Ya que una funcion que se ejecuta alli la podria ejecutar en un servidor donde tengo una aplicacion, pero quisiera saber cual es el pro de usar Lambda, quiza su uso depende de la cantidad de peticiones que requiera la funcion, costo de cada peticion, etc

Que no hay cursos actualizados? todos estos cursos son de 3 o 4 años de antiguedad, Actualicen los contenidos

aquí está dejaré otra explicación de la clase: https://www.youtube.com/watch?v=oCE8LlcHtbw&ab_channel=RubénCarvajal

Para los que estén trantando de encontrar las environment variables: https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html

Puedo usar cualquier librería? Ejemplo pyspark o tesseract en una lambda?

seria genial si actualizaran este curso, ya que veo que cambiaron algunas cosas.

Actualmente para ver la ejecución de nuestra función debemos dar clic en el botón “Deploy” y posteriormente en Test.

Debene pulsar el botón ‘Deploy’ o desplegar, para actualizar sus cambios en el código de la lambda, también para las configuraciones de variables de entorno, memoria, concurrencia, etc, lo encontrarán en el Tab ‘Configuration’ / ‘Configuraciones’ que se muestra en la parte superior de la ventana, esto a la fecha de julio 2021.

(posiblemente siga cambiando la interfaz gráfica, es cuestión de buscar las configuraciones que van nombrando en las clases, muy posible que no las encuentren en el mismo lugar del video del curso)

Tienes que pulsar el boton “Deploy” antes de realizar el Test

Este video es muy recomendado por si alguien no entendió o no te quedo claro, muy recomendado: https://www.youtube.com/watch?v=oCE8LlcHtbw

Excelente, ejecutado!

Si les quedó gustando los videos de AWS acá comparto uno de Lambda https://youtu.be/eOBq__h4OJ4

Actualmente en en la pestaña “Configuración” se encuentran las opciones de Variables de Entorno y Etiquetas entre otras opciones que menciona el tutor:

si quisiera capturar tweets desde una función lambda podría? hay mejores formas de hacerlo desde aws?. gracias

Genial!

Hay una nueva opción que dice “Plantillas de política” y aparecen varias opciones, para el ejemplo que estamos haciendo estoy eligiendo “permisos de microservicios sencillos”, espero funcione.

muy bien

Estoy un poco confundido.

Las funciones Lambdas se utilizarían para manipular eventos y acciones de configuración para el servidor? O tambien podemos crear múltiples funciones Lambdas que funcionen como un servicio dentro de un API?

No tiene autorización para realizar: iam:CreatePolicy.

Como comunico mi funcion lambda con mi backend?

Integración con lambda y dynamo.

Es viable usar lambdas para integración entre diferentes sistemas ?

Exponer un servicio web con seguridad, transformar el mensaje y consumir otro para la entrega el resultado?

Tengo la duda de, si ya tengo una lambda function en producción, cómo puedo crear un ambiente de desarrollo para hacer modificaciones a la lambda que ya está en producción? Cómo lo han trabajado?

En caso que mi Lambda necesite otras dependencias… estas se pueden incluir ?? o debo usar otro tipo de servicio aws ?

Un ejemplo de lambda

Wow.!! Por fin de veo valor a esta funcionalidad.! Se puede decir que para este es un tool mas para los DevOps.

Por si desean aclarar mejor en que casos se puede utilizar Lambda:
https://docs.aws.amazon.com/lambda/latest/dg/applications-usecases.html

Excelente curso, una pregunta saben como tener una lambda disponible, es decir no esperar hasta que la llamemos si no que este en un estado “precalentado”?? gracias

Que tan buena práctica es el uso lambda para la ejecución de python como pipeline para la transformación de archivos dentro una arquitectura de data lake (para analitica)?
pd: toda la infraestructura se basa en s3, se definen múltiples simulando las diferentes etapas de transformación de los datos raw.

Prueba realizada!

Request ID:
“345fade8-0c36-43fc-85b0-76c1f14d2e23”

Function Logs:
START RequestId: 345fade8-0c36-43fc-85b0-76c1f14d2e23 Version: $LATEST
what_to_print: Hola Edisson AWS.
what_to_print: Hola Edisson AWS.
what_to_print: Hola Edisson AWS.
what_to_print: Hola Edisson AWS.
what_to_print: Hola Edisson AWS.
what_to_print: Hola Edisson AWS.
END RequestId: 345fade8-0c36-43fc-85b0-76c1f14d2e23
REPORT RequestId: 345fade8-0c36-43fc-85b0-76c1f14d2e23 Duration: 0.30 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 42 MB Init Duration: 1.17 ms

Sería correcto aplicar una función lambda a un archivo de Python para ingestión de datos a una API que se conecta a una db de Mongo?

Esto podria funcionar para la prueba de codigos de apps o paginas y que te diga la informacion de tiempo y ram ¿no?

Puedo hacer una Función lambda para que traiga datos de un Api y la guarde en una base de datos que esta en un servicios RDS ?,

Super! 😃 prueba realizada

Esto es como Docker?

START RequestId: f164146e-d6ba-40a1-b0ad-ddf7648e994f Version: $LATEST
what_to_print: Hola desde Platzi.
what_to_print: Hola desde Platzi.
what_to_print: Hola desde Platzi.
what_to_print: Hola desde Platzi.
what_to_print: Hola desde Platzi.
what_to_print: Hola desde Platzi.
END RequestId: f164146e-d6ba-40a1-b0ad-ddf7648e994f
REPORT RequestId: f164146e-d6ba-40a1-b0ad-ddf7648e994f Duration: 0.29 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 42 MB Init Duration: 1.00 ms

START RequestId: c455518b-33b8-4211-8259-eaa9bcbd9ee1 Version: $LATEST
what_to_print: Hola desde Platzi.
what_to_print: Hola desde Platzi.
what_to_print: Hola desde Platzi.
what_to_print: Hola desde Platzi.
what_to_print: Hola desde Platzi.
what_to_print: Hola desde Platzi.
what_to_print: Hola desde Platzi.
what_to_print: Hola desde Platzi.
what_to_print: Hola desde Platzi.
what_to_print: Hola desde Platzi.
END RequestId: c455518b-33b8-4211-8259-eaa9bcbd9ee1
REPORT RequestId: c455518b-33b8-4211-8259-eaa9bcbd9ee1 Duration: 0.35 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 42 MB Init Duration: 1.02 ms

En qué parte de los videos crea el rol? Creo que me perdí…

Gracias!

Les comparto este video en el que explican como exponer una función Lambda como servicio REST mediante API Gateway de AWS.

Los invito a revisar este proyecto en AWS llamado Desarrolle una aplicación web sin servidor.

Mar-2021 chequen que al guardar un cambio en el codigo tienen que dar clic en Deploy

Mi experiencia: la primera vez del Test, demoró como 8 segundos en mostrar error “Calling the invoke API action failed with this message: Network Error”.
La segunda vez demoró como 5 segundos en mostrar el mismo error.
A la tercera vez ejecutó con éxito, y cada vez en menos tiempo.

En mi trabajo tuve que crear una función lambda que invoque por código una tarea, que levante un cluster asociado con un docker container.

Además tuve que guardar logs en una base de datos SQL, por lo que tuve que añadir un layer específico para incorporar la librería pyodbc.

Para que sirve event y context?

Interesante, estas funciones podrían conectarse a una base de datos remota y retornar la data necesaria! Me gusta la idea de usarla con NodeJS, aunque me duele que no esté PHP ahí jaja

import os


def lambda_handler(event, context):
    what_to_print = os.environ.get("what_to_print")
    how_many_times = int(os.environ.get("how_many_times"))

    # make sure what_to_print and how_many_times values exist
    if what_to_print and how_many_times > 0:
        for i in range(0, how_many_times):
            # formatted string literals are new in Python 3.6
            print(f"what_to_print: {what_to_print}.")
        return what_to_print
    return None

He visto por muchas partes scratch. Lo consulto en el traductor de google y significa rasguño. Mi pregunta es,
¿Qué significa una función from scratch?. Gracias!!!

Espero poder entender este tema mas adelante, soy nuevo en AWS y no veo la funcionalidad de esto, depronto enfrentando un ejemplo de la vida real le sea mas claro a uno, seguimos 💪

Muy buen curso.

Mi output fue el siguiente:

START RequestId: b7b49511-2aa3-44bd-a609-8f25025c58db Version: $LATEST
END RequestId: b7b49511-2aa3-44bd-a609-8f25025c58db
REPORT RequestId: b7b49511-2aa3-44bd-a609-8f25025c58db Duration: 0.29 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 43 MB

No ejecuto el codigo. que pudo fallar?