SuperAPI AI 工具集

azure-cli

部署与运维

查看项目

更新于 10-16 06:04

技能介绍

用途

Azure CLI 是微软提供的跨平台命令行工具,用于管理 Azure 资源。该技能旨在帮助使用者掌握 Azure CLI,完成云基础设施管理、自动化与 DevOps 工作流。

主要能力

技能内容涵盖以下知识:

  • 核心概念:Azure 订阅与资源组架构、身份验证方法与凭据管理、资源提供程序组织与注册、全局参数与输出格式及查询语法、自动化脚本与错误处理。
  • 主要服务领域(约 66 个命令模块):
    • 计算:虚拟机、规模集、Kubernetes(AKS)、容器
    • 网络:虚拟网络、负载均衡器、CDN、流量管理器
    • 存储与数据:存储账户、Data Lake、Cosmos DB、数据库
    • 应用服务:App Service、Functions、容器应用
    • 数据库:SQL Server、MySQL、PostgreSQL、CosmosDB
    • 集成与消息:事件中心、服务总线、逻辑应用
    • 监控与管理:Azure Monitor、策略、RBAC、成本管理
    • AI 与机器学习:认知服务、机器学习
    • DevOps:Azure DevOps、管道、扩展

使用方式

安装

  • macOS:brew install azure-cli
  • Linux(Ubuntu/Debian):curl -sL https://aka.ms/InstallAzureCliLinux | bash
  • Windows:choco install azure-cli,或从 https://aka.ms/InstallAzureCliWindowsMSI 下载 MSI

验证安装:

az --version
az --help

初步步骤

# 1. 登录 Azure(打开浏览器进行身份验证)
az login

# 2. 查看订阅
az account list

# 3. 设置默认订阅(可选)
az account set --subscription "My Subscription"

# 4. 创建资源组
az group create -g myResourceGroup -l eastus

# 5. 列出资源组
az group list

常用命令

身份验证与账户:

az login
az login --service-principal -u APP_ID -p PASSWORD -t TENANT_ID
az login --identity
az logout
az account show
az account list
az account set --subscription SUBSCRIPTION

全局标志(可用于任何命令):

--subscription ID
--resource-group -g RG
--output -o json|table|tsv|yaml
--query JMESPATH_QUERY
--verbose -v
--debug
--help -h

资源组:

az group list
az group create -g RG -l LOCATION
az group delete -g RG
az group show -g RG
az group update -g RG --tags key=value

虚拟机(计算):

az vm create -g RG -n VM_NAME --image UbuntuLTS
az vm list -g RG
az vm show -g RG -n VM_NAME
az vm start -g RG -n VM_NAME
az vm stop -g RG -n VM_NAME
az vm restart -g RG -n VM_NAME
az vm delete -g RG -n VM_NAME

存储操作:

az storage account create -g RG -n ACCOUNT --sku Standard_LRS
az storage account list
az storage container create --account-name ACCOUNT -n CONTAINER
az storage blob upload --account-name ACCOUNT -c CONTAINER -n BLOB -f LOCAL_FILE
az storage blob download --account-name ACCOUNT -c CONTAINER -n BLOB -f LOCAL_FILE

Azure Kubernetes Service(AKS):

az aks create -g RG -n CLUSTER --node-count 2
az aks get-credentials -g RG -n CLUSTER
az aks list
az aks show -g RG -n CLUSTER
az aks delete -g RG -n CLUSTER

常见模式

输出格式化:

az vm list --query "[].{name: name, state: powerState}"
az vm list --query "[].name" -o tsv
az vm list --query "[?powerState=='VM running'].name"

自动化与脚本:

#!/bin/bash
set -e

VM_ID=$(az vm create \
  -g myRG \
  -n myVM \
  --image UbuntuLTS \
  --query id \
  --output tsv)

echo "Created VM: $VM_ID"

az vm show --ids "$VM_ID" --query provisioningState

批量操作:

az vm list -g myRG -d --query "[].id" -o tsv | xargs az vm delete --ids
az resource list --tag env=production

使用默认值:

az configure --defaults group=myRG subscription=mySubscription location=eastus
az vm create -n myVM --image UbuntuLTS

辅助脚本

该技能包含用于常见操作的 bash 辅助脚本:

  • azure-vm-status.sh — 检查订阅中虚拟机状态
  • azure-resource-cleanup.sh — 识别并移除未使用资源
  • azure-storage-analysis.sh — 分析存储账户使用情况与成本
  • azure-subscription-info.sh — 获取订阅配额与限制
  • azure-rg-deploy.sh — 带监控地部署基础设施

用法:

./scripts/azure-vm-status.sh -g myResourceGroup
./scripts/azure-storage-analysis.sh --subscription mySubscription

进阶主题

使用 JMESPath 查询输出:

az vm list --query "sort_by([], &name)"
az vm list --query "[?location=='eastus' && powerState=='VM running'].name"
az vm list --query "length([])"

错误处理:

az vm create -g RG -n VM --image UbuntuLTS
if [ $? -eq 0 ]; then
  echo "VM created successfully"
else
  echo "Failed to create VM"
  exit 1
fi

身份验证方法:

服务主体(自动化):

az login --service-principal \
  --username $AZURE_CLIENT_ID \
  --password $AZURE_CLIENT_SECRET \
  --tenant $AZURE_TENANT_ID

托管标识(Azure 资源):

az login --identity

基于令牌(CI/CD):

echo "$AZURE_ACCESS_TOKEN" | az login --service-principal -u $AZURE_CLIENT_ID --password-stdin --tenant $AZURE_TENANT_ID

提示与技巧

启用 Tab 补全:

eval "$(az completion init zsh)"
eval "$(az completion init bash)"

快速查找命令:

az find "create virtual machine"

对长时间操作使用 --no-wait:

az vm create -g RG -n VM --image UbuntuLTS --no-wait

保存常用参数:

az configure --defaults group=myRG location=eastus

与其他工具结合:

az vm list | jq '.[] | select(.powerState == "VM running") | .name'
az storage account list --query "[].name" -o tsv | xargs -I {} az storage account show -g RG -n {}

适用场景

云基础设施管理、资源自动化、CI/CD 与 DevOps 工作流,以及需要跨平台命令行操作 Azure 的服务与资源。

限制与补充说明

  • 兼容性:Azure CLI v2.50+、Azure 订阅。
  • 版本:1.0.0;许可证:MIT。
  • 官方文档:https://learn.microsoft.com/en-us/cli/azure/
  • 命令参考:https://learn.microsoft.com/en-us/cli/azure/reference-index
  • GitHub 仓库:https://github.com/Azure/azure-cli
  • 发布说明:https://github.com/Azure/azure-cli/releases
  • 该技能提到 references/REFERENCE.md 提供全面命令文档,可在 scripts/ 目录中查看辅助脚本。
  • 收费、价格、实际效果等具体信息暂未提供。