如何从 aws parameter store 导出参数并导入到另一个账户
How to export parameters from aws parameter store and import into another account
在我的第一个 aws 帐户上,我按以下方式指定了参数:
/config/a => value1
/config/b => value2
/config/c/a => value31
/config/c/b => value32
我想将这些移动到我的 second aws 帐户。
我在参数存储中手动创建了这些参数。
如何轻松地将这些值从一个帐户复制到另一个帐户?
使用 aws ssm get-parameters --names "<param-name>"
有点太难了,因为我的参数太多了。
这里可能是按路径获取参数:
aws ssm get-parameters-by-path --path "/" --recursive
https://docs.aws.amazon.com/cli/latest/reference/ssm/get-parameters-by-path.html#synopsis
- 通过
aws ssm get-parameters-by-path --path "/relative/path/" --recursive
检索所有参数
- 将结果 JSON 写在某处 - 例如放入文件
- 准备放置命令,例如与 JS
for (const value of params.Parameters) {
const { Name, Value } = value;
console.log(`aws ssm put-parameter --name "${Name}" --value "${Value}" --type "String"`);
}
好吧,我知道已经过去一年了,但是,对于仍在努力弄清楚的人来说,这里是详细的解决方案,
因此您需要运行以下命令来获取您当前区域的所有参数:
aws ssm get-parameters-by-path --path "/" --recursive --with-decryption --region eu-west-2
您将收到 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')
;
然后通过 运行ning 命令 npm install
安装 npm
包,通过命令 npm start
安装 运行 脚本
我创建了一个完全符合您要求的实用程序:
pip install aws-ssm-copy
aws-ssm-copy --dry-run --source-profile <source> --recursive /
查看 aws-ssm-copy utility and blog 了解更多详情。
这是我的版本,它以 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
在我的第一个 aws 帐户上,我按以下方式指定了参数:
/config/a => value1
/config/b => value2
/config/c/a => value31
/config/c/b => value32
我想将这些移动到我的 second aws 帐户。
我在参数存储中手动创建了这些参数。
如何轻松地将这些值从一个帐户复制到另一个帐户?
使用 aws ssm get-parameters --names "<param-name>"
有点太难了,因为我的参数太多了。
这里可能是按路径获取参数:
aws ssm get-parameters-by-path --path "/" --recursive
https://docs.aws.amazon.com/cli/latest/reference/ssm/get-parameters-by-path.html#synopsis
- 通过
aws ssm get-parameters-by-path --path "/relative/path/" --recursive
检索所有参数
- 将结果 JSON 写在某处 - 例如放入文件
- 准备放置命令,例如与 JS
for (const value of params.Parameters) {
const { Name, Value } = value;
console.log(`aws ssm put-parameter --name "${Name}" --value "${Value}" --type "String"`);
}
好吧,我知道已经过去一年了,但是,对于仍在努力弄清楚的人来说,这里是详细的解决方案,
因此您需要运行以下命令来获取您当前区域的所有参数:
aws ssm get-parameters-by-path --path "/" --recursive --with-decryption --region eu-west-2
您将收到 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')
;
然后通过 运行ning 命令 npm install
安装 npm
包,通过命令 npm start
我创建了一个完全符合您要求的实用程序:
pip install aws-ssm-copy
aws-ssm-copy --dry-run --source-profile <source> --recursive /
查看 aws-ssm-copy utility and blog 了解更多详情。
这是我的版本,它以 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