Lapachos Lending : Maquinas de estados con Julio y Gilberto AWS

(estrella azul) Fecha

(estrella azul) Participantes

(estrella azul) Temas de debate

Hora

Elemento

Presentador

Notas

14:45 hs

intro

Juan Robles

  • Introducción mini para gilberto y planteo del desafío maquina de estados.

Juan Robles Julio Arnedo

Step function:

Como se capturan los cambios de estado:

Siempre porque ocurrió una acción desde una lambda

Explorar Bridge:

Call back :

Cuando el evento se termina, da una id y llama al step fuctions

https://docs.aws.amazon.com/step-functions/latest/dg/callback-task-sample-sqs.html

En algún lado se tiene que rutear el evento con una lambda por general en algún lado.

Execute initial workflow:

https://catalog.us-east-1.prod.workshops.aws/workshops/9e0368c0-8c49-4bec-a210-8480b51a34ac/en-US/basics/task-state/callback/step-3

¿cambiar el estado de una step fuctions puede ser limitado a un rol?

Tal vez invocando lambdas distintas. La administración de usuarios tiene que ser desde el front, la limitación va a ser desde el lambda.

Otra manera: El rol que asume el usuario solo tiene acceso a las acciones que le tocan en acceso. Es mas complejo y menos prolijo este camino.

Api gateway para todo con un workflow, y dentro de este poner los step fuctions. Es mas prolijo del lambda.

Serverless Framework: API Gateway + Step Functions
https://www.serverless.com/plugins/serverless-step-functions#api-gateway

Para subir el archivo no usar lambda porque implica subirlo dos veces.

The AWS Step Functions Workshop

https://catalog.us-east-1.prod.workshops.aws/workshops/9e0368c0-8c49-4bec-a210-8480b51a34ac/en-US/use-cases

Loops

Juan Robles

Julio Arnedo

Reintentos:

Ejemplo de loop de hasta 3 reintentos:

En el cuadraditos de step fuctionspodes configurar el try y catch dependiendo del tipo de error y las respuestas.

Handle a failure using Retry

https://catalog.us-east-1.prod.workshops.aws/workshops/9e0368c0-8c49-4bec-a210-8480b51a34ac/en-US/development/error-handling/step-3

https://catalog.us-east-1.prod.workshops.aws/workshops/9e0368c0-8c49-4bec-a210-8480b51a34ac/en-US/development/error-handling/step-3

"Retry": [
{
"ErrorEquals": [
"CustomError"
],
"IntervalSeconds": 1,
"MaxAttempts": 2,
"BackoffRate": 2
}
],

Increase Map state concurrency and run workflow again:

https://catalog.us-east-1.prod.workshops.aws/workshops/9e0368c0-8c49-4bec-a210-8480b51a34ac/en-US/basics/task-state/callback/step-3

En el array tenes la prioridad , se le puede setear la concurrencia.

Reporte

Juan Robles

Julio Arnedo

Si quiero decir en que estado se encuentra cierta ejecución de estado:

  • Configuar en lugar de start, describe state machine.

El listado de ejecuciones para una maquina de estados:

Todo lo que se ve en la consola que se hace

Cloud watch, para hacer un dashboard.

Implementing reactive progress tracking for AWS Step Functions

https://aws.amazon.com/es/blogs/compute/implementing-reactive-progress-tracking-for-aws-step-functions/


logs

Juan Robles

Gilberto Canales

Si hay alguna excepción a una ejecución en una lambda capturarla con:

Logs de cloudwatch, para tener el standar outputs: se pueden crear un filtro para capturar la métrica de ese evento. Se puede crear alarmar que cuando ocurra se invoqué una lambda o un tópico de sms.

CloudWatch:

Ejemplo dashboard en vivo con estado de las Step Functions
https://aws.amazon.com/blogs/compute/implementing-reactive-progress-tracking-for-aws-step-functions/

Crear un metric filter en Cloudwatch
https://catalog.us-east-1.prod.workshops.aws/workshops/a8e9c6a6-0ba9-48a7-a90d-378a440ab8ba/en-US/300-cloudwatch/320-cloudwatch-logs/323-cloud-watch-logs-filter

Crear una alarma en Cloudwatch
https://catalog.us-east-1.prod.workshops.aws/workshops/a8e9c6a6-0ba9-48a7-a90d-378a440ab8ba/en-US/300-cloudwatch/330-cloudwatch-alarms/331-cloudwatch-alarms

Atención a como se nombran las alarmas para no perder trazabilidad.