Revisión de extensiones: AWS SSM Lambda
AWS SSM – Después de escribir mi artículo más reciente sobre cómo funcionan las API de AWS Lambda, pensé que sería genial profundizar en algunas extensiones lambda interesantes que encontré…
Entonces, primero quería echar un vistazo a una extensión publicada por AWS que le permite obtener y almacenar en caché los parámetros de SSM en su función lambda.
Aquí hay un video rápido probando esta extensión 👇 El código se proporcionará al final del artículo
TL;RD
Esta extensión funciona en todos los idiomas y es lo suficientemente fácil de usar como para obtener el almacenamiento en caché de forma gratuita. Es posible que le falten algunas características, pero por ahora puede pasarlas por alto fácilmente.
Configuración
Configurar esta extensión es muy simple. Básicamente, solo agrega la capa, establece los permisos y su función está lista para comenzar a almacenar en caché esos parámetros de AWS SSM.
Cosas a tener en cuenta
- Agregue la capa usando la región correcta. Tenga en cuenta que la identificación de la cuenta en la capa publicada también cambia para cada región.
- Establezca los dos permisos necesarios
ssm:GetParameter
ykms:Decrypt
- Asegúrese de establecer un tiempo adecuado para vivir en el caché para que no se quede atascado con parámetros no válidos durante demasiado tiempo
SSM_PARAMETER_STORE_TTL
- Asegúrese de establecer el encabezado requerido cuando realice solicitudes a la extensión para que la extensión pueda realizar solicitudes a SSM en su nombre.
X-Aws-Parameters-Secrets-Token
debe establecerse en la variable de entornoAWS_SESSION_TOKEN
.
Opinión
Esta es una forma agnóstica de lenguaje bastante ingeniosa para obtener parámetros SSM dentro de una función lambda de manera más eficiente. Sin embargo, creo que hay algunas cosas que podrían hacer para que sea un poco más fácil trabajar con él.
Debe haber un punto final o un parámetro que le permita caducar automáticamente un parámetro almacenado en caché
Tendrías que escribir tu propia lógica alternativa que apesta. Parece que no les tomaría mucho esfuerzo incluir una variable de borrado de caché o algo así.
Los documentos no son geniales.
Esto es algo que parece afectar bastante a AWS. Estoy hablando con usted aws sdk v3 docs. 🙄 Realmente necesitan ser más claros sobre los puntos finales y las opciones disponibles.
La capa pública debe publicarse en la misma cuenta para todas las regiones.
Esta es una queja bastante quisquillosa. Pero en términos de CI, es un poco molesto ya que necesitaría mantener un mapa de la región para la identificación de la cuenta. Parece una simple pregunta para no cambiar la identificación de la cuenta por región.
¿Deberías usar esta extensión?
¿Si, Por qué no? Es mucho más difícil de usar que un método SDK típico y obtienes almacenamiento en caché de forma gratuita. Espero que sigan mejorando esta extensión, pero supongo que el tiempo lo dirá.
Código del video
Si desea la aplicación de demostración que creé en el video de arriba, puede consultar el código aquí 😎
Gracias por llegar hasta aquí, si encuentras esto útil no olvides dejar un👍🏼y suscribirse para recibir más contenido.
Si le interesa, puede echar un vistazo a algunos de los otros artículos que he escrito recientemente sobre Node.js y AWS Lambda: