用于添加/删除/重命名/复制aws param store参数的简单cli和库

awsparams的Python项目详细描述


注意

此库的版本1与以前的版本大不相同。 CLI应用程序没有改变,但它使用的库已经改变。 请特别注意下面的示例或查看底层类以获取更多信息。

为什么要写这个剧本?

Systems Manager参数的当前(2017年7月)AWS控制台 store有助于添加和编辑参数值,但是 忽略了关键的生产功能,如复制(尤其是大规模复制)。 重命名等。当前的aws ssmCLI在 AWS控制台的功能。

这个脚本将自动化当前需要的许多手动工作 与现有的AWS提供的UIS。

文档

完整的文档可以在这里找到:https://awsparams.readthedocs.io/en/latest/

安装

  • awsparams需要python 3.6+
  • 根据python3.6安装pip install awsparamspip3 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 --helpawsparams 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 --valuesawsparams 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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java是否存在这样一种场景:Java7的Hashmap实现优于Java8的实现   java如何打印这些完整的数组?   java BuildException:未能执行aapt   java如何使用类。未知类型的集合返回的cast()   java准备语句返回错误的值   webview 安卓中的java显示身份验证对话框   java如何重命名列名JPA Hibernate   java查询从特定用户和特定时间段的Oracle表(通过比较原始表和备份表)中选择修改的行   java Youtube视频仅在三星S6设备上加载时自动暂停   未调用java RecyclerView getItemViewType   使用JSch setCommand执行带有源选项的java Shell ping命令时失败   java Hibernate:无法删除|删除分离的实例   Java Spring@MappedSuperclass字段作为子类中的@Id字段   java Android:确定单击了哪个按钮,因为该按钮未在xml中定义   如何计算java阵列内存使用率   使用Java查找按字母顺序排列的第一个字符串   javascript注销功能刷新页面,但页面仍已登录   当接口作为参数提供时,java依赖项注入不起作用   java中带原语的字符串扭曲