Hola a todos!, espero les sirva mucho este tutorial, intenté ser conciso pero terminé extendiéndome un poco en las explicaciones, espero que al menos me haya hecho entender bien todo el proceso, como siempre recibo feedback en los comentarios! Resumen y código utilizado NodeJS: TUTORIAL: Systems Manager: Parameter Store: -Guardan un String o SecureString (Codificado) con la ruta y nombre que prefieran. Desde las variables de entorno del Lambda (Configuration: Environment variables): -Guardar una variable de entorno que almacene el nombre exacto de la variable del Parameter Store, con una key o nombre también pertinente. Desde los permisos del Lambda (Configuration: Permissions): Execution Rol: -Sino tienen un rol agregado ya, crean y agregan uno, luego: Add permissions: Create Inline Policy: System managers: -Seleccionan los que digan GetParameters(GetParameter, GetParameters, GetParameterHistory, GetParametersByPath). Luego, en Resources: Add ARN: -Region: us-east-1 -Parameter Name: El nombre/ruta completo del parameter store que quieren leer, pueden usar asterízco (*) para coger todos los valores de una ruta, ejemplo: dev/* utiliza todas las variables de entorno bajo "/dev/". Aquí les dejo el código con la librería y comando que me funcionó en un Lambda NodeJS V18.*: import { GetParameterCommand, SSMClient } from "@aws-sdk/client-ssm"; const variableFromParameterStoreNeeded = process.env.variableEnvFromLambda; const ssmClient = new SSMClient({}); //Hacer función async para utilizar el await const getParameterStoreVariableResult = await ssmClient.send( new GetParameterCommand({ Name: variableFromParameterStoreNeeded }) ); const contentValueFromVariableOfParameterStore = getParameterStoreVariableResult.Parameter.Value; //Con esto ya utilizan en lo que necesiten el valor textual almacenado en la variable de entorno //Que crearon desde el parameter Store, por ejemplo una table Dynamo o URL de DDBB. Cambio cuando se usa una variable del Parameter Store Encriptada (String Secure): const parameterResult = await ssmClient.send( new GetParameterCommand({ Name: topicArn, WithDecryption: true }) ); //Se añade el { Name: topicArn, WithDecryption: true } "WithDecryption: true". No olvides suscribirte y dar like!
Hola a todos!, espero les sirva mucho este tutorial, intenté ser conciso pero terminé extendiéndome un poco en las explicaciones, espero que al menos me haya hecho entender bien todo el proceso, como siempre recibo feedback en los comentarios! Resumen y código utilizado NodeJS: TUTORIAL: Systems Manager: Parameter Store: -Guardan un String o SecureString (Codificado) con la ruta y nombre que prefieran. Desde las variables de entorno del Lambda (Configuration: Environment variables): -Guardar una variable de entorno que almacene el nombre exacto de la variable del Parameter Store, con una key o nombre también pertinente. Desde los permisos del Lambda (Configuration: Permissions): Execution Rol: -Sino tienen un rol agregado ya, crean y agregan uno, luego: Add permissions: Create Inline Policy: System managers: -Seleccionan los que digan GetParameters(GetParameter, GetParameters, GetParameterHistory, GetParametersByPath). Luego, en Resources: Add ARN: -Region: us-east-1 -Parameter Name: El nombre/ruta completo del parameter store que quieren leer, pueden usar asterízco (*) para coger todos los valores de una ruta, ejemplo: dev/* utiliza todas las variables de entorno bajo "/dev/". Aquí les dejo el código con la librería y comando que me funcionó en un Lambda NodeJS V18.*: import { GetParameterCommand, SSMClient } from "@aws-sdk/client-ssm"; const variableFromParameterStoreNeeded = process.env.variableEnvFromLambda; const ssmClient = new SSMClient({}); //Hacer función async para utilizar el await const getParameterStoreVariableResult = await ssmClient.send( new GetParameterCommand({ Name: variableFromParameterStoreNeeded }) ); const contentValueFromVariableOfParameterStore = getParameterStoreVariableResult.Parameter.Value; //Con esto ya utilizan en lo que necesiten el valor textual almacenado en la variable de entorno //Que crearon desde el parameter Store, por ejemplo una table Dynamo o URL de DDBB. Cambio cuando se usa una variable del Parameter Store Encriptada (String Secure): const parameterResult = await ssmClient.send( new GetParameterCommand({ Name: topicArn, WithDecryption: true }) ); //Se añade el { Name: topicArn, WithDecryption: true } "WithDecryption: true". No olvides suscribirte y dar like!