gpt4 book ai didi

node.js - 批量检索 AWS ssm 参数

转载 作者:搜寻专家 更新时间:2023-10-31 22:38:56 25 4
gpt4 key购买 nike

如何一次从 AWS Systems Manager(参数存储)中批量(或多个参数)检索参数?使用 aws-sdk,以下是我编写的用于从参数存储中检索 SSM 参数的 Node.js 代码:

      const ssm = new (require('aws-sdk/clients/ssm'))()

const getSSMKey = async params => {
const {Parameter: {Value: APIKey}} = await ssm.getParameter(params).promise()
return APIKey
}

const [param1, param2, param3] = await Promise.all([
getSSMKey({ Name: '/data/param/PARAM1', WithDecryption: true }),
getSSMKey({ Name: '/data/param/PARAM2', WithDecryption: true }),
getSSMKey({ Name: '/data/param/PARAM3', WithDecryption: true })
])
console.log(param1, param2, param3)

但是使用这段代码,我发送了 3 个请求以获取 3 个参数,这在参数数量很大的情况下效率很低。有没有办法在一个请求中检索多个参数。如果 ssm.getParameters() 是执行此操作的方法,请举例说明(特别是该方法的参数)。我试过了,但什么也没收到。

最佳答案

根据AWS document , GetParameter 获取一个参数的值,而 GetParameters 获取多个参数的值。

它们的用法也非常相似。使用 GetParameters 获取多个值时,将多个名称作为列表传递给 Names,而不是将单个名称作为字符串传递给 Name

代码示例,在“us-west-1”区域获取名为“foo”和“bar”的参数:

const AWS = require('aws-sdk');
AWS.config.update({ region: "us-west-1" });

const SSM = require('aws-sdk/clients/ssm');
const ssm = new SSM()
const query = {
"Names": ["foo", "bar"],
"WithDecryption": true
}
let param = ssm.getParameters(query, (err, data) => {
console.log('error = %o', err);
console.log('raw data = %o', data);
})

关于node.js - 批量检索 AWS ssm 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52859297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com