从 Lambda 读取 AWS 参数存储

Reading AWS Param Store from Lambda

首次涉足 AWS 的 Lambda@Edge 并尝试从 AWS Param Store 检索机密以进行身份​​验证 (following this article) 但一无所获。

调用AWS.SSM函数的函数如下:

    const fromParameterStore = async(key, withDecryption = false) => {
        const { Parameter } = await ssm.getParameter({ Name: key, WithDecryption: withDecryption }).promise();
        return Parameter.Value;
    };

这是从 Lambda 的主体调用它的方式:

    exports.handler = async (event, context, callback) => {
        const request = event.Records[0].cf.request;
        const testValue = fromParameterStore('my-param-key');
        console.log("test value = "+testValue);
        console.log("test value = "+JSON.stringify(testValue));
        ...

日志中的输出就是这样:

testvar = [object Promise]
testvar = {}

在这种情况下,我如何才能干净利落地取消对 Promise 的引用,以获取实际秘密以用于 Lambda 的其余部分?

谢谢!

您的 fromParameterStore 函数是异步的,因此它将 return 一个 Promise。你将不得不等待这个承诺被履行,这意味着你将不得不在调用 fromParameterStore 函数时使用 await

const testValue = await fromParameterStore('my-param-key');