Creación de AWS Serverless Blogs Notifier para MS Teams para mantenerse al día con las mejores prácticas sin servidor
AWS Serverless – Seguir los avances en el mundo serverless (sin servidor) es emocionante, pero a veces puede ser difícil mantenerse al día.
En esta publicación práctica, le guiaré a través de la configuración de una aplicación sin servidor que los mantendrá a usted y a sus compañeros de equipo actualizados sobre los nuevos blogs sin servidor y las mejores prácticas a través de las notificaciones del canal de Microsoft Teams.
Descripción general de la arquitectura
Como puede ver en el diagrama de arquitectura, la función de Lambda analiza la fuente RSS del blog de cómputo de AWS y luego se filtra en función de las etiquetas del artículo. Estamos particularmente interesados en notificar sobre artículos con etiqueta serverless
.
Una vez que la función encuentra un artículo de interés, los metadatos sobre él se publican a través del webhook de MS Teams en el canal de MS Teams como una tarjeta y la guid
de un artículo publicado con éxito se registra en una base de datos.
Configuración de equipos
Si bien este artículo se centra en configurar una integración con Microsoft Teams, puede modificar fácilmente la función para lograr el mismo resultado con los webhooks de Slack.
Cree un canal estándar de Teams al que desee recibir notificaciones. Agregue un webhook entrante para el canal como se describe aquí; opcionalmente, puede cargar una imagen de avatar que será utilizada por la integración. Capture una URL de webhook, la utilizará más adelante para configurar la integración.
Configuración de AWS
Para que las acciones de github implementen su plantilla SAM, debe crear un depósito S3 en su cuenta. Cree el depósito y capture un nombre de depósito; lo utilizará más adelante para configurar la integración.
Configuración de Github
La solución se implementa mediante Github Actions. Todo lo que necesita hacer es bifurcar el repositorio y configurar sus propios secretos del repositorio.
La definición del flujo de trabajo para el proceso de CI / CD se almacena en .github/workflows
. Puede ver que el flujo de trabajo se activará mediante la confirmación en la rama principal, validará la plantilla SAM con la definición de función, creará el paquete de implementación y lo cargará en S3, e implementará la pila en la cuenta de AWS.
Los siguientes secretos deberán configurarse en su repositorio de github para implementar con éxito la solución en su cuenta:
Actualice WEBHOOKURL
con la URL de su integración de MS Teams y S3BUCKET
con el nombre del depósito que creó anteriormente.
Github Actions utilizará un usuario de IAM AWS_ACCESS_KEY_ID
y AWS_SECRET_ACCESS_KEY
para implementar la pila en el entorno de AWS; siga esta guía para crear una nueva clave de API de AWS para que la utilicen las acciones de github.
Es una buena práctica tener un usuario de IAM dedicado para las acciones de github, también asegurarse de que el usuario tenga el nivel correcto de permisos para implementar los recursos; en mi caso, le di al usuario un acceso de administrador para simplificar.
Nota: cuando comience a usar acciones de github, vale la pena asegurarse de que su cuenta de github tenga habilitada la autenticación de dos factores.
Coste de funcionamiento de la solución
El costo de la solución permanecerá dentro del nivel gratuito de AWS Serverless y su ejecución le costará $ 0.
Conclusión
Eso es todo, después de configurar los secretos del repositorio, puede activar el flujo de trabajo de github manualmente o mediante el compromiso con la rama principal y ver el progreso de la implementación en acción.
Después de una implementación exitosa, sus canales de MS Teams serán notificados con los últimos blogs (sincronización inicial) dentro de 1 hora. Después de eso, se le notificará sobre los nuevos blogs publicados regularmente dentro de 1 hora de su fecha de lanzamiento.
¡Feliz aprendizaje sin servidor!