首先涉足 AWS 的 Lambda@Edge 并嘗試從 AWS Param Store 檢索機密以進行身份??驗證(在本文之后),但沒有得到任何回報。
這是呼叫 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 的其余部分?
謝謝!
uj5u.com熱心網友回復:
您的fromParameterStore函式是異步的,因此它將回傳一個Promise. 你將不得不等待這個承諾被履行,這意味著你必須await在呼叫fromParameterStore函式時使用:
const testValue = await fromParameterStore('my-param-key');
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/480635.html
