在我的第一个 AWS帐户上,我以以下方式指定了参数:
/config/a => value1
/config/b => value2
/config/c/a => value31
/config/c/b => value32
我想将它们转移到我的 second aws帐户。
我在参数存储区中手动创建了这些参数。
我如何轻松地将这些值从一个帐户复制到另一个帐户?
使用aws ssm get-parameters --names "<param-name>"
有点困难,因为我有太多参数。
答案 0 :(得分:8)
我创建了一个实用程序,它完全符合您的要求:
pip install aws-ssm-copy
aws-ssm-copy --dry-run --source-profile <source> --recursive /
查看 aws-ssm-copy 实用程序和 blog 以了解更多详细信息。
答案 1 :(得分:3)
这是我的版本,它以 TSV(制表符分隔值)格式输出所有参数的 Name
、Type
和 Value
:
aws ssm get-parameters-by-path --path "/" --recursive --query="Parameters[*].[Name, Type, Value]" --output text
示例响应:
/prod/aaa String xxx
/prod/bbb String yyy
/prod/ccc String zzz
答案 2 :(得分:1)
在这里可能是按路径获取参数:
aws ssm get-parameters-by-path --path "/" --recursive
https://docs.aws.amazon.com/cli/latest/reference/ssm/get-parameters-by-path.html#synopsis
答案 3 :(得分:0)
aws ssm get-parameters-by-path --path "/relative/path/" --recursive
for (const value of params.Parameters) {
const { Name, Value } = value;
console.log(`aws ssm put-parameter --name "${Name}" --value "${Value}" --type "String"`);
}
答案 4 :(得分:0)
好吧,我知道已经过去了一年,但是对于仍在努力找出详细解决方案的人们来说,
因此,您需要运行以下命令来获取当前区域中的所有参数:
aws ssm get-parameters-by-path --path "/" –recursive
您将收到JSON
格式的回复。只需复制响应并将其粘贴到文件中即可(*.txt
文件,然后将其重命名为*.json
)。您已经拥有所有当前参数的JSON文件
我将该代码发布到了git存储库here中。克隆后只需克隆该存储库,即可在此处添加所需区域:
const ssm = new AWS.SSM({
apiVersion: '2014-11-06';,
region: 'eu-west-2'; // add your destination region here.
});
和您的json
文件在这里:const { Parameters } = await require('<YOUR JSON FILE>.json')
;
然后通过运行命令npm
安装npm install
软件包并通过命令npm start
运行脚本