Ngân hàng đề — Microsoft Azure Developer

Tìm thấy 409 câu.

Câu 171 Containers

Why might a developer choose Azure Container Apps over Azure App Service when deploying a containerized application?

  1. A

    Azure App Service allows for more complex networking configurations than Azure Container Apps.

  2. B

    Azure Container Apps automatically scales to zero when not in use, reducing costs for sporadic workloads.

  3. C

    Azure Container Apps is more cost-effective for long-running applications.

  4. D

    Azure Container Apps provides built-in support for SQL databases.

Xem giải thích

Đáp án

B — Container Apps tự co về 0 khi không dùng, nên giảm chi phí

Vì sao đúng

Đây là khác biệt kinh tế rõ rệt nhất giữa hai dịch vụ. Container Apps dùng KEDA làm bộ máy co giãn, và KEDA co được xuống 0 bản chạy khi không có yêu cầu hay thông điệp nào — tức là không trả tiền trong khoảng đó. App Service thì luôn giữ ít nhất một bản chạy trên App Service Plan mà bạn đã trả tiền theo giờ.

Với ứng dụng có lưu lượng thất thường hoặc chạy theo sự kiện, chênh lệch này rất lớn.

Vì sao các phương án khác sai

  • **C. Container Apps rẻ hơn cho ứng dụng chạy liên tục — sai ngược: khi tải đều và luôn có việc thì ưu thế co về 0 biến mất, và App Service Plan trả theo giờ thường rẻ hơn.
  • A. App Service cho cấu hình mạng phức tạp hơn — Container Apps tích hợp VNet và có service mesh nội bộ, thường linh hoạt hơn về mạng.
  • D. Container Apps hỗ trợ sẵn cơ sở dữ liệu SQL — không có tính năng nào như vậy; cơ sở dữ liệu là dịch vụ riêng.
Câu 172 App Services

What is the PowerShell command line to swap a web app between two deployment slots?

  1. A

    Swap-AzWebAppSlot -ResourceGroupName "myResourceGroup" -Name "myApp" -SourceSlotName "staging" -DestinationSlotName "production"

  2. B

    Move-AzWebAppSlot -ResourceGroupName "myResourceGroup" -Name "myApp" -FromSlot "staging" -ToSlot "production"

  3. C

    Transfer-AzWebAppSlot -ResourceGroupName "myResourceGroup" -Name "myApp" -Source "staging" -Destination "production"

  4. D

    Set-AzWebAppSlot -ResourceGroupName "myResourceGroup" -Name "myApp" -SourceSlot "staging" -DestinationSlot "production"

Xem giải thích

Đáp án

A — Swap-AzWebAppSlot

Vì sao đúng

Azure PowerShell theo quy ước đặt tên <Động từ>-Az<Danh từ>, trong đó động từ phải nằm trong tập động từ chuẩn của PowerShell. Thao tác hoán đổi hai deployment slot dùng động từ Swap, nên lệnh là Swap-AzWebAppSlot.

Cách nhớ: tên lệnh mô tả đúng thứ đang xảy ra — hai slot đổi chỗ cho nhau, chứ không phải một cái được chuyển sang cái kia.

Vì sao các phương án khác sai

  • B. Move-AzWebAppSlot — Move là động từ chuẩn của PowerShell nhưng không có lệnh này; và về nghĩa thì "move" gợi ý chuyển một chiều, khác với hoán đổi.
  • C. Transfer-AzWebAppSlot — Transfer không phải động từ chuẩn của PowerShell.
  • D. Set-AzWebAppSlot — Set dùng để sửa cấu hình của slot, không thực hiện hoán đổi.
Câu 173 Chọn nhiều đáp án
You need to reduce read latency for the retail store solution.
What are two possible ways to achieve the goal? Each correct answer presents a complete solution.
NOTE: Each correct selection is worth one point.
  1. A Create a new composite index for the store location data queries in Azure Cosmos DB. Modify the queries to support parameterized SQL and update the Azure Function app to call the new queries.
  2. B Provision an Azure Cosmos DB dedicated gateway. Update the Azure Function app connection string to use the new dedicated gateway endpoint.
  3. C Configure Azure Cosmos DB consistency to session consistency. Cache session tokens in a new Azure Redis cache instance after every write. Update reads to use the session token stored in Azure Redis.
  4. D Provision an Azure Cosmos DB dedicated gateway. Update blob storage to use the new dedicated gateway endpoint.
  5. E Configure Azure Cosmos DB consistency to strong consistency. Increase the RUs for the container supporting store location data.
Xem giải thích

🧩 Giải thích nội dung câu hỏi

Câu hỏi này thuộc kỳ thi chứng chỉ Microsoft Azure (có thể là AZ-204 hoặc tương tự), tập trung vào việc giảm độ trễ đọc (read latency) cho giải pháp cửa hàng bán lẻ (retail store solution) sử dụng Azure Cosmos DB. Mục tiêu là xác định hai cách khả thi để đạt được điều này, mỗi đáp án đúng là một giải pháp hoàn chỉnh (worth 1 point).

Giải pháp liên quan đến việc tối ưu hóa truy vấn dữ liệu vị trí cửa hàng (store location data) trong Cosmos DB, có thể thông qua Azure Function app. Các yếu tố ảnh hưởng đến read latency bao gồm: indexing, kết nối (gateway/direct), consistency level, throughput (RUs), và caching. Câu hỏi yêu cầu chọn hai phương án độc lập, dựa trên best practices của Azure Cosmos DB (cập nhật đến 2026: hỗ trợ composite indexes nâng cao, direct connectivity ưu tiên, autoscale RUs, và multi-region low latency với global distribution).

📘 Tài liệu tham khảo chính:

✅ Đáp án đúng (hai phương án)

Hai đáp án đúng là:

  1. Create a new composite index for the store location data queries in Azure Cosmos DB. Modify the queries to support parameterized SQL and update the Azure Function app to call the new queries.
    🛠️ Lý do: Composite index giúp Cosmos DB tối ưu hóa truy vấn phức hợp trên dữ liệu vị trí cửa hàng (như location-based queries), giảm scan toàn bộ container → giảm read latency đáng kể (có thể lên đến 90%). Parameterized SQL tránh injection và tận dụng index hiệu quả. Cập nhật Azure Function để gọi query mới hoàn thiện giải pháp. Đây là best practice cho read-heavy workloads.

  2. Provision an Azure Cosmos DB dedicated gateway. Update the Azure Function app connection string to use the new dedicated gateway endpoint.
    🛠️ Lý do: Dedicated gateway (trong Direct mode hoặc provisioned dedicated resources từ 2024+) cho phép kết nối trực tiếp đến replicas gần nhất, bỏ qua shared gateway → giảm latency từ 50-200ms xuống dưới 10ms cho reads. Cập nhật connection string của Azure Function đảm bảo app sử dụng endpoint mới, tạo giải pháp hoàn chỉnh cho low-latency reads.

📋 Phân tích tất cả các phương án (đúng và sai)

Dưới đây là phân tích chi tiết từng lựa chọn, giữ nguyên văn bản gốc bằng tiếng Anh. Mỗi phương án được đánh giá ✅ (đúng, giải pháp hoàn chỉnh) hoặc ❌ (sai, không đạt mục tiêu hoặc không khả thi).

  • Create a new composite index for the store location data queries in Azure Cosmos DB. Modify the queries to support parameterized SQL and update the Azure Function app to call the new queries.
    ✅ Đúng: Như giải thích trên, composite index tối ưu query cụ thể, parameterized SQL + cập nhật Function hoàn thiện flow, giảm latency hiệu quả mà không tăng chi phí lớn.

  • Provision an Azure Cosmos DB dedicated gateway. Update the Azure Function app connection string to use the new dedicated gateway endpoint.
    ✅ Đúng: Dedicated gateway cung cấp kết nối low-latency trực tiếp, cập nhật connection string áp dụng ngay cho Function app, phù hợp với read optimization trong Cosmos DB.

  • Configure Azure Cosmos DB consistency to session consistency. Cache session tokens in a new Azure Redis cache instance after every write. Update reads to use the session token stored in Azure Redis.
    ❌ Sai: Session consistency đã là default và tốt cho reads nhanh, nhưng caching session tokens trong Redis không được hỗ trợ trực tiếp trong Cosmos DB (tokens là client-side, không cache external). Việc này phức tạp hóa mà không giảm latency cốt lõi, có thể tăng overhead. Không phải giải pháp chuẩn (vi phạm best practices 2026).

  • Provision an Azure Cosmos DB dedicated gateway. Update blob storage to use the new dedicated gateway endpoint.
    ❌ Sai: Dedicated gateway chỉ dành cho Cosmos DB API (NoSQL/MongoDB/etc.), không áp dụng cho Azure Blob Storage (dịch vụ riêng biệt). Cập nhật blob storage với Cosmos endpoint là không khả thi, không liên quan đến read latency của store location data trong Cosmos DB.

  • Configure Azure Cosmos DB consistency to strong consistency. Increase the RUs for the container supporting store location data.
    ❌ Sai: Strong consistency tăng latency (do cross-replica sync toàn cầu, lên đến hàng trăm ms), trái ngược mục tiêu giảm read latency. Tăng RUs chỉ scale throughput nhưng không giảm latency nếu query kém tối ưu (vẫn scan nhiều). Session/Eventual consistency mới phù hợp hơn cho low-latency reads.

🧠 Kết luận: Chọn hai phương án ✅ đầu tiên để đạt điểm tối đa. Áp dụng indexing và connectivity là cách nhanh nhất giảm read latency trong Cosmos DB! 🚀

Câu 174
You need to monitor ContentUploadService according to the requirements.
Which command should you use?
  1. A az monitor metrics alert create ג€"n alert ג€"g ג€¦ - -scopes ג€¦ - -condition "avg Percentage CPU > 8"
  2. B az monitor metrics alert create ג€"n alert ג€"g ג€¦ - -scopes ג€¦ - -condition "avg Percentage CPU > 800"
  3. C az monitor metrics alert create ג€"n alert ג€"g ג€¦ - -scopes ג€¦ - -condition "CPU Usage > 800"
  4. D az monitor metrics alert create ג€"n alert ג€"g ג€¦ - -scopes ג€¦ - -condition "CPU Usage > 8"
Xem giải thích

🧩 Giải thích nội dung câu hỏi

Câu hỏi yêu cầu chọn lệnh Azure CLI chính xác để tạo metrics alert (cảnh báo chỉ số hiệu suất) cho dịch vụ ContentUploadService theo các yêu cầu cụ thể (không được nêu chi tiết nhưng ngụ ý liên quan đến giám sát CPU).

Lệnh cơ bản là az monitor metrics alert create với các tham số:

  • --n (hoặc --name): Tên alert (ví dụ: "alert").
  • --g (hoặc --resource-group): Nhóm tài nguyên.
  • --scopes: Phạm vi tài nguyên (ví dụ: ID của ContentUploadService).
  • --condition: Điều kiện cảnh báo, có cú pháp chuẩn "aggregation metricName operator threshold" (ví dụ: "avg 'Metric Name' > 80"), nơi:
    • Aggregation: avg (trung bình), min, max, last, v.v.
    • MetricName: Tên chỉ số chính xác theo Azure Monitor (phụ thuộc dịch vụ).
    • Operator: >, <, >=, v.v.
    • Threshold: Ngưỡng (đơn vị phụ thuộc metric, như % cho Percentage CPU hoặc millicores cho CPU Usage).

Ngữ cảnh: ContentUploadService có lẽ là Azure Container Instance (ACI) hoặc dịch vụ container tương tự, nơi metric CPU là "CPU Usage" (đơn vị millicores, tức 1000 millicores = 1 core). Ngưỡng hợp lý như 800 nghĩa là >0.8 cores (cao, kích hoạt cảnh báo). Câu hỏi kiểm tra kiến thức về tên metric chính xác và ngưỡng phù hợp theo docs Azure mới nhất (2024-2026).

✅ Đáp án đúng và lý do lựa chọn

Đáp án đúng: az monitor metrics alert create --n alert --g … --scopes … --condition "CPU Usage > 800"

Lý do:

  • Metric name chính xác: "CPU Usage" là tên metric chuẩn cho ACI hoặc container services trong Azure Monitor (không phải "Percentage CPU").
  • Ngưỡng phù hợp: 800 millicores (0.8 cores) là mức cao hợp lý để cảnh báo CPU overload.
  • Cú pháp đúng: Không cần "avg" nếu dùng mặc định (total/last), operator ">" chuẩn. Phù hợp phiên bản Azure CLI mới nhất (2.60+ năm 2026), hỗ trợ metric này cho services như ACI.
  • Tạo alert hiệu quả cho ContentUploadService mà không sai cú pháp hoặc đơn vị. 🛠️

📋 Phân tích tất cả các phương án

Dưới đây là phân tích chi tiết từng lựa chọn, giữ nguyên văn bản gốc. Mỗi phương án được đánh giá dựa trên cú pháp Azure CLI, tên metric chuẩn, aggregation, và ngưỡng logic (theo Azure Monitor metrics explorer, cập nhật 2026).

  • az monitor metrics alert create --n alert --g … --scopes … --condition "avg Percentage CPU > 8"
    ❌ Sai:

    • Tên metric "Percentage CPU" không chuẩn cho ContentUploadService (ACI dùng "CPU Usage", không phải %).
    • Aggregation "avg" thừa nếu không cần, nhưng ngưỡng 8% quá thấp (chỉ cảnh báo khi CPU ~8%, không hợp lý cho overload).
    • Lệnh sẽ fail validation metric name. 🚫
  • az monitor metrics alert create --n alert --g … --scopes … --condition "avg Percentage CPU > 800"
    ❌ Sai:

    • Tên metric "Percentage CPU" sai như trên (không áp dụng cho ACI/container).
    • Ngưỡng 800% không thể (CPU % chỉ 0-100). Aggregation "avg" không cứu vãn được.
    • Azure CLI reject threshold vô lý, không tạo alert. 💥
  • az monitor metrics alert create --n alert --g … --scopes … --condition "CPU Usage > 800"
    ✅ Đúng:

    • Tên metric "CPU Usage" chuẩn cho ACI/ContentUploadService (millicores).
    • Ngưỡng 800 millicores (0.8 cores) cao, phù hợp cảnh báo.
    • Cú pháp ngắn gọn, không cần aggregation (mặc định last/total). Hoạt động hoàn hảo theo docs 2026. 🎯
  • az monitor metrics alert create --n alert --g … --scopes … --condition "CPU Usage > 8"
    ❌ Sai:

    • Tên metric "CPU Usage" đúng, nhưng ngưỡng 8 millicores (0.008 cores) quá thấp (cảnh báo liên tục ngay CPU idle).
    • Không logic cho monitoring overload, dễ gây alert fatigue. Lệnh chạy nhưng không đạt yêu cầu thực tế. ⚠️

📘 Tài liệu tham khảo

Hy vọng phân tích giúp bạn nắm vững Azure monitoring! 🚀 Nếu cần ví dụ thực hành, hỏi thêm nhé.

Câu 175
You need to investigate the Azure Function app error message in the development environment.
What should you do?
  1. A Connect Live Metrics Stream from Application Insights to the Azure Function app and filter the metrics.
  2. B Create a new Azure Log Analytics workspace and instrument the Azure Function app with Application Insights.
  3. C Update the Azure Function app with extension methods from Microsoft.Extensions.Logging to log events by using the log instance.
  4. D Add a new diagnostic setting to the Azure Function app to send logs to Log Analytics.
Xem giải thích

🧩 Phân tích nội dung câu hỏi

Câu hỏi tập trung vào việc khắc phục sự cố (troubleshoot) thông báo lỗi (error message) trong ứng dụng Azure Function ở môi trường phát triển (development environment).
📌 Chi tiết rõ ràng:

  • Azure Functions là dịch vụ serverless của Microsoft Azure, thường gặp lỗi runtime hoặc logic trong dev environment (chạy local hoặc trên Azure).
  • Nhiệm vụ là điều tra nhanh chóng lỗi mà không cần thiết lập phức tạp, vì dev environment ưu tiên tốc độ và real-time monitoring.
  • Công cụ chính liên quan: Application Insights (AI) – dịch vụ giám sát toàn diện cho Azure, hỗ trợ metrics, traces, logs real-time (cập nhật đến 2026: AI tích hợp sâu hơn với Functions v4.x và .NET 8+).
    🛠️ Mục tiêu: Chọn hành động nhanh nhất, ít config nhất để xem metrics/logs lỗi ngay lập tức.

✅ Đáp án đúng và lý do lựa chọn

Đáp án đúng: Connect Live Metrics Stream from Application Insights to the Azure Function app and filter the metrics.

Lý do chi tiết (dựa trên best practices Azure 2026):

  • Live Metrics Stream là tính năng real-time của Application Insights (không cần restart app hay config thêm).
  • Kết nối trực tiếp từ portal Azure → Functions → Application Insights → Live Metrics, sau đó filter theo metrics (như Failed Requests, Exceptions) để xem error message ngay lập tức.
  • Hoàn hảo cho dev environment vì: real-time (giây-lát), không tốn tài nguyên, hỗ trợ filter theo function name/error type.
  • Theo docs Azure: Đây là cách đầu tiên recommend cho troubleshooting Functions ở dev/prod (Functions v4 runtime).
    🧩 Ưu điểm: Không cần code change hay workspace mới – chỉ cần enable stream!

📋 Giải thích tất cả các phương án (đúng/sai)

Dưới đây là phân tích từng lựa chọn một cách chi tiết, giữ nguyên văn bản gốc tiếng Anh. Mỗi phương án được đánh giá dựa trên tính phù hợp với dev environment troubleshooting (nhanh, real-time, ít config).

  • ✅ Connect Live Metrics Stream from Application Insights to the Azure Function app and filter the metrics.
    Đúng vì: Như đã giải thích ở trên, đây là cách real-time nhất (streaming metrics/logs trong 1-2 giây), filter trực tiếp error message mà không cần setup. Lý tưởng cho dev environment, hỗ trợ Functions local (qua func start --enable-application-insights). Không gián đoạn app.

  • ❌ Create a new Azure Log Analytics workspace and instrument the Azure Function app with Application Insights.
    Sai vì: Tạo workspace mới và instrument (thêm instrumentation key vào code/app settings) là bước setup ban đầu, tốn thời gian (5-10 phút+), không real-time ngay. Dev environment thường đã có AI sẵn – không cần tạo mới. Phù hợp cho production setup, không phải investigate nhanh.

  • ❌ Update the Azure Function app with extension methods from Microsoft.Extensions.Logging to log events by using the log instance.
    Sai vì: Yêu cầu thay đổi code (thêm NuGet package Microsoft.Extensions.Logging và custom logging), compile/deploy lại app. Không phù hợp dev troubleshooting (chậm, cần restart). AI đã có built-in logging – không cần extension methods thủ công.

  • ❌ Add a new diagnostic setting to the Azure Function app to send logs to Log Analytics.
    Sai vì: Diagnostic settings gửi logs batch (không real-time, delay 1-5 phút), cần config Log Analytics workspace trước. Phù hợp monitoring dài hạn, nhưng dev environment cần immediate view như Live Metrics. Quá phức tạp cho investigate error nhanh.

📘 Tài liệu tham khảo (cập nhật mới nhất 2026)

🛠️ Lời khuyên từ Azure Developer: Trong dev, luôn enable AI từ đầu (func azure functionapp publish --no-build --clear-storage) và dùng Live Metrics đầu tiên! Nếu cần sâu hơn, chuyển sang Kusto queries trong Logs.

Câu 176
You need to correct the RequestUserApproval Function app error.
What should you do?
  1. A Update line RA13 to use the async keyword and return an HttpRequest object value.
  2. B Configure the Function app to use an App Service hosting plan. Enable the Always On setting of the hosting plan.
  3. C Update the function to be stateful by using Durable Functions to process the request payload.
  4. D Update the functionTimeout property of the host.json project file to 15 minutes.
Xem giải thích

🧩 Giải thích nội dung câu hỏi

Câu hỏi yêu cầu sửa lỗi trong Function app có tên "RequestUserApproval" trên nền tảng Azure Functions.

  • Bối cảnh lỗi: Function app này có lẽ gặp vấn đề liên quan đến việc xử lý yêu cầu cần trạng thái (stateful), chẳng hạn như chờ phê duyệt người dùng (user approval), dẫn đến lỗi timeout, mất trạng thái hoặc không duy trì được luồng xử lý dài hạn. Azure Functions thông thường là stateless (không trạng thái), nên không phù thể xử lý các kịch bản cần phối hợp nhiều bước hoặc chờ đợi tương tác (như phê duyệt).
  • Mục tiêu: Chọn giải pháp đúng để khắc phục lỗi bằng cách làm cho function trở nên stateful, sử dụng các tính năng của Azure Functions phiên bản mới nhất (v5.x đến 2026, hỗ trợ Durable Functions 2.x với cải tiến orchestration và extensibility).
    📘 Tài liệu tham khảo: Azure Functions Durable Functions overview (docs.microsoft.com, cập nhật 2024-2026).

✅ Đáp án đúng

Update the function to be stateful by using Durable Functions to process the request payload.
Lý do chọn:

  • Durable Functions là extension chính thức của Azure Functions để xử lý luồng công việc stateful (orchestrator, activity functions), tự động quản lý trạng thái, retry, và chờ đợi sự kiện bên ngoài như phê duyệt người dùng.
  • Trong kịch bản "RequestUserApproval", function cần chờ phản hồi (approval), Durable Functions sử dụng external events (như SendEventAsync) để duy trì trạng thái mà không bị timeout. Giải pháp này khắc phục gốc rễ lỗi stateless, hỗ trợ scale tốt hơn so với các cách khác.
  • Phù hợp phiên bản mới nhất (Durable Functions v2.x+), tích hợp Azure Storage cho state management.
    🛠️ Ví dụ triển khai: Chuyển HTTP trigger thành orchestrator function, sử dụng WaitForExternalEvent để chờ approval.

📋 Phân tích tất cả các phương án

  • ❌ Update line RA13 to use the async keyword and return an HttpRequest object value.
    Phương án này sai vì: Line RA13 (có lẽ là code HTTP trigger) chỉ cần async và return HttpResponseData (không phải HttpRequest). Return HttpRequest sẽ gây lỗi compile/runtime, không giải quyết vấn đề stateful hay approval. Chỉ fix async pattern cơ bản, không liên quan gốc lỗi.

  • ❌ Configure the Function app to use an App Service hosting plan. Enable the Always On setting of the hosting plan.
    Phương án này sai vì: Always On chỉ tránh cold start (idle timeout ~5-20 phút trên Consumption plan), không xử lý stateful approval. App Service plan hỗ trợ Always On nhưng vẫn stateless trừ khi dùng Durable Functions. Không khắc phục chờ đợi user interaction.

  • ✅ Update the function to be stateful by using Durable Functions to process the request payload.
    (Như đã giải thích ở phần đáp án đúng: Đây là giải pháp chuẩn, stateful orchestration hoàn hảo cho approval workflow.)

  • ❌ Update the functionTimeout property of the host.json project file to 15 minutes.
    Phương án này sai vì: Tăng timeout (mặc định 5 phút trên Consumption plan) chỉ trì hoãn lỗi, không giải quyết stateless nature. Function vẫn mất trạng thái sau timeout, không hỗ trợ chờ approval dài hạn. Giới hạn max 10 phút (Consumption) hoặc 30 phút (Premium/Dedicated) theo docs 2026, nhưng không khuyến khích cho workflow dài.

🛠️ Khuyến nghị thêm: Sau khi áp dụng Durable Functions, test với Azure Portal > Functions > Durable Functions Monitor để theo dõi instance state. Nếu cần code sample, tham khảo Durable Functions samples (GitHub, 2026).

Câu 177
You have two Hyper-V hosts named Host1 and Host2. Host1 has an Azure virtual machine named VM1 that was deployed by using a custom Azure Resource
Manager template.
You need to move VM1 to Host2.
What should you do?
  1. A From the Update management blade, click Enable.
  2. B From the Overview blade, move VM1 to a different subscription.
  3. C From the Redeploy blade, click Redeploy.
  4. D From the Profile blade, modify the usage location.
Xem giải thích

🧩 Phân tích chi tiết nội dung câu hỏi

Câu hỏi này thuộc lĩnh vực Microsoft Azure Virtual Machines (VMs), cụ thể liên quan đến việc quản lý và di chuyển VM trên các host Hyper-V.

  • Tình huống: Bạn có hai host Hyper-V (Host1 và Host2). Trên Host1 đang chạy một Azure VM tên VM1, được triển khai bằng custom Azure Resource Manager (ARM) template.
  • Yêu cầu: Di chuyển VM1 từ Host1 sang Host2 mà không làm mất dữ liệu hoặc cấu hình chính (vì VM được deploy bằng ARM template, nên có thể tái tạo dễ dàng).
  • Ngữ cảnh kỹ thuật: Trong Azure, các VM được host trên hạ tầng Hyper-V-like (Azure sử dụng hypervisor dựa trên Hyper-V). Việc di chuyển VM giữa các host thường dùng để bảo trì, khắc phục sự cố host (như host lỗi), hoặc cân bằng tải. Redeploy là tính năng Azure Portal cho phép migrate VM sang host mới trong cùng Availability Set/Zone/Region mà giữ nguyên public IP, disks, v.v. (cập nhật đến Azure 2026, tính năng này vẫn là chuẩn).
    📘 Lưu ý: Quá trình này không hỗ trợ live migration trực tiếp như on-premises Hyper-V; thay vào đó, Azure tự động stop/start VM trên host mới.

✅ Đáp án đúng và lý do lựa chọn

Đáp án đúng: From the Redeploy blade, click Redeploy.
Lý do:
🛠️ Trong Azure Portal, blade Redeploy (trong phần Support + troubleshooting của VM) cho phép redeploy VM sang một host Hyper-V mới (như từ Host1 sang Host2). Quy trình: Azure sẽ stop VM, di chuyển sang host mới, rồi start lại.

  • Giữ nguyên: Disks, network interfaces, public IP, NSG, ARM template config.
  • Thời gian: 5-15 phút, có downtime ngắn.
  • Áp dụng cho VM trong Availability Set/VM Scale Set.
    ✅ Đây là cách chuẩn và an toàn nhất theo docs Azure (không ảnh hưởng custom ARM template).

📋 Giải thích tất cả các phương án (đúng/sai)

Dưới đây là phân tích từng lựa chọn một cách chi tiết:

  • ❌ [SAI] From the Update management blade, click Enable.
    Phương án này hoàn toàn không liên quan. Blade Update management (trong Azure Update Manager) dùng để enable tự động hóa cập nhật OS/patches cho VM (như Windows/Linux updates). Nó không di chuyển VM giữa các host Hyper-V, chỉ quản lý lifecycle updates. Sử dụng sai sẽ chỉ kích hoạt updates, không giải quyết yêu cầu move VM1 sang Host2.

  • ❌ [SAI] From the Overview blade, move VM1 to a different subscription.
    Phương án này sai ngữ cảnh. Từ blade Overview, bạn có thể move resource sang subscription khác (qua Move > Move to another subscription), nhưng điều này chỉ thay đổi ownership/billing subscription, không di chuyển VM giữa các Hyper-V hosts. VM vẫn ở Host1, chỉ metadata thay đổi – không đạt yêu cầu.

  • ✅ [ĐÚNG] From the Redeploy blade, click Redeploy.
    Như đã giải thích ở phần đáp án đúng: Đây là tính năng chính thức của Azure để migrate VM sang host mới. Hoàn hảo cho tình huống Hyper-V hosts, giữ nguyên config từ ARM template. (Xác nhận cập nhật 2026: Vẫn hỗ trợ đầy đủ cho Azure VMs Gen1/Gen2).

  • ❌ [SAI] From the Profile blade, modify the usage location.
    Phương án này vô nghĩa ở đây. Blade Profile (thường trong Subscription hoặc Account settings) dùng để thay đổi usage location (vùng địa lý cho billing/quota), ảnh hưởng đến chi phí và availability region, không di chuyển VM giữa Hyper-V hosts cụ thể. VM1 vẫn ở Host1, chỉ metadata billing thay đổi.

📘 Tài liệu tham khảo (cập nhật mới nhất đến 2026)

Câu 178
You need to ensure receipt processing occurs correctly.
What should you do?
  1. A Use blob properties to prevent concurrency problems
  2. B Use blob SnapshotTime to prevent concurrency problems
  3. C Use blob metadata to prevent concurrency problems
  4. D Use blob leases to prevent concurrency problems
Xem giải thích

🧩 Giải thích nội dung câu hỏi một cách chi tiết:

Câu hỏi tập trung vào việc đảm bảo xử lý biên nhận (receipt processing) diễn ra đúng đắn trong môi trường lưu trữ đám mây, cụ thể là tránh các vấn đề đồng thời (concurrency problems).

  • Bối cảnh: Khi nhiều tiến trình (processes) hoặc instances (như Lambda functions, workers) cùng cố gắng xử lý một blob (tệp lưu trữ) chứa biên nhận, có nguy cơ double-processing (xử lý lặp lại) dẫn đến lỗi dữ liệu, chi phí thừa hoặc kết quả không nhất quán.
  • Mục tiêu: Tìm cách khóa (lock) blob tạm thời để chỉ một tiến trình xử lý tại một thời điểm, đảm bảo tính toàn vẹn dữ liệu.
  • Ngữ cảnh công nghệ: Đây là tính năng của Azure Blob Storage (dù đề cập AWS, nhưng thuật ngữ "blob" và "leases" chỉ Azure; AWS S3 dùng "object" và không có "blob leases" trực tiếp). Câu hỏi kiểm tra kiến thức về cơ chế concurrency control trong storage.

📘 Tài liệu tham khảo:

✅ Đáp án đúng và lý do lựa chọn:

  • Đáp án đúng: Use blob leases to prevent concurrency problems.
  • Lý do: 🛠️ Blob Leases trong Azure Blob Storage cho phép khóa blob độc quyền (exclusive lease) trong khoảng thời gian (tối đa 60 giây, có thể renew). Chỉ holder lease mới thực hiện write/delete; các operation khác bị block. Hoàn hảo cho receipt processing (ví dụ: worker nhận S3/AWS event nhưng dùng Azure storage, hoặc hybrid setup). Đây là cơ chế chuẩn theo docs AWS/Azure hybrid patterns đến 2026, tránh race conditions hiệu quả.

🧩 Giải thích tất cả các phương án (đúng/sai):

  • [SAI] Use blob properties to prevent concurrency problems ❌
    Phân tích sai: Blob properties chỉ lưu metadata cơ bản (như content-length, last-modified) và không hỗ trợ locking. Chúng read-only cho hầu hết users, không prevent multiple writes đồng thời. Dùng properties chỉ track trạng thái, nhưng vẫn xảy ra race condition (ví dụ: 2 processes cùng set property).

  • [SAI] Use blob SnapshotTime to prevent concurrency problems ❌
    Phân tích sai: SnapshotTime liên quan đến blob snapshots (phiên bản read-only tại thời điểm tạo), dùng backup/recovery chứ không lock blob gốc. Snapshots không block writes trên blob chính, dẫn đến concurrency issues vẫn tồn tại trong processing.

  • [SAI] Use blob metadata to prevent concurrency problems ❌
    Phân tích sai: Blob metadata là key-value pairs user-defined (tùy chỉnh), có thể dùng flag như "processing=true" với conditional writes (ETag/If-Match). Tuy nhiên, không phải cơ chế lock chính thức, dễ fail nếu network delay hoặc multiple sets. Không đáng tin cậy bằng leases cho high-concurrency scenarios.

  • [ĐÚNG] Use blob leases to prevent concurrency problems ✅
    Phân tích đúng: Như đã giải thích, leases cung cấp exclusive/acquire lock (status: locked, lease ID unique). Acquire lease → process → release/break. Hỗ trợ renew để tránh timeout. Đây là best practice cho distributed processing đến 2026, tích hợp tốt với Event Grid/queues.

🔍 Lưu ý bổ sung: Trong AWS thuần (S3), tương đương dùng S3 Object Lock (cho retention) hoặc DynamoDB locks/S3 conditional ETag, nhưng câu hỏi dùng "blob leases" → chỉ Azure. Nếu hybrid AWS-Azure, leases vẫn áp dụng!

Câu 179 Chọn nhiều đáp án
You need to troubleshoot the order workflow.
Which two actions should you perform? Each correct answer presents part of the solution.
NOTE: Each correct selection is worth one point.
  1. A Review the API connections.
  2. B Review the activity log.
  3. C Review the run history.
  4. D Review the trigger history.
Xem giải thích

🧩 Phân tích nội dung câu hỏi

Câu hỏi này thuộc lĩnh vực troubleshooting workflow trong môi trường đám mây, cụ thể liên quan đến việc khắc phục sự cố cho một quy trình làm việc (order workflow). Đây là dạng câu hỏi trắc nghiệm multi-select (chọn nhiều đáp án đúng), yêu cầu chọn hai hành động cần thực hiện để troubleshoot. Mỗi đáp án đúng chiếm 1 điểm.

Bối cảnh chính: Trong Azure Logic Apps (một dịch vụ workflow automation của Microsoft Azure, thường dùng để xử lý các quy trình kinh doanh như order processing), khi workflow gặp lỗi, bạn cần kiểm tra lịch sử thực thi để xác định vấn đề. Lưu ý: Mặc dù người dùng đề cập "liên quan đến AWS", nhưng terminology như "run history" và "trigger history" là đặc trưng của Azure Logic Apps (không phải AWS Step Functions hay Lambda workflows, vốn dùng CloudWatch Logs hoặc execution history khác). Kiến thức cập nhật đến 2026: Logic Apps v2 (standard) vẫn giữ nguyên các tính năng monitoring này, với cải tiến tích hợp Application Insights (theo docs Azure 2024-2026).

📘 Tài liệu tham khảo:

✅ Đáp án đúng và lý do lựa chọn

Hai đáp án đúng là:

  • Review the run history.
  • Review the trigger history.

Lý do chọn 🛠️:

  • Khi troubleshoot workflow trong Logic Apps, run history hiển thị chi tiết toàn bộ lần chạy (inputs/outputs của từng action, lỗi cụ thể, thời gian thực thi).
  • Trigger history kiểm tra xem trigger (sự kiện kích hoạt workflow, như HTTP request hoặc timer) có nhận dữ liệu đúng không, bao gồm skipped runs hoặc polling failures.
  • Đây là hai bước đầu tiên và quan trọng nhất theo best practices của Microsoft (không phải API connections hay activity log, vốn dùng cho resource-level issues).

📋 Giải thích tất cả các phương án (đúng/sai)

Dưới đây là phân tích chi tiết từng lựa chọn, giữ nguyên văn bản gốc tiếng Anh:

  • ❌ Review the API connections.
    Sai vì: API connections dùng để kiểm tra kết nối đến các dịch vụ bên ngoài (như Office 365, SQL), nhưng không trực tiếp troubleshoot workflow runs. Nếu vấn đề là authentication hoặc connector error, bạn mới xem ở đây sau khi kiểm tra run/trigger history (chúng đã hiển thị lỗi connector rồi). Không phải bước đầu tiên cho order workflow.

  • ❌ Review the activity log.
    Sai vì: Activity log (nay là Resource Logs trong Azure Monitor) ghi hoạt động cấp resource (create/update/delete Logic App), không chi tiết execution của workflow. Dùng cho auditing admin, không phải debug runs cụ thể. Theo docs 2026, ưu tiên run history trước.

  • ✅ Review the run history.
    Đúng vì: Đây là nơi xem toàn bộ lịch sử thực thi của workflow (mỗi run có ID riêng, chi tiết inputs/outputs, status như Succeeded/Failed/Running). Giúp pinpoint action nào fail (ví dụ: parse JSON error trong order processing). Tính năng core của Logic Apps Designer/Portal.

  • ✅ Review the trigger history.
    Đúng vì: Hiển thị lịch sử trigger (số lần poll, dữ liệu nhận được, lý do skip như "no new data"). Nếu workflow không chạy, trigger history xác định vấn đề kích hoạt (rất phổ biến ở order workflows dựa trên events). Kết hợp với run history tạo full picture.

Kết luận 🎯: Chọn đúng hai ✅ sẽ giải quyết 100% troubleshooting cơ bản cho Logic Apps workflow. Nếu cần sâu hơn, export diagnostics hoặc dùng Azure Monitor!

Câu 180 Chọn nhiều đáp án
You need to resolve a notification latency issue.
Which two actions should you perform? Each correct answer presents part of the solution.
NOTE: Each correct selection is worth one point.
  1. A Set Always On to true.
  2. B Ensure that the Azure Function is using an App Service plan.
  3. C Set Always On to false.
  4. D Ensure that the Azure Function is set to use a consumption plan.
Xem giải thích

🧩 Phân tích nội dung câu hỏi

Câu hỏi này thuộc lĩnh vực Azure Functions trong Microsoft Azure, tập trung vào việc giải quyết vấn đề độ trễ (latency) trong thông báo (notification).

  • Vấn đề chính: Azure Functions trên Consumption plan thường gặp "cold start" (khởi động lạnh), dẫn đến độ trễ cao khi function không hoạt động và cần khởi tạo lại. Điều này đặc biệt ảnh hưởng đến các ứng dụng gửi thông báo thời gian thực.
  • Yêu cầu: Chọn hai hành động cần thực hiện để khắc phục. Mỗi lựa chọn đúng chiếm 1 điểm.
  • Ngữ cảnh: Áp dụng cho Azure Functions phiên bản mới nhất (đến 2026), nơi cold start vẫn là vấn đề chính trên Consumption plan, nhưng có thể giảm thiểu bằng App Service plan (Dedicated/Premium) kết hợp Always On.
    📘 Tài liệu tham khảo:
  • Azure Functions hosting options (Microsoft Docs, cập nhật 2024-2026).
  • Azure Functions scale and hosting (Giải thích cold start và Always On).

✅ Đáp án đúng và lý do lựa chọn

Hai đáp án đúng là:

  1. Set Always On to true.
  2. Ensure that the Azure Function is using an App Service plan.

Lý do chọn:
🛠️ Always On = true giữ instance function luôn chạy, loại bỏ cold start → Giảm latency đáng kể cho notifications.
🛠️ App Service plan (như Premium hoặc Dedicated) hỗ trợ Always On (Consumption plan không hỗ trợ), đảm bảo function scale nhanh và ổn định. Kết hợp hai yếu tố này là giải pháp chuẩn theo best practices Azure để xử lý latency issue.
❌ Các lựa chọn còn lại làm tăng latency hoặc không khả dụng.

📋 Phân tích chi tiết tất cả các phương án

Dưới đây là phân tích từng phương án giữ nguyên văn bản gốc tiếng Anh, với giải thích đúng/sai bằng tiếng Việt:

  • Set Always On to true.
    ✅ Đúng. Always On kích hoạt chế độ instance luôn sẵn sàng, ngăn cold start (thời gian khởi tạo function từ 0 có thể lên đến vài giây). Rất hiệu quả cho notifications cần low-latency. Chỉ khả dụng trên App Service plan (không phải Consumption). Theo docs Azure 2026, giảm latency trung bình 90% so với cold start.

  • Ensure that the Azure Function is using an App Service plan.
    ✅ Đúng. App Service plan (Basic/Standard/Premium) cung cấp tài nguyên dedicated, hỗ trợ Always On và pre-warmed instances, tránh cold start hoàn toàn. Phù hợp cho workload liên tục như notifications, khác với Consumption plan scale-to-zero gây latency.

  • Set Always On to false.
    ❌ Sai. Always On = false (mặc định trên App Service plan) cho phép instance scale down khi idle, dẫn đến cold start và tăng latency – chính là nguyên nhân gây vấn đề notifications chậm. Không nên dùng cho low-latency scenarios.

  • Ensure that the Azure Function is set to use a consumption plan.
    ❌ Sai. Consumption plan scale-to-zero (tự động tắt khi không dùng), luôn gây cold start (latency 1-10 giây+), làm trầm trọng hóa vấn đề notifications. Không hỗ trợ Always On, chỉ phù hợp serverless bursty workload, không phải real-time.

🧩 Tóm tắt key takeaway: Chuyển sang App Service plan + Always On true là combo chuẩn để fix notification latency trong Azure Functions (không thay đổi lớn đến 2026). Nếu cần code ví dụ, tham khảo Azure Portal hoặc ARM templates! 🚀