随机
Enter 搜索 ↑↓ 切换 Esc 清空

az

命令

Azure CLI 命令行工具

az

Azure CLI 命令行工具

补充说明

az 是 Microsoft Azure 官方命令行工具,用于管理 Azure 订阅中的资源。支持 VM、存储、网络、容器、Web 应用等多种 Azure 服务。

语法

az [group] [subgroup] [command] [parameters]

登录与配置

# 登录
az login
az login --tenant <tenant-id>

# 使用服务主体登录
az login --service-principal -u <app-id> -p <password-or-cert> --tenant <tenant-id>

# 登出
az account clear

# 列出订阅
az account list
az account list --all

# 设置订阅
az account set --subscription "subscription-name"
az account set --subscription <subscription-id>

# 显示当前订阅
az account show

# 刷新令牌
az account get-access-token

# 配置默认输出格式
az configure --defaults location=eastus
az configure --defaults group=my-resource-group

资源组

# 列出资源组
az group list

# 创建资源组
az group create --name myResourceGroup --location eastus

# 删除资源组
az group delete --name myResourceGroup
az group delete --name myResourceGroup --no-wait

# 列出资源
az resource list

# 标签管理
az group update --resource-group myGroup --set tags.Environment=Test
az tag create --resource-id /subscriptions/xxx/resourceGroups/myGroup --tags "Environment=Test"

虚拟机

# 创建 VM
az vm create \
    --resource-group myResourceGroup \
    --name myVM \
    --image UbuntuLTS \
    --admin-username azureuser \
    --generate-ssh-keys

# 列出 VM
az vm list
az vm list --resource-group myResourceGroup

# 显示 VM 详情
az vm show --resource-group myResourceGroup --name myVM

# 启动/停止/重启 VM
az vm start --resource-group myResourceGroup --name myVM
az vm stop --resource-group myResourceGroup --name myVM
az vm restart --resource-group myResourceGroup --name myVM

# 删除 VM
az vm delete --resource-group myResourceGroup --name myVM

# 列出 VM 大小
az vm list-sizes --location eastus

# 重置 SSH
az vm user update --resource-group myResourceGroup --name myVM --username azureuser --ssh-key-value ~/.ssh/id_rsa.pub

存储

# 创建存储账户
az storage account create \
    --name mystorageaccount \
    --resource-group myResourceGroup \
    --sku Standard_LRS

# 列出存储账户
az storage account list --resource-group myResourceGroup

# 获取连接字符串
az storage account show-connection-string --name mystorageaccount

# 创建容器
az storage container create --name mycontainer --account-name mystorageaccount

# 列出容器
az storage container list --account-name mystorageaccount

# 上传文件
az storage blob upload \
    --account-name mystorageaccount \
    --container-name mycontainer \
    --name myblob \
    --file ./localfile.txt

# 下载文件
az storage blob download \
    --account-name mystorageaccount \
    --container-name mycontainer \
    --name myblob \
    --file ./download.txt

# 列出 blob
az storage blob list --account-name mystorageaccount --container-name mycontainer

# SAS 令牌
az storage blob generate-sas \
    --account-name mystorageaccount \
    --container-name mycontainer \
    --name myblob \
    --permissions r \
    --expiry 2024-12-31

网络

# 创建虚拟网络
az network vnet create \
    --resource-group myResourceGroup \
    --name myVnet \
    --subnet-name mySubnet

# 列出虚拟网络
az network vnet list

# 创建子网
az network vnet subnet create \
    --resource-group myResourceGroup \
    --vnet-name myVnet \
    --name mySubnet \
    --address-prefixes 10.0.1.0/24

# 创建公共 IP
az network public-ip create \
    --resource-group myResourceGroup \
    --name myPublicIP

# 创建网络安全组
az network nsg create \
    --resource-group myResourceGroup \
    --name myNSG

# 添加安全规则
az network nsg rule create \
    --resource-group myResourceGroup \
    --nsg-name myNSG \
    --name allow-http \
    --protocol tcp \
    --priority 100 \
    --destination-port-range 80 \
    --access allow

# 列出网络接口
az network nic list

# 创建负载均衡器
az network lb create \
    --resource-group myResourceGroup \
    --name myLoadBalancer \
    --sku Standard

Web 应用

# 创建 App Service 计划
az appservice plan create \
    --resource-group myResourceGroup \
    --name myAppServicePlan \
    --sku B1 \
    --is-linux

# 创建 Web 应用
az webapp create \
    --resource-group myResourceGroup \
    --plan myAppServicePlan \
    --name myWebApp \
    --deployment-container-image-name nginx

# 列出 Web 应用
az webapp list

# 部署
az webapp up --name myWebApp --location eastus
az webapp up --runtime PYTHON|3.9 --name myWebApp --location eastus

# 配置
az webapp config appsettings set \
    --resource-group myResourceGroup \
    --name myWebApp \
    --settings WEBSITES_PORT=8080

# 重启
az webapp restart --resource-group myResourceGroup --name myWebApp

# 启用诊断日志
az webapp log config \
    --resource-group myResourceGroup \
    --name myWebApp \
    --web-server-logging filesystem

容器

# 创建容器注册表
az acr create \
    --resource-group myResourceGroup \
    --name myacr \
    --sku Basic

# 登录注册表
az acr login --name myacr

# 构建并推送镜像
az acr build \
    --registry myacr \
    --image myapp:v1 \
    --file Dockerfile ./

# 列出镜像
az acr repository list --name myacr

# 创建 AKS 集群
az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-count 3 \
    --generate-ssh-keys

# 获取 kubeconfig
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster

# 列出 AKS 集群
az aks list

# 节点池操作
az aks nodepool add \
    --cluster-name myAKSCluster \
    --name npool \
    --resource-group myResourceGroup \
    --node-count 2

数据库

# 创建 SQL 数据库
az sql server create \
    --name myserver \
    --resource-group myResourceGroup \
    --admin-user sqluser \
    --admin-password <password>

az sql db create \
    --resource-group myResourceGroup \
    --server myserver \
    --name mydb \
    --service-objective S0

# 创建 MySQL
az mysql server create \
    --resource-group myResourceGroup \
    --name mydbserver \
    --admin-user myadmin \
    --admin-password <password> \
    --sku-name B_Gen5_1

# 创建 PostgreSQL
az postgres server create \
    --resource-group myResourceGroup \
    --name mypgserver \
    --admin-user pguser \
    --admin-password <password> \
    --sku-name B_Gen5_1

# 创建 Cosmos DB
az cosmosdb create \
    --name mycosmosdb \
    --resource-group myResourceGroup \
    --kind MongoDB

# 防火墙规则
az sql server firewall-rule create \
    --server myserver \
    --resource-group myResourceGroup \
    --name allowip \
    --start-ip-address 0.0.0.0 \
    --end-ip-address 255.255.255.255

函数应用

# 创建函数应用
az functionapp create \
    --resource-group myResourceGroup \
    --consumption-plan-location eastus \
    --name myFunctionApp \
    --storage-account mystorageaccount \
    --runtime python

# 部署函数
az functionapp deployment source config-zip \
    --resource-group myResourceGroup \
    --name myFunctionApp \
    --src function.zip

# 列出函数
az functionapp function list \
    --resource-group myResourceGroup \
    --name myFunctionApp

Key Vault

# 创建 Key Vault
az keyvault create \
    --name mykeyvault \
    --resource-group myResourceGroup \
    --location eastus

# 设置密钥
az keyvault secret set \
    --vault-name mykeyvault \
    --name mysecret \
    --value "mysecretvalue"

# 获取密钥
az keyvault secret show \
    --vault-name mykeyvault \
    --name mysecret

# 创建密钥
az keyvault key create \
    --vault-name mykeyvault \
    --name mykey

# 列出密钥
az keyvault key list --vault-name mykeyvault

监控与日志

# 查看活动日志
az monitor activity-log list

# 列出告警规则
az monitor alert list

# 创建告警
az monitor metrics alert create \
    --name cpu-alert \
    --resource-group myResourceGroup \
    --scopes /subscriptions/xxx/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM \
    --condition "avg CPU > 80" \
    --description "CPU alert"

# 查看指标
az monitor metrics list \
    --resource /subscriptions/xxx/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM \
    --metric "Percentage CPU"

# 启用诊断设置
az monitor diagnostic-settings create \
    --name myDiag \
    --resource /subscriptions/xxx/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM \
    --workspace /subscriptions/xxx/resourceGroups/myResourceGroup/providers/Microsoft.OperationalInsights/workspaces/myWorkspace

常用选项

# 指定输出格式
az vm list --output table
az vm list --output json
az vm list --output tsv
az vm list --output yaml

# 使用查询
az vm list --query "[?location=='eastus'].{Name:name, State:powerState}"

# 静默模式
az vm list --quiet

# 调试模式
az vm list --debug

# 显示帮助
az vm --help
az vm create --help