¿Hay alguna forma de sincronizar los parámetros de obtención de AWS SSM? Requisito: la clave secreta, la identificación almacenada en la tienda SSM debe estar accesible en el servidor. Usando Node y express en el backend como un proxy inverso, tenemos un archivo constant.js, almacena todas las URL de API, rutas, etc.
archivo constantes.js
const api1url = 'http://example.com/path1' const api1_secretkey = 'secret_key' .................. module.export = {api1url,api1_secretkey}Así que queríamos llamar a las cosas de ssm aquí antes de configurar las variables const
const SSM = require('aws-sdk/clients/ssm'); const ssm = new SSM(); const params = { Names: ['/secret_key_api_1', '/secret_key_api_2'], WithDecryption: true, }; const parameterList = await ssm.getParameters(params).promise();Entiendo que await no puede estar sin async, solo quería transmitir lo que estoy esperando, sin que sea una llamada asíncrona o que esté en la devolución de llamada de getparameters.
const api1url = 'http://example.com/path1' const api1_secretkey = parameterList.Parameter[1].ValuePero dado que es una llamada asíncrona, no podemos esperarla, intentamos hacerlo en una función asíncrona separada y luego devolver los datos, pero dado que la función aún es asíncrona, tiene dificultades.
No emita exactamente wrt a una función asíncrona, la función asíncrona funciona como se esperaba, pero quiero que se sincronice, la función de obtención de parámetros de AWS es asíncrona. debido a esto, no puedo hacer algo como const api1_secretkey = process.env.secret_key, este valor se obtendrá cuando el archivo js se ejecute línea por línea. pero como estoy esperando que la clave secreta provenga de la función asíncrona en el momento en que ocurre línea por línea const api1_secretkey = parámetroList.Parameter[1].Value , la promesa aún no se resuelve, por lo que quedará indefinido. Incluso si hago un .luego en obtener parámetros puedo hacer esto const api1_secretkey = parámetroList.Parameter[1].Valor después de la promesa resuelta. pero dado que el módulo de exportación ya está hecho, el otro archivo lleva indefinido en la clave secreta incluso después de que se cambie en la resolución de la promesa.