Creado |
Step Function states-dev-email-notifications
Descripción
Este flujo gestiona el envío de correos electrónicos y los reintentos en caso de que no se haya completado la acción esperada dentro de ciertos períodos de tiempo.
Verificación del tiempo de espera (
Timeout?)Si hay un tiempo de espera personalizado, se usa (
Custom Timeout).Si hay una condición especial, se espera 24 horas (
Wait 24h).En caso contrario, se envía el correo de inmediato (
SendTemplatedEmail).
Envío de correo (
SendTemplatedEmail)Se envía un correo electrónico usando Amazon SES.
Luego, se decide si se necesita un reintento (
Retry?).
Proceso de reintento
Si se debe reintentar, se espera 24h, luego 72h, 7 días y hasta 30 días si es necesario.
Después de cada espera, se revisa el estado con una Lambda (
Check Status after X).
Finalización del flujo
Si la acción esperada ocurre, el flujo finaliza con éxito (
Success).Si no ocurre tras todos los infile:///Users/jcoaks/Downloads/mermaid-diagram-2025-03-20-121900.pngtentos, se realiza un último envío y se da por terminado.
Diagrama
stateDiagram-v2
[*] --> Timeout?
Timeout? --> CustomTimeout : "timeout > 0"
Timeout? --> Wait24h : "jump > 0"
Timeout? --> SendTemplatedEmail : Default
CustomTimeout --> SendTemplatedEmail
SendTemplatedEmail --> Retry?
Retry? --> Wait24h : "retry = true"
Retry? --> Success : Default
Wait24h --> CheckStatusAfter24h
CheckStatusAfter24h --> StatusAfter24h
StatusAfter24h --> SendEmailAfter24h : "actionState = false"
StatusAfter24h --> Success : Default
SendEmailAfter24h --> Wait72h
Wait72h --> CheckStatusAfter72h
CheckStatusAfter72h --> StatusAfter72h
StatusAfter72h --> SendEmailAfter72h : "actionState = false"
StatusAfter72h --> Success : Default
SendEmailAfter72h --> Wait7d
Wait7d --> CheckStatusAfter7d
CheckStatusAfter7d --> StatusAfter7d
StatusAfter7d --> SendEmailAfter7d : "actionState = false"
StatusAfter7d --> Success : Default
SendEmailAfter7d --> Wait30d
Wait30d --> CheckStatusAfter30d
CheckStatusAfter30d --> StatusAfter30d
StatusAfter30d --> SendEmailAfter30d : "actionState = false"
StatusAfter30d --> Success : Default
SendEmailAfter30d --> SuccessWithoutCheck
SuccessWithoutCheck --> [*]
Success --> [*]
