在日常的云管理工作中,我们经常需要在不同的AWS配置文件和地域之间进行切换,以访问不同的资源和服务。本文将为你介绍一个Python工具,该工具可以帮助你轻松地在不同的AWS CLI配置文件和地域之间进行切换。
工具特点
- 列出 AWS CLI 配置文件:显示存储在
~/.aws/credentials
中的 AWS CLI 配置文件列表。 - 交互式切换配置文件:允许用户从列表中选择 AWS 配置文件。
- 设置环境变量:选择配置文件后,脚本将生成一个命令来在用户的 shell 中设置“AWS_PROFILE”环境变量。 该命令被复制到剪贴板以便于粘贴。
- 显示用户详细信息:选择配置文件后,脚本将显示所选配置文件的用户 ID、ARN、访问密钥和密钥。
使用方法
无参数运行将直接输出默认配置的身份信息:
awsx
使用
--profile
标志,工具将提示你选择一个AWS CLI配置文件。如果你已经知道你要使用的配置文件名,可以将其作为profilename
参数传递:awsx --profile
或
awsx --profile your_profilename
使用
--region
标志指定AWS地域:awsx --region us-west-1
代码详解
以下是一些代码片段的简短解释:
get_identity()
: 获取AWS的身份信息。get_parent_process_name()
: 获取父进程的名称,用于判断是在powershell
还是cmd
中运行。copy_env_command_to_clipboard()
: 根据操作系统和进程名称,生成一个设置AWS_PROFILE
环境变量的命令,并复制到剪贴板。list_aws_profiles()
: 列出所有的AWS CLI配置文件。get_region_from_profile()
: 从给定的AWS CLI配置文件中获取默认地域。switch_aws_profile_interactive()
: 交互式地提示用户选择一个AWS CLI配置文件,并返回其名称和默认地域。
工具使用了click
库来解析命令行参数,使用boto3
库来与AWS交互,使用pyperclip
库将文本复制到剪贴板,还使用了其他几个库来获取系统信息和读取配置文件。
总结
这是一个非常实用的小工具,可以帮助你更高效地管理多个AWS配置。如果你经常使用AWS CLI,并且有多个配置文件,那么这个工具会为你节省大量时间。你可以进一步定制和扩展此工具,以满足你的特定需求。
https://github.com/Xu-Hardy/awsx
https://pypi.org/project/awsx/
参考:
https://cloud.tencent.com/developer/article/2219745
https://packaging.python.org/en/latest/tutorials/packaging-projects/