命令行切换AWS CLI配置文件


在日常的云管理工作中,我们经常需要在不同的AWS配置文件和地域之间进行切换,以访问不同的资源和服务。本文将为你介绍一个Python工具,该工具可以帮助你轻松地在不同的AWS CLI配置文件和地域之间进行切换。

工具特点

  1. 列出 AWS CLI 配置文件:显示存储在 ~/.aws/credentials 中的 AWS CLI 配置文件列表。
  2. 交互式切换配置文件:允许用户从列表中选择 AWS 配置文件。
  3. 设置环境变量:选择配置文件后,脚本将生成一个命令来在用户的 shell 中设置“AWS_PROFILE”环境变量。 该命令被复制到剪贴板以便于粘贴。
  4. 显示用户详细信息:选择配置文件后,脚本将显示所选配置文件的用户 ID、ARN、访问密钥和密钥。

使用方法

  1. 无参数运行将直接输出默认配置的身份信息:

    awsx
  2. 使用--profile标志,工具将提示你选择一个AWS CLI配置文件。如果你已经知道你要使用的配置文件名,可以将其作为profilename参数传递:

    awsx --profile

    awsx --profile your_profilename
  3. 使用--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/


文章作者: AWS Learner
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 AWS Learner !
评论
  目录