Azure 开发人员 CLI 与 Azure CLI 概述

Azure 提供了多个命令行工具来帮助用户与云服务交互。 最常用的两种工具是 Azure 开发人员 CLIAzure CLI。 虽然这两个选项都使用户能够在 Azure 上管理和部署资源,但它们专为不同的受众和用例而设计。 以下部分概述了每个工具,突出显示其差异,并提供比较,以帮助你为不同情况选择最佳工具。

什么是 Azure Developer CLI?

Azure 开发人员 CLI (azd) 是一种以开发人员为中心的命令行工具,旨在简化在 Azure 上构建、预配、部署和管理全堆栈应用的过程。 主要功能包括:

  • 面向应用生命周期阶段的高级命令,例如预配和部署
  • 用于将基础结构定义为应用的代码和部署配置的模板系统
  • 应用资源的自动预配和部署
  • GitHub Actions 或 Azure Pipelines 的内置 CI/CD 管道设置
  • 用于常见的应用体系结构的入门级应用模板库

什么是 Azure CLI?

Azure CLI (az) 是用于管理 Azure 资源的常规用途命令行接口。 它提供了一组全面的命令,用于以编程方式或交互方式创建、配置、删除和监视资源。 主要功能包括:

  • 对 Azure 资源的精细管理控制
  • 支持脚本编写和任务自动化
  • 与各种 Azure 服务和工具集成
  • 跨多个租户、订阅和环境进行资源管理

工具有何不同?

虽然 Azure 开发人员 CLI 和 Azure CLI 都为 Azure 提供命令行接口,但它们为不同的用途和受众提供服务:

  • Azure 开发人员 CLI:重点介绍如何通过提供用于生成和部署应用程序的有意见的工作流来简化开发人员体验。 它抽象化了资源管理的复杂性,专为以应用程序为中心的任务量身定做。
  • Azure CLI:提供对 Azure 资源的精细控制,专为更广泛的受众设计,包括 IT 管理员、DevOps 工程师和开发人员。 它提供管理单个资源的灵活性,但需要了解特定的 Azure 服务。

比较命令

可以打印这两个 CLI 工具的可用命令,以可视化这些差异。 例如,运行 Azure 开发人员 CLI 命令 azd help 以查看有关工具和可用命令的信息:

Usage
  azd [command]

Commands
  Configure and develop your app
    auth        : Authenticate with Azure.
    config      : Manage azd configurations (ex: default Azure subscription, ___location).
    hooks       : Develop, test and run hooks for an application. (Beta)
    init        : Initialize a new application.
    restore     : Restores the application's dependencies. (Beta)
    template    : Find and view template details. (Beta)

  Manage Azure resources and app deployments
    deploy      : Deploy the application's code to Azure.
    down        : Delete Azure resources for an application.
    env         : Manage environments.
    package     : Packages the application's code to be deployed to Azure. (Beta)
    provision   : Provision the Azure resources for an application.
    up          : Provision Azure resources, and deploy your project with a single command.

  Monitor, test and release your app
    monitor     : Monitor a deployed application. (Beta)
    pipeline    : Manage and configure your deployment pipelines. (Beta)
    show        : Display information about your app and its resources.

上述输出中的命令映射到高级开发工作流问题,例如管理应用部署、应用配置和监视。

但是,如果为 Azure CLI 运行 az help 命令,则会看到类似于以下输出的输出:

Group
    az

Subgroups:
    account                       : Manage Azure subscription information.
    acr                           : Manage private registries with Azure Container Registries.
    ad                            : Manage Microsoft Entra ID (formerly known as Azure Active
                                    Directory, Azure AD, AAD) entities needed for Azure role-based
                                    access control (Azure RBAC) through Microsoft Graph API.
    advisor                       : Manage Azure Advisor.
    afd                           : Manage Azure Front Door Standard/Premium.
    aks                           : Manage Azure Kubernetes Services.
    ams                           : Manage Azure Media Services resources.
    apim                          : Manage Azure API Management services.
    appconfig                     : Manage App Configurations.
    appservice                    : Manage App Service plans.
    aro                           : Manage Azure Red Hat OpenShift clusters.
    backup                        : Manage Azure Backups.
    batch                         : Manage Azure Batch.
    bicep                         : Bicep CLI command group.
    billing                       : Manage Azure Billing.
    bot                           : Manage Microsoft Azure Bot Service.
    cache                         : Commands to manage CLI objects cached using the `--defer`
    
    (omitted for brevity...)

在前面的输出中,所有命令都侧重于管理特定 Azure 资源的配置,例如 Azure 容器注册表或 Azure 计费服务。

比较功能

下表更详细地介绍了 Azure 开发人员 CLI 与 Azure CLI 之间的主要差异:

功能性 Azure 开发人员命令行界面(azd Azure CLI (az
主要受众 专注于构建云原生应用的开发人员 开发人员、IT 管理员和 DevOps 工程师
主要用例 端到端应用生命周期管理 Azure 资源管理和管理
任务类型 预配和部署应用资源、CI/CD 管道设置 资源管理和脚本
命令行为 针对常见工作流程的个性化高级命令 用于精细控制的灵活低级别命令
模板支持 包括常见体系结构的预定义模板 无模板;需要手动资源配置
IaC 支持 针对 IaC 工具(如 Bicep 和 Terraform)的本机支持 需要单独的 IaC 设置和集成
CI/CD 集成 为 GitHub Actions 或 Azure Pipelines 自动设置管道设置 无内置 CI/CD 自动化

比较用例

选择正确的工具取决于具体的需求和要完成的任务。 下面是每个工具在不同场景中的优势示例,帮助你决定哪个工具适合你的工作流程。

何时使用 Azure 开发人员 CLI

Azure 开发人员 CLI 最适合需要管理应用程序开发和部署的端到端工作流的方案。 示例用例包括:

  • 以可移植、可重复的方式打包、预配和部署全堆栈云原生应用
  • 快速使用预定义模板来预配示例应用架构以进行原型开发
  • 为 GitHub Actions 或 Azure Pipelines 设置 CI/CD 管道,并尽量减少所需的努力

何时使用 Azure CLI

Azure CLI 非常适合需要对单个 Azure 资源或高级脚本功能进行精细控制的方案。 示例用例包括:

  • 创建、配置或删除 Azure 资源
  • 使用自定义脚本自动执行资源管理
  • 监视和排查 Azure 资源问题
  • 将资源管理集成到更广泛的 DevOps 工作流中

通过了解这些用例,可以确定哪种工具更适合特定需求,或者结合使用这两种工具来最大限度地提高效率。

结论

Azure 开发人员 CLI 和 Azure CLI 是针对不同受众和用例设计的补充工具。 Azure 开发人员 CLI 简化了开发人员的应用打包、预配和部署,而 Azure CLI 为管理任务提供精细的控制。 根据角色和要求,可以使用一种或两种工具在 Azure 上实现目标。