用于添加/删除/重命名/复制aws param store参数的简单cli和库
awsparams的Python项目详细描述
注意
此库的版本1与以前的版本大不相同。 CLI应用程序没有改变,但它使用的库已经改变。 请特别注意下面的示例或查看底层类以获取更多信息。
为什么要写这个剧本?
Systems Manager参数的当前(2017年7月)AWS控制台
store有助于添加和编辑参数值,但是
忽略了关键的生产功能,如复制(尤其是大规模复制)。
重命名等。当前的aws ssm
CLI在
AWS控制台的功能。
这个脚本将自动化当前需要的许多手动工作 与现有的AWS提供的UIS。
文档
完整的文档可以在这里找到:https://awsparams.readthedocs.io/en/latest/
安装
- awsparams需要python 3.6+
- 根据python3.6安装
pip install awsparams
或pip3 install awsparams
用法
库:
fromawsparamsimportAWSParams# Using default Profileaws_params=AWSParams()# Using a Custome Profileaws_params=AWSParams('MyProfile')#get a single parameterparam=get_parameter('test1')# ParamResult(Name='test1', Value='test123', Type='SecureString')#ParamResult is a named tuple with properties Name, Value, Typeparam.Name# 'test1'param.Value# 'test123'param.Type# 'SecureString'# get multiple parameters with a prefixparams=get_all_parameters(prefix="testing.testing.")# [ParamResult(Name='testing', Value='1234', Type='String'),# ParamResult(Name='testing2', Value='1234', Type='String')]# get multiple parameters by pathparams=get_all_parameters(prefix="/testing/testing/",by_path=True)# [ParamResult(Name='testing', Value='1234', Type='String'),# ParamResult(Name='testing2', Value='1234', Type='String')]# get multiple parameters by pathparams=get_all_parameters(prefix="/testing/testing/",by_path=True,trim_name=False)# [ParamResult(Name='/testing/testing/testing', Value='1234', Type='String'),# ParamResult(Name='/testing/testing/testing2', Value='1234', Type='String')]# get just a parameter valuevalue=get_parameter_value('test1')# test123
有关作为库使用的更详细示例,请参见cli实现here。
CLI应用程序:
可以通过运行awsparams --help
或awsparams subcommand --help
命令来引用用法:
Usage: awsparams [OPTIONS] COMMAND [ARGS]...
Options:
--version Show the version and exit.
--help Show this message and exit.
Commands:
cp Copy a parameter, optionally across accounts
ls List Paramters, optional matching a specific...
mv Move or rename a parameter
new Create a new parameter
rm Remove/Delete a parameter
set Edit an existing parameter
命令示例
LS用法
仅限ls名称:awsparams ls
ls的值没有解密:awsparams ls --values
或awsparams ls -v
ls有值和解密:awsparams ls --with-decryption
ls by前缀:awsparams ls appname.prd
新用法
交互式新建:awsparams new
新的半交互式:awsparams new --name appname.prd.username
新的非交互式:awsparams new --name appname.prd.usrname --value parameter_value --description parameter_descripton
CP使用
复制参数:awsparams cp appname.prd.username newappname.prd.username
将前缀为appname.dev.的参数集复制到appname.prd.:awsparams cp appname.dev. appname.prd. --prefix
以前缀repometa-generator.prd开头的参数的副本集 覆盖不同帐户的现有参数:^ {CD16>}
跨不同帐户复制单个参数:awsparams cp appname.dev.username appname.trb.us