与aws系统管理器接口的python包

python-aws-ssm的Python项目详细描述


buildcodecovlicensecodestyle

python aws ssm

AWS System Manager接口的python包。

为什么要使用pythonawssm而不是boto3 ssm客户端?

这个包包着BOTO3-SSM客户端,隐藏了处理不太好的Python友好AWS SDK的复杂性。 当应用程序的安全参数存储到 AWS Parameter Store 使用路径层次结构。在应用程序启动期间,您可以使用此包获取它们并在应用程序中使用它们。

警告

默认情况下,SSM服务受速率限制。我们强烈建议使用 按路径检索ssm密钥,例如通过ParameterStore.get_parameters_by_path()。 这需要按有用的路径对键进行分组,但会降低 你自己的服务价格也受到限制。

安装

pip install python-aws-ssm

示例

基本用法

frompython_aws_ssm.parametersimportParameterStore# Assuming you have the parameters in the following format:# my-service/dev/param-1  -> with value `a`# my-service/dev/param-2  -> with value `b`parameter_store=ParameterStore()# Requesting the base pathparameters=parameter_store.get_parameters_by_path("/my-service/dev/")# And getting a specific valuevalue=parameters.get("param-1")# value should be `a`

递归和嵌套选项
frompython_aws_ssm.parametersimportParameterStore# Assuming you have the parameters in the following format:# my-service/dev/param-1  -> with value `a`# my-service/dev/param-2  -> with value `b`parameter_store=ParameterStore()# Requesting the base pathparameters=parameter_store.get_parameters_by_path("/my-service/",recursive=True,nested=True)# And getting a specific valuedev_parameters=parameters.get("dev")# value should be {"param-1": "a", "param-2": "b"}

按名称获取参数
frompython_aws_ssm.parametersimportParameterStore# Assuming you have the parameters in the following format:# my-service/dev/param-1  -> with value `a`# common/dev/param-2  -> with value `b`parameter_store=ParameterStore()# Requesting the base pathparameters=parameter_store.get_parameters(["/my-service/dev/param-1","/common/dev/param-2"])# And getting a specific valuedev_parameters=parameters.get("/common/dev/param-2")# value should be `b`

使用自定义客户端
frompython_aws_ssm.parametersimportParameterStoreimportboto3# Initialise an SSM client to specify the source of the credentials.# e.g. locally a profile would be more likely; an AWS Lambda would most# likely not override the credentials source.ssm_client=boto3.Session(profile_name='dev').client('ssm')parameter_store=ParameterStore(ssm_client)parameters=parameter_store.get_parameters(["/service/path/"])

开发

如果您缺少任何功能或发现了一个bug,请打开一个pr或一个新的github问题。

设置

这个项目使用诗歌来管理依赖关系和虚拟环境。 按照poetry网站(https://poetry.eustace.io/docs/#installation)的说明配置本地环境。

完成诗歌设置后,可以运行以下命令创建虚拟环境:

make setup

测试

测试由pytest运行

make test

代码样式

make format

在按下之前检查:

make lint

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

推荐PyPI第三方库


热门话题
java这种src与构建树时间戳的比较如何更快?   java如何在两个命令处理程序之间通信   java下拉框值更改   Java如何从另一个类中提取字段的值   无字段名的java Jackson序列化   java游戏循环和方法调用   java Spring Security permitAll()匹配器被忽略   java如何在一个方法中将数组中的int作为单独的int传递?   使用ArrayList在Java中实现同步队列   java JButton的操作侦听器在JTable中不工作   java中C++ OOP指针的技巧   java My regex搜索只打印出最后一个匹配项   java如何在Hadoop中序列化非常大的可写对象   spring Paypal JavaSDK支付执行问题   带有SPNEGO SSO的java Tomcat 6仍会提示输入登录名和密码   java HttpResponse主体正在更改   java如何在RxJava中实现链锁   为什么我需要java。lang.ClassNotFoundException:com。mysql。希杰。jdbc。mysqlconnectorjava8时的驱动程序。0.16.jar在类路径中?   java输入错误。即使在接受新输入后仍使用旧输入