簡體   English   中英

來自 AWS SSM 請求的奇怪響應

[英]Odd Response from AWS SSM Request

我根據 Marcin 的建議重構了我的代碼,所以我調用 SSM 來檢索特定值(這在 awsUtils.js 文件中):

const AWS = require("aws-sdk");
const ssm = new AWS.SSM({region: process.env.AWS_REGION});

async function executeParameterCall(ssmParameter) {
    const params = {
        Name: ssmParameter, 
        WithDecryption: false
    };
    
    console.debug("params", params);

    var request = await ssm.getParameter(params).promise();
    
    return request.Parameter.Value;          
}

module.exports.getSSMValue = async (ssmParameter) => {
    return = await executeParameterCall(ssmParameter);
}

我從我的 NodeJS lambda 調用它:

const someValue = awsUtils.getSSMValue(process.env.ACCOUNT_VALUE);

我希望回到我的 lambda:

json
{
    "Parameter": {
        "Name": "/dev/account/someValue",
        "Type": "String",
        "Value": "{\"key\": \"foo\"\}",
        "Version": 1,
        "LastModifiedDate": "2020-10-08T21:04:17.451000-05:00",
        "ARN": "arn:aws:ssm:us-east-2:038017203494:parameter/dev/account/someValue",
        "DataType": "text"
    }
}

但我得到的是:

Promise { <pending> }

如果我通過 CLI 調用 SSM,我已經確認返回了正確的值。

那么,我在此 AWS 請求中是否缺少某些內容或導致此響應的代碼結構?

我認為您錯誤地調用了getParameter方法。 下面是一些應該如何調用的示例。

具體來說,以下示例對您的情況很有用:

    const ssmRequest = await ssm.getParameter({Name: ssmParamter, WithDecryption: true}).promise();
        
    console.debug("ssmResponse", ssmRequest.Parameter.Value);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM