用于从 AWS 资源 URI 中提取 Boto3 配置信息和方法参数的实用程序。
项目描述
Boto3 URI 实用程序库,支持从 AWS 资源 URI 中提取 Boto3 配置数据和方法参数。
目的
当使用Boto3的应用程序必须使用分布在多个账户中的 AWS 资源时,将 AWS 配置信息(凭证和非凭证)直接绑定到关联的 AWS 资源(例如,通过在 URI 中包含配置数据)会很有用. 这个库提供了一个从 URI 中提取 AWS 配置数据和方法参数的类,提供了一种简洁的语法来传递(直接到 Boto3 方法中)包含在 URI 中的配置数据和/或资源名称。
包安装和使用
该软件包在PyPI上可用:
python -m pip install b3u
b3u 类可以通过以下方式导入:
from b3u import b3u
例子
该类提供了从 URI 中提取配置数据(凭证和非凭证)的方法。下面的示例说明了从给定的 URI(对于 S3 存储桶)创建 S3 客户端对象,其中 URI 包括凭据(访问密钥ABC、秘密密钥XYZ和会话令牌UVW):
>>> 导入 boto3 >>> from b3u import b3u >>> b = b3u("s3://ABC:XYZ:UVW@example-bucket") >>> boto3.client('s3', **b.cred())
下面的示例创建一个给定 URI(用于 S3 存储桶中的对象)的 S3 客户端,其中 URI 包括凭证(访问密钥ABC和秘密密钥XYZ)。然后使用相同的 URI 来检索对象本身的句柄:
>>> b = b3u("s3://ABC:XYZ@example-bucket/object.data") >>> c = boto3.client(**b.for_client()) >>> o = c.get_object(**b.for_get())
下面的示例创建一个 SSM 客户端,给定一个指定 AWS 区域us-east-1的 URI(在 Parameter Store 中命名特定的 a 参数):
>>> b = b3u("ssm://ABC:XYZ@/path/to/parameter?region_name=us-east-1") >>> boto3.client('ssm', **b.conf())
下面的示例在给定一个不包含凭证但指定 AWS 区域的 URI 的情况下创建一个 SSM 客户端。由于 URI 中不存在凭据,因此Boto3 Python 库将按照 Boto3 文档中指定的方式在其他位置查找它们):
>>> b = b3u("ssm:///path/to/parameter?region_name=us-east-1") >>> boto3.client('ssm', **b.conf())
开发人员说明
Pipenv 用于主库的依赖管理,减去阅读不支持 Pipenv 的文档。您可以使用以下命令安装所有依赖项:
pipenv install --dev
要发布新版本的库,请运行:
pipenv run python -m pip install --upgrade build twine pipenv run python -m build pipenv run twine upload dist/*
文档
可以使用Sphinx从源文件自动生成文档:
python -m pip install -e . cd docs python -m pip install -r requirements.txt sphinx-apidoc -f -E --templatedir=_templates -o _source .. && make html
测试和约定
使用pytest时执行所有单元测试并测量其覆盖率(有关配置详细信息,请参阅setup.cfg):
pipenv run python -m pytest --cov=b3u --cov-report term-missing
或者,所有单元测试都包含在模块本身中,并且可以使用 doctest 执行:
pipenv 运行 python src/b3u/b3u.py -v
使用Flake8强制执行样式约定:
pipenv run python -m flake8 src/ tests/
贡献
为了对源代码做出贡献,请在此库的GitHub 页面上打开一个问题或提交一个拉取请求。
版本控制
此库的版本号格式以及与版本号增量关联的库的更改符合Semantic Versioning 2.0.0。
麻省理工学院许可证
版权所有 (c) 2021 Nth Party, Ltd.
特此免费授予任何人获得本软件和相关文档文件(“软件”)的副本,以不受限制地处理本软件,包括但不限于使用、复制、修改、合并的权利、发布、分发、再许可和/或出售本软件的副本,并允许向其提供本软件的人这样做,但须符合以下条件:
上述版权声明和本许可声明应包含在本软件的所有副本或大部分内容中。
本软件按“原样”提供,不提供任何形式的明示或暗示保证,包括但不限于对适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任承担任何责任,无论是在合同、侵权或其他方面,由本软件或本软件的使用或其他交易引起或与之相关。软件。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。