用Python构建开源跨平台的Azure CLI
作者:Dan Taylor,微软
背景
微软Azure是一个跨越全球五十多个数据中心的云计算平台,提供数百种服务。作为一个大型云服务,为客户提供最佳的系统部署和管理工具非常重要。
从一开始,我们就为开发者、管理员和架构师提供了各种工具和库,以执行各种操作:从在虚拟网络中启动虚拟机到部署带有PostgreSQL数据库的Web应用程序。当然,最受欢迎的工具之一是Azure的“az”命令行界面。为了构建这个包含数千个命令以及第三方扩展的开源工具,我们选择了Python。
Azure CLI
为什么选择Python
起初,Azure命令行体验作为PowerShell模块为Windows用户提供,对于其他用户,包括使用macOS和Linux的用户,则是一个基于Node.js的CLI。然而,显著的增长导致了难以解决的工程复杂性。
转向Python使我们能够产生一个在所有平台上表现相同的实现。每个命令都是围绕一个或多个来自Python的Azure SDK的函数的包装器,这确保了开发者可以构建具有相同功能的脚本。而且一致的命令行约定使我们能够为所有用户提供一套指令。
因为Python易于为我们的所有平台分发,我们可以提供遵循正确约定的平台特定包。在Windows上,您可以使用包含所有必要组件的常规安装程序。在Linux上,我们在许多发行版的仓库中提供包,例如Ubuntu用户可以使用apt-get;在macOS上,我们推荐Homebrew。遵循平台约定使我们的用户确信软件是值得信赖的,而Python提供了灵活性来提供它。
Azure CLI的特点
得益于Python的灵活性和强大的包生态系统,Azure CLI支持自动补全(在支持的shell