【问题标题】:Odd Response from AWS SSM Request来自 AWS SSM 请求的奇怪响应
【发布时间】:2021-01-24 02:58:00
【问题描述】:

我根据 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 请求中是否缺少某些内容或导致此响应的代码结构?

【问题讨论】:

    标签: node.js amazon-web-services aws-secrets-manager aws-systems-manager


    【解决方案1】:

    我认为您错误地调用了您的 getParameter 方法。 Here 是应该如何调用它的一些示例。

    具体来说,以下示例对您的情况很有用:

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

    【讨论】:

    • 不幸的是,这不起作用(不返回):module.exports.getSSMValue = async ssmParamter => { const ssmResponse = await ssm.getParameter({Name: ssmParamter, WithDecryption: false})。承诺();返回 ssmResponse.Parameter.Value; };
    • @PerryHoekstra 这是一个示例,您可能需要根据您的代码库对其进行调整。关键是您的ssmResponse 不是响应,而只是表示要发出的请求的对象。因此你的“奇怪的输出”。您必须执行实际请求才能获得响应。
    猜你喜欢
    • 1970-01-01
    • 2020-12-04
    • 1970-01-01
    • 2021-02-15
    • 2017-09-17
    • 2017-09-04
    • 1970-01-01
    • 2020-08-13
    • 2021-11-14
    相关资源
    最近更新 更多