十二月 21, 2025
23 分钟阅读

Azure初级云工程师面试题

interview
career-advice
job-search
entry-level
Azure初级云工程师面试题
Milad Bonakdar

Milad Bonakdar

作者

围绕 VM、存储、VNet、NSG、RBAC、Entra ID、App Service、磁盘和监控,准备 Azure 初级云工程师面试中的高频实践问题。


介绍

Azure 初级云工程师面试通常会考察实用基础:VM、存储账户、VNet、NSG、Microsoft Entra ID、RBAC、资源组、App Service、托管磁盘和 Azure Monitor。好的回答不仅说明服务是什么,还能解释何时使用,以及部署前需要权衡什么。

使用本指南练习简洁、贴近工作的回答。优先掌握安全访问、最小权限、基础网络、可用性选择、成本意识,以及 Azure CLI 或门户的实际操作经验。


Azure 虚拟机

1. 什么是 Azure 虚拟机,应该在什么情况下使用它?

回答: Azure VM 是云中一种按需、可扩展的计算资源。

使用场景:

  • Web 托管和应用程序
  • 开发和测试环境
  • 扩展本地基础设施
  • 运行旧版应用程序
  • 批处理

VM 组件:

  • 计算: CPU 和内存
  • 存储: 操作系统磁盘、数据磁盘
  • 网络: 虚拟网络、公共/私有 IP
  • 管理: 资源组、可用性集
# 使用 Azure CLI 创建 VM
az vm create \
  --resource-group myResourceGroup \
  --name myVM \
  --image Ubuntu2204 \
  --size Standard_B2s \
  --admin-username azureuser \
  --generate-ssh-keys

# 列出 VM
az vm list --output table

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

常见程度: 非常常见 难度: 简单


2. 解释可用性集与可用性区域的区别。

回答:

可用性集:

  • 数据中心内的逻辑分组
  • 防止硬件故障
  • 99.95% SLA
  • 免费使用
  • 更新域和容错域

可用性区域:

  • 区域内物理上分离的数据中心
  • 防止数据中心故障
  • 99.99% SLA
  • 可能会产生数据传输成本
  • 更高的可用性
Loading diagram...

何时使用:

  • 可用性集: 经济高效,提供单数据中心保护
  • 可用性区域: 任务关键型,提供多数据中心保护

常见程度: 常见 难度: 中等


Azure 存储

3. Azure 存储有哪些不同类型?

回答: Azure 存储提供四种主要服务:

1. Blob 存储:

  • 用于非结构化数据的对象存储
  • 图像、视频、备份、日志
  • 访问层:热、冷、存档

2. 文件存储:

  • 完全托管的文件共享(SMB 协议)
  • 迁移场景
  • 共享应用程序数据

3. 队列存储:

  • 用于异步处理的消息队列
  • 解耦应用程序组件

4. 表存储:

  • NoSQL 键值存储
  • 结构化非关系数据
# 创建存储帐户
az storage account create \
  --name mystorageaccount \
  --resource-group myResourceGroup \
  --location eastus \
  --sku Standard_LRS

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

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

常见程度: 非常常见 难度: 简单-中等


Azure 网络

4. 什么是 Azure 虚拟网络 (VNet)?

回答: VNet 是 Azure 中一个逻辑隔离的网络。

主要组件:

Loading diagram...

特性:

  • 子网: 将 VNet 分割成更小的网络
  • NSG: 网络安全组(防火墙规则)
  • 服务终结点: 安全访问 Azure 服务
  • VNet 对等互连: 私密连接 VNet
  • VPN 网关: 连接到本地
# 创建 VNet
az network vnet create \
  --name myVNet \
  --resource-group myResourceGroup \
  --address-prefix 10.0.0.0/16 \
  --subnet-name mySubnet \
  --subnet-prefix 10.0.1.0/24

# 创建 NSG
az network nsg create \
  --resource-group myResourceGroup \
  --name myNSG

# 添加 NSG 规则(允许 HTTP)
az network nsg rule create \
  --resource-group myResourceGroup \
  --nsg-name myNSG \
  --name AllowHTTP \
  --priority 100 \
  --source-address-prefixes '*' \
  --destination-port-ranges 80 \
  --access Allow \
  --protocol Tcp

常见程度: 非常常见 难度: 中等


5. 什么是网络安全组 (NSG)?

回答: NSG 是一个网络级别的防火墙,用于过滤流量。

特性:

  • 入站和出站规则
  • 基于优先级(100-4096,数值越小优先级越高)
  • 允许或拒绝流量
  • 应用于子网或 NIC

默认规则:

  • 允许 VNet 流量
  • 允许 Azure 负载均衡器
  • 拒绝所有其他入站流量
  • 允许所有出站流量
# 创建 NSG 规则(允许来自特定 IP 的 SSH)
az network nsg rule create \
  --resource-group myResourceGroup \
  --nsg-name myNSG \
  --name AllowSSH \
  --priority 110 \
  --source-address-prefixes 203.0.113.0/24 \
  --destination-port-ranges 22 \
  --access Allow \
  --protocol Tcp \
  --direction Inbound

# 将 NSG 与子网关联
az network vnet subnet update \
  --resource-group myResourceGroup \
  --vnet-name myVNet \
  --name mySubnet \
  --network-security-group myNSG

常见程度: 非常常见 难度: 简单-中等


身份和访问管理

6. 什么是 Microsoft Entra ID?

回答: Microsoft Entra ID(以前称为 Azure Active Directory 或 Azure AD)是 Microsoft 基于云的身份和访问管理服务。

主要特性:

  • 单一登录 (SSO)
  • 多因素身份验证 (MFA)
  • 应用程序管理
  • 设备管理
  • B2B 和 B2C 场景

组件:

  • 用户: 个人身份
  • 组: 用户集合
  • 应用程序: 注册的应用程序
  • 托管身份: 由 Azure 为应用和服务管理的身份
  • 角色: 权限集

常见程度: 常见 难度: 简单


7. 解释 Azure 中的基于角色的访问控制 (RBAC)。

回答: RBAC 管理对 Azure 资源的访问。

内置角色:

  • 所有者: 完全访问权限,包括访问管理
  • 参与者: 创建和管理资源(没有访问管理权限)
  • 读者: 仅查看资源
  • 用户访问管理员: 管理用户访问

范围级别:

  1. 管理组
  2. 订阅
  3. 资源组
  4. 资源

对于初级岗位,面试官通常希望你提到最小权限原则:在尽可能窄的范围内分配足够小的角色。例如,应用只需要访问一个存储账户时,不应让它的托管身份拥有整个订阅的权限。

# 将角色分配给用户
az role assignment create \
  --assignee [email protected] \
  --role "Virtual Machine Contributor" \
  --resource-group myResourceGroup

# 列出角色分配
az role assignment list \
  --resource-group myResourceGroup \
  --output table

# 创建自定义角色
az role definition create \
  --role-definition '{
    "Name": "Custom VM Operator",
    "Description": "Can start and stop VMs",
    "Actions": [
      "Microsoft.Compute/virtualMachines/start/action",
      "Microsoft.Compute/virtualMachines/powerOff/action"
    ],
    "AssignableScopes": ["/subscriptions/{subscription-id}"]
  }'

常见程度: 非常常见 难度: 中等


Azure 核心概念

8. 什么是 Azure 资源组?

回答: 资源组 是 Azure 资源的逻辑容器。

特点:

  • 所有资源必须位于资源组中
  • 资源只能位于一个资源组中
  • 资源可以在组之间移动
  • 组可以跨越区域
  • 删除组会删除所有资源

最佳实践:

  • 按生命周期分组(开发、测试、生产)
  • 按应用程序分组
  • 应用标签进行组织
  • 使用一致的命名约定
# 创建资源组
az group create \
  --name myResourceGroup \
  --location eastus \
  --tags Environment=Production Application=WebApp

# 列出组中的资源
az resource list \
  --resource-group myResourceGroup \
  --output table

# 删除资源组(以及所有资源)
az group delete \
  --name myResourceGroup \
  --yes --no-wait

常见程度: 非常常见 难度: 简单


Azure 应用服务

9. 什么是 Azure 应用服务,应该在什么情况下使用它?

回答: Azure 应用服务 是一个完全托管的平台,用于构建 Web 应用、移动后端和 RESTful API。

主要特性:

  • 内置自动缩放
  • 持续部署 (CI/CD)
  • 多种语言支持(.NET、Java、Node.js、Python、PHP)
  • 自定义域和 SSL
  • 用于暂存的部署槽

应用服务计划:

层级使用场景特性成本
免费开发/测试共享基础设施免费
共享低流量应用共享基础设施非常低
基本开发/测试专用 VM,手动缩放
标准生产自动缩放,暂存槽中等
高级企业增强的性能,VNet
# 创建应用服务计划
az appservice plan create \
  --name myAppServicePlan \
  --resource-group myResourceGroup \
  --sku B1 \
  --is-linux

# 创建 Web 应用
az webapp create \
  --name myWebApp \
  --resource-group myResourceGroup \
  --plan myAppServicePlan \
  --runtime "NODE|24-lts"

# 从 GitHub 部署
az webapp deployment source config \
  --name myWebApp \
  --resource-group myResourceGroup \
  --repo-url https://github.com/user/repo \
  --branch main \
  --manual-integration

# 配置应用设置
az webapp config appsettings set \
  --name myWebApp \
  --resource-group myResourceGroup \
  --settings DATABASE_URL="..." API_KEY="..."

# 创建部署槽
az webapp deployment slot create \
  --name myWebApp \
  --resource-group myResourceGroup \
  --slot staging

# 交换槽(从暂存到生产)
az webapp deployment slot swap \
  --name myWebApp \
  --resource-group myResourceGroup \
  --slot staging

何时使用:

  • Web 应用程序和 API
  • 移动应用程序后端
  • 微服务
  • 需要托管基础设施
  • 想要内置的 DevOps 集成

与虚拟机对比:

  • 应用服务: PaaS,托管,更简单,控制较少
  • VM: IaaS,完全控制,更复杂

常见程度: 非常常见 难度: 简单-中等


10. 解释 Azure 托管磁盘及其类型。

回答: 托管磁盘 是由 Azure 管理的块级别存储卷。

磁盘类型:

类型性能IOPS吞吐量使用场景
Ultra 磁盘最高高达 160K高达 2000 MB/sIO 密集型工作负载
高级 SSD高达 20K高达 900 MB/s生产工作负载
标准 SSD中等高达 6K高达 750 MB/sWeb 服务器,开发/测试
标准 HDD基本高达 2K高达 500 MB/s备份,不频繁访问
# 创建托管磁盘
az disk create \
  --resource-group myResourceGroup \
  --name myDataDisk \
  --size-gb 128 \
  --sku Premium_LRS

# 将磁盘附加到 VM
az vm disk attach \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name myDataDisk

# 创建快照
az snapshot create \
  --resource-group myResourceGroup \
  --name mySnapshot \
  --source myDataDisk

# 从快照创建磁盘
az disk create \
  --resource-group myResourceGroup \
  --name myRestoredDisk \
  --source mySnapshot

# 调整磁盘大小
az disk update \
  --resource-group myResourceGroup \
  --name myDataDisk \
  --size-gb 256

托管磁盘 vs 非托管磁盘:

托管磁盘:

  • Azure 管理存储帐户
  • 简化管理
  • Azure 托管的可用性和可靠性功能
  • 更容易扩展
  • 快照和备份支持

非托管磁盘(旧版):

  • 你管理存储帐户
  • 手动缩放限制
  • 较低的 SLA
  • 更复杂

最佳实践:

  • 对生产数据库使用高级 SSD
  • 对 Web 服务器使用标准 SSD
  • 启用静态加密
  • 定期快照进行备份
  • 对关键工作负载使用可用性区域

常见程度: 常见 难度: 简单-中等


监控和管理

11. 什么是 Azure Monitor,你如何使用它?

回答: Azure Monitor 收集、分析和处理来自 Azure 和本地环境的遥测数据。

主要组件:

Loading diagram...

1. 指标:

# 查看 VM 指标
az monitor metrics list \
  --resource /subscriptions/.../resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/myVM \
  --metric "Percentage CPU" \
  --start-time 2024-11-26T00:00:00Z \
  --end-time 2024-11-26T23:59:59Z

# 创建指标警报
az monitor metrics alert create \
  --name high-cpu-alert \
  --resource-group myResourceGroup \
  --scopes /subscriptions/.../resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/myVM \
  --condition "avg Percentage CPU > 80" \
  --window-size 5m \
  --evaluation-frequency 1m \
  --action /subscriptions/.../resourceGroups/myRG/providers/microsoft.insights/actionGroups/myActionGroup

2. Log Analytics:

# 创建 Log Analytics 工作区
az monitor log-analytics workspace create \
  --resource-group myResourceGroup \
  --workspace-name myWorkspace \
  --location eastus

# 查询日志 (KQL - Kusto 查询语言)
az monitor log-analytics query \
  --workspace myWorkspace \
  --analytics-query "AzureActivity | where TimeGenerated > ago(1h) | summarize count() by OperationName"

常用 KQL 查询:

// 失败的登录尝试
SigninLogs
| where TimeGenerated > ago(24h)
| where ResultType != 0
| summarize FailedAttempts = count() by UserPrincipalName
| order by FailedAttempts desc

// VM 性能
Perf
| where TimeGenerated > ago(1h)
| where ObjectName == "Processor" and CounterName == "% Processor Time"
| summarize avg(CounterValue) by Computer
| order by avg_CounterValue desc

// 应用程序错误
AppExceptions
| where TimeGenerated > ago(24h)
| summarize ErrorCount = count() by ProblemId, OuterMessage
| order by ErrorCount desc

3. Application Insights:

# 创建 Application Insights
az monitor app-insights component create \
  --app myAppInsights \
  --location eastus \
  --resource-group myResourceGroup \
  --application-type web

# 获取检测密钥
az monitor app-insights component show \
  --app myAppInsights \
  --resource-group myResourceGroup \
  --query instrumentationKey

代码中的 Application Insights:

// Node.js 示例
const appInsights = require('applicationinsights');
appInsights.setup('YOUR_INSTRUMENTATION_KEY')
  .setAutoDependencyCorrelation(true)
  .setAutoCollectRequests(true)
  .setAutoCollectPerformance(true)
  .setAutoCollectExceptions(true)
  .setAutoCollectDependencies(true)
  .start();

const client = appInsights.defaultClient;

// 跟踪自定义事件
client.trackEvent({name: "UserLogin", properties: {userId: "123"}});

// 跟踪自定义指标
client.trackMetric({name: "ProcessingTime", value: 150});

4. 操作组:

# 创建操作组(电子邮件通知)
az monitor action-group create \
  --name myActionGroup \
  --resource-group myResourceGroup \
  --short-name myAG \
  --email-receiver name=AdminEmail [email protected]

监控最佳实践:

  • 为关键指标设置警报
  • 使用 Log Analytics 进行集中日志记录
  • 创建仪表板以便快速概览
  • 为所有资源启用诊断设置
  • 使用 Application Insights 进行应用程序监控

常见程度: 非常常见 难度: 中等


结论

准备初级 Azure 云工程师面试需要理解核心服务和云概念。重点关注:

  1. 虚拟机: 可用性集/区域,大小调整,管理
  2. 存储: Blob、文件、队列、表存储类型
  3. 网络: VNet、子网、NSG、连接
  4. 身份: Microsoft Entra ID、RBAC、访问管理
  5. 核心概念: 资源组、区域、订阅

练习使用 Azure 门户和 Azure CLI,这样你不仅能解释定义,也能说明在真实环境中会采取哪些步骤。

Newsletter subscription

真正有效的每周职业建议

将最新见解直接发送到您的收件箱

停止申请,开始被录用

使用全球求职者信赖的AI驱动优化,将您的简历转变为面试磁铁。

免费开始

分享这篇文章

快50%获得工作

使用专业AI增强简历的求职者平均在5周内找到工作,而标准时间是10周。停止等待,开始面试。