9

在我的第一个aws 帐户中,我以以下方式指定了参数:

/config/a => value1
/config/b => value2
/config/c/a => value31
/config/c/b => value32

我想将这些移至我的第二个aws 帐户。

我在参数存储中手动创建了这些参数。

我怎样才能轻松地将这些值从一个帐户复制到另一个帐户?

使用aws ssm get-parameters --names "<param-name>"会有点太困难,因为我有太多的参数。

4

5 回答 5

8
  1. 通过检索所有参数aws ssm get-parameters-by-path --path "/relative/path/" --recursive
  2. 将生成的 JSON 写入某处 - 例如写入文件
  3. 准备 put 命令,例如用 JS
for (const value of params.Parameters) {
    const { Name, Value } = value;
    console.log(`aws ssm put-parameter --name "${Name}" --value "${Value}" --type "String"`);
}
于 2019-02-20T13:38:53.290 回答
8

我创建了一个实用程序,它完全符合您的要求:

pip install aws-ssm-copy
aws-ssm-copy --dry-run --source-profile <source> --recursive /

查看aws-ssm-copy实用程序和 博客了解更多详细信息。

于 2021-01-08T07:39:47.963 回答
4

可能是 get-parameters-by-path 套装: aws ssm get-parameters-by-path --path "/" --recursive

https://docs.aws.amazon.com/cli/latest/reference/ssm/get-parameters-by-path.html#synopsis

于 2019-02-20T13:21:36.313 回答
4

这是我输出所有参数的版本NameTypeValue采用 TSV(制表符分隔值)格式:

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
于 2021-01-15T13:28:57.600 回答
1

好吧,我知道已经一年了,但是对于仍在试图弄清楚这里的人来说,这是详细的解决方案,

因此,您需要运行以下命令来获取当前区域中的所有参数:

aws ssm get-parameters-by-path --path "/" --recursive --with-decryption --region eu-west-2

你会得到一个JSON格式化的响应。只需复制响应并将其粘贴到文件中(*.txt文件然后将其重命名为*.json)。您拥有包含所有当前参数的 JSON 文件

我在此处将该代码发布到 git 存储库中。克隆后克隆该存储库,在此处添加所需的区域:

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');

然后通过运行命令安装npmnpm install并通过命令运行脚本npm start

于 2020-05-04T05:39:04.937 回答