在我的第一个aws 帐户中,我以以下方式指定了参数:
/config/a => value1
/config/b => value2
/config/c/a => value31
/config/c/b => value32
我想将这些移至我的第二个aws 帐户。
我在参数存储中手动创建了这些参数。
我怎样才能轻松地将这些值从一个帐户复制到另一个帐户?
使用aws ssm get-parameters --names "<param-name>"会有点太困难,因为我有太多的参数。
在我的第一个aws 帐户中,我以以下方式指定了参数:
/config/a => value1
/config/b => value2
/config/c/a => value31
/config/c/b => value32
我想将这些移至我的第二个aws 帐户。
我在参数存储中手动创建了这些参数。
我怎样才能轻松地将这些值从一个帐户复制到另一个帐户?
使用aws ssm get-parameters --names "<param-name>"会有点太困难,因为我有太多的参数。
aws ssm get-parameters-by-path --path "/relative/path/" --recursivefor (const value of params.Parameters) {
const { Name, Value } = value;
console.log(`aws ssm put-parameter --name "${Name}" --value "${Value}" --type "String"`);
}
我创建了一个实用程序,它完全符合您的要求:
pip install aws-ssm-copy
aws-ssm-copy --dry-run --source-profile <source> --recursive /
查看aws-ssm-copy实用程序和 博客了解更多详细信息。
可能是 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
这是我输出所有参数的版本Name,Type并Value采用 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
好吧,我知道已经一年了,但是对于仍在试图弄清楚这里的人来说,这是详细的解决方案,
因此,您需要运行以下命令来获取当前区域中的所有参数:
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');
然后通过运行命令安装npm包npm install并通过命令运行脚本npm start