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

Tìm thấy 409 câu.

Câu 271
You develop and deploy a web application to Azure App Service. The application accesses data stored in an Azure Storage account. The account contains several containers with several blobs with large amounts of data. You deploy all Azure resources to a single region.
You need to move the Azure Storage account to the new region. You must copy all data to the new region.
What should you do first?
  1. A Export the Azure Storage account Azure Resource Manager template
  2. B Initiate a storage account failover
  3. C Configure object replication for all blobs
  4. D Use the AzCopy command line tool
  5. E Create a new Azure Storage account in the current region
  6. F Create a new subscription in the current region
Xem giải thích

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

Câu hỏi tập trung vào tình huống di chuyển một Azure Storage account sang một region mới trong Azure, đồng thời phải copy toàn bộ dữ liệu (blobs trong các containers) từ account cũ sang region mới. Ứng dụng web trên Azure App Service đang truy cập dữ liệu này, và tất cả resources hiện tại đều ở một region duy nhất.

✅ Mục tiêu chính:

  • Không thể di chuyển trực tiếp Storage account giữa các region (theo thiết kế của Azure).
  • Cần tạo account mới ở region đích, copy dữ liệu, cập nhật app để trỏ đến account mới, rồi xóa account cũ.
  • Bước đầu tiên (first) phải là gì để đảm bảo config account được tái tạo chính xác ở region mới trước khi copy data.

🛠️ Kiến thức Azure cập nhật (tính đến 2026): Quy trình migrate Storage account giữa regions được mô tả trong tài liệu chính thức Azure, sử dụng ARM template để export config (không bao gồm data), sau đó deploy template ở region mới và copy data bằng công cụ như AzCopy hoặc Azure Data Box cho dữ liệu lớn. Không có tính năng "move resource" trực tiếp cho Storage account.

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

✅ Đáp án đúng: Export the Azure Storage account Azure Resource Manager template

Lý do chọn đáp án này 🏆:
Đây là bước đầu tiên cần thiết vì ARM template chứa toàn bộ cấu hình account (settings, access keys, policies, containers metadata) mà không bao gồm dữ liệu blobs. Export template cho phép deploy nhanh chóng account mới ở region đích với config giống hệt, trước khi tiến hành copy data lớn. Nếu không export trước, bạn phải config thủ công (dễ lỗi). Sau bước này, mới copy data bằng AzCopy và cập nhật App Service connection string.

📋 Giải thích tất cả các phương án

  • Export the Azure Storage account Azure Resource Manager template
    ✅ Đúng: Như đã giải thích, đây là bước first để tái tạo config account ở region mới một cách chính xác và tự động. Data blobs không được export trong template, nhưng config là nền tảng cho các bước sau.

  • Initiate a storage account failover
    ❌ Sai: Failover chỉ áp dụng cho account có geo-redundant storage (GRS/RA-GRS), tự động chuyển endpoint sang region secondary đã replicate sẵn (không phải region mới tùy chọn). Không copy data đến "new region" bất kỳ, và không "move account" thực sự – chỉ là DR mechanism tạm thời.

  • Configure object replication for all blobs
    ❌ Sai: Object replication (tính năng từ 2021, cập nhật 2025 hỗ trợ multi-region) chỉ replicate data ongoing giữa 2+ accounts/regions, không di chuyển account gốc hay copy full one-time. Phải có account đích trước, và không giải quyết "move account" đầu tiên.

  • Use the AzCopy command line tool
    ❌ Sai: AzCopy (công cụ mạnh cho copy blobs lớn, hỗ trợ sync, version 2026) dùng để copy data từ account cũ sang account mới, nhưng không thể làm first step vì cần account đích tồn tại trước. Đây là bước thứ 2 sau khi tạo account mới.

  • Create a new Azure Storage account in the current region
    ❌ Sai: Tạo account mới ở region hiện tại (không phải new region), vi phạm yêu cầu di chuyển sang region mới. Chỉ làm duplicate data ở cùng region.

  • Create a new subscription in the current region
    ❌ Sai: Tạo subscription mới hoàn toàn không liên quan đến việc di chuyển Storage account hay copy data. Subscription là cấp cao hơn, không ảnh hưởng trực tiếp đến resources region-specific.

🧠 Tóm tắt quy trình đầy đủ sau bước first: Export template → Deploy ở new region → AzCopy copy data → Update App Service → Verify → Delete old account. Sử dụng Azure Portal/CLI để export dễ dàng! 🚀

Câu 272
You are developing an ASP.NET Core website that uses Azure FrontDoor. The website is used to build custom weather data sets for researchers. Data sets are downloaded by users as Comma Separated Value (CSV) files. The data is refreshed every 10 hours.
Specific files must be purged from the FrontDoor cache based upon Response Header values.
You need to purge individual assets from the Front Door cache.
Which type of cache purge should you use?
  1. A single path
  2. B wildcard
  3. C root domain
Xem giải thích

🧩 Phân tích chi tiết câu hỏi trắc nghiệm

📖 Nội dung câu hỏi được giải thích rõ ràng:
Câu hỏi mô tả một ứng dụng web ASP.NET Core sử dụng Azure Front Door làm dịch vụ phân phối nội dung (CDN) để xây dựng các bộ dữ liệu thời tiết tùy chỉnh cho nhà nghiên cứu. Người dùng tải xuống dữ liệu dưới dạng file CSV, và dữ liệu được làm mới mỗi 10 giờ. Yêu cầu chính là xóa (purge) các file cụ thể khỏi bộ đệm (cache) của Front Door dựa trên giá trị Response Header. Nhiệm vụ là chọn loại cache purge phù hợp để xóa từng tài nguyên cá nhân (individual assets) khỏi cache Front Door.
🛠️ Bối cảnh kỹ thuật: Azure Front Door cache giúp tăng tốc độ tải trang bằng cách lưu trữ nội dung tĩnh như file CSV. Khi dữ liệu thay đổi (refresh mỗi 10 giờ), cần purge cache để đảm bảo người dùng nhận dữ liệu mới nhất. Purge dựa trên Response Header có nghĩa là logic ứng dụng kiểm tra header (ví dụ: ETag hoặc custom header) để quyết định purge file cụ thể.

✅ Đáp án đúng: single path
Lý do lựa chọn:
Loại purge single path cho phép xóa một đường dẫn URL cụ thể (individual asset) khỏi cache của Front Door, phù hợp hoàn hảo với yêu cầu "purge individual assets". Điều này đảm bảo chỉ file CSV cụ thể (dựa trên Response Header) bị xóa, không ảnh hưởng đến các tài nguyên khác. Theo tài liệu Azure mới nhất (2024-2026), Front Door hỗ trợ purge single path qua API hoặc Portal để xử lý chính xác từng file, tránh lãng phí tài nguyên khi dữ liệu refresh định kỳ.
(Nguồn: Azure Front Door Caching - Purge Cache - Phiên bản cập nhật 2024, vẫn áp dụng đến 2026).

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

  • ✅ [ĐÚNG] single path
    Phương án này đúng vì nó dành riêng cho việc xóa một đường dẫn cụ thể (ví dụ: /weather/dataset1.csv), lý tưởng cho "individual assets". Bạn có thể gọi API purge với path chính xác dựa trên Response Header, giúp kiểm soát chính xác cache mà không purge thừa. Đây là lựa chọn tối ưu cho kịch bản file CSV cá nhân hóa.

  • ❌ [SAI] wildcard
    Phương án này sai vì wildcard purge xóa nhiều đường dẫn khớp với pattern (ví dụ: /weather/*.csv), dẫn đến xóa hàng loạt file thay vì chỉ individual assets. Không phù hợp khi cần purge "specific files" dựa trên header cụ thể, có thể gây gián đoạn không cần thiết cho các file khác.

  • ❌ [SAI] root domain
    Phương án này sai vì root domain purge xóa toàn bộ cache của domain (ví dụ: toàn bộ example.com), quá rộng và tốn kém (có quota hàng tháng). Không dùng cho individual assets, sẽ làm chậm toàn bộ website khi chỉ cần purge vài file CSV refresh mỗi 10 giờ.

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

Câu 273
Note: The question is included in a number of questions that depicts the identical set-up. However, every question has a distinctive result. Establish if the solution satisfies the requirements.
You are developing a solution for a public facing API.
The API back end is hosted in an Azure App Service instance. You have implemented a RESTful service for the API back end.
You must configure back-end authentication for the API Management service instance.
Solution: You configure Basic gateway credentials for the Azure resource.
Does the solution meet the goal?
  1. A Yes
  2. B No
Xem giải thích

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

  • Bối cảnh câu hỏi 📖: Câu hỏi thuộc dạng "Does the solution meet the goal?" (Giải pháp có đáp ứng yêu cầu không?), nằm trong một bộ câu hỏi có setup giống nhau nhưng kết quả khác nhau. Bạn đang phát triển một giải pháp cho API công khai (public-facing API), với backend là Azure App Service triển khai dịch vụ RESTful. Nhiệm vụ cụ thể: Cấu hình xác thực backend (back-end authentication) cho instance Azure API Management (APIM) để APIM có thể gọi an toàn đến backend App Service.
  • Giải pháp đề xuất 🛠️: "You configure Basic gateway credentials for the Azure resource." (Cấu hình thông tin xác thực gateway cơ bản cho tài nguyên Azure – ở đây là App Service).
  • Mục tiêu chính 🎯: Kiểm tra xem giải pháp này có đáp ứng yêu cầu cấu hình back-end authentication cho APIM không. Lưu ý: Đây là kiến thức Azure cập nhật đến năm 2026 (phiên bản APIM mới nhất hỗ trợ các phương thức như Managed Identity, OAuth 2.0, Basic Auth, Client Certificate, nhưng không sử dụng "Basic gateway credentials" cho backend auth).

✅ Đáp án đúng: No

Lý do lựa chọn 🔍: Giải pháp KHÔNG đáp ứng yêu cầu vì "Basic gateway credentials" không phải phương thức xác thực backend chuẩn trong Azure APIM.

  • "Gateway credentials" chỉ dùng cho self-hosted gateway (cấu hình xác thực khi APIM quản lý gateway tự host), hoặc named values chung, KHÔNG dùng để xác thực APIM gọi backend App Service.
  • Để xác thực backend đúng cách, phải cấu hình trực tiếp trên Backend entity trong APIM: chọn Basic (username/password), Managed Identity, Client Certificate, hoặc Generic OAuth. Giải pháp này sai lầm, không bảo mật và không hoạt động cho public-facing API.

📋 Giải thích tất cả các phương án (giữ nguyên văn bản gốc)

  • Yes ❌:
    Sai vì giải pháp không đáp ứng mục tiêu. "Basic gateway credentials" chỉ liên quan đến xác thực nội bộ gateway của APIM (như khi deploy self-hosted gateway), không áp dụng cho back-end authentication với Azure App Service. Sử dụng nó sẽ dẫn đến lỗi gọi API, không bảo vệ backend khỏi truy cập trái phép. Trong thực tế (cập nhật 2026), APIM yêu cầu cấu hình riêng biệt qua portal hoặc ARM template cho backend credentials.

  • No ✅:
    Đúng vì giải pháp thất bại. Backend authentication trong APIM phải dùng các phương thức chuyên biệt như Basic authentication credentials (khác với gateway credentials), Managed Identity (khuyến nghị cho Azure resources), hoặc MTLS. "Gateway credentials" không liên kết với backend RESTful service trên App Service, vi phạm best practices bảo mật cho public API.

📘 Tài liệu tham khảo

Hy vọng phân tích này giúp bạn nắm vững! 🚀

Câu 274
Your company is developing an Azure API.
You need to implement authentication for the Azure API. You have the following requirements:
All API calls must be secure.

✑ Callers to the API must not send credentials to the API.
Which authentication mechanism should you use?
  1. A Basic
  2. B Anonymous
  3. C Managed identity
  4. D Client certificate
Xem giải thích

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

Câu hỏi tập trung vào việc triển khai xác thực (authentication) cho một Azure API đang được phát triển bởi công ty. Các yêu cầu chính bao gồm:
✅ Tất cả các cuộc gọi API phải an toàn (secure) – Nghĩa là cần cơ chế xác thực mạnh mẽ để bảo vệ API khỏi truy cập trái phép.
📸 Có hình ảnh minh họa (không hiển thị trực tiếp ở đây, nhưng thường mô tả luồng API với các ràng buộc bảo mật).
✅ Người gọi API (callers) KHÔNG được gửi thông tin xác thực (credentials) trực tiếp đến API – Đây là yêu cầu cốt lõi, nhấn mạnh vào việc tránh truyền credentials qua mạng để giảm rủi ro lộ thông tin (như password, token).

Mục tiêu là chọn cơ chế xác thực phù hợp nhất trong Azure, đảm bảo an toàn mà không yêu cầu callers phải gửi credentials. Đây là tình huống phổ biến khi xây dựng API trên Azure App Service, Azure Functions hoặc API Management, sử dụng các dịch vụ native của Azure để quản lý identity một cách tự động và an toàn. (Kiến thức cập nhật đến Azure 2026: Managed Identities vẫn là best practice theo docs Azure AD).

✅ Đáp án đúng: Managed identity

Lý do lựa chọn:
Managed Identity là cơ chế xác thực không cần quản lý credentials do Azure tự động cung cấp identity (System-assigned hoặc User-assigned) cho resource như App Service. Khi API sử dụng Managed Identity:

  • Callers không cần gửi bất kỳ credentials nào (như token, cert) – Azure AD xử lý xác thực backend.
  • Tất cả calls an toàn 100% vì dựa trên token ngắn hạn từ Azure AD, hỗ trợ RBAC và least privilege.
  • Phù hợp hoàn hảo với yêu cầu "secure calls without sending credentials".
    🛠️ Ví dụ triển khai: Enable Managed Identity trên App Service, grant role (e.g., Contributor) cho identity đó trên resource đích. Callers chỉ cần gọi API bình thường, Azure xử lý auth tự động.

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

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

  • Basic ❌ SAI:
    Phương án này yêu cầu callers gửi username/password trực tiếp trong header HTTP (Base64 encoded). Vi phạm yêu cầu "không gửi credentials" vì credentials được truyền rõ ràng, dễ bị lộ qua MITM attacks. Không an toàn cho production API.

  • Anonymous ❌ SAI:
    Cho phép truy cập mà không cần bất kỳ xác thực nào. Hoàn toàn vi phạm "all API calls must be secure" vì ai cũng gọi được API, dẫn đến rủi ro DDoS, data leak. Chỉ dùng cho testing, không phù hợp.

  • Managed identity ✅ ĐÚNG:
    (Như giải thích ở trên) – Azure tự quản lý identity, callers không gửi credentials, calls luôn secure qua Azure AD tokens. Best practice hiện đại (2026).

  • Client certificate ❌ SAI:
    Yêu cầu callers gửi certificate (x.509) trong TLS handshake. Certificate chính là một dạng credentials (private key/public cert), phải được gửi/transmit, vi phạm yêu cầu "không gửi credentials". Dễ phức tạp quản lý và không scale tốt như Managed Identity.

🧠 Kết luận: Managed Identity là lựa chọn tối ưu, giảm workload devops và tuân thủ zero-trust model của Azure! 🚀

Câu 275
Note: The question is included in a number of questions that depicts the identical set-up. However, every question has a distinctive result. Establish if the solution satisfies the requirements.
You are developing a solution for a public facing API.
The API back end is hosted in an Azure App Service instance. You have implemented a RESTful service for the API back end.
You must configure back-end authentication for the API Management service instance.
Solution: You configure Client cert gateway credentials for the HTTP(s) endpoint.
Does the solution meet the goal?
  1. A Yes
  2. B No
Xem giải thích

🧩 Giải thích nội dung câu hỏi
Câu hỏi thuộc dạng bài kiểm tra chứng chỉ Microsoft Azure (kiểu "Does the solution meet the goal?"), mô tả tình huống phát triển một API công khai (public facing API). Backend của API được host trên Azure App Service với dịch vụ RESTful. Yêu cầu chính là cấu hình xác thực backend (back-end authentication) cho instance Azure API Management (APIM).
Giải pháp đề xuất: Cấu hình Client cert gateway credentials cho HTTP(s) endpoint.
Câu hỏi hỏi liệu giải pháp này có đáp ứng yêu cầu (meet the goal) hay không. Đây là phần của bộ câu hỏi có setup giống nhau nhưng kết quả khác nhau tùy solution. Mục tiêu là đảm bảo APIM có thể xác thực an toàn với backend (Azure App Service) qua HTTPS, sử dụng client certificate (mTLS - mutual TLS) để bảo mật kết nối từ APIM đến App Service. Azure App Service hỗ trợ yêu cầu client cert từ incoming requests, và APIM hỗ trợ gửi cert này qua named values hoặc backend settings.

✅ Đáp án đúng: Yes
Lý do lựa chọn: Giải pháp này hoàn toàn đáp ứng yêu cầu vì trong Azure API Management (phiên bản mới nhất 2023-2026), bạn có thể cấu hình Client certificate gateway credentials (qua Named values loại ClientCertificate) để APIM gửi client cert đến backend HTTPS endpoint của Azure App Service. Điều này kích hoạt mTLS, xác thực backend một cách an toàn mà không cần managed identity hay basic auth. App Service có thể được config yêu cầu client cert (trong TLS/SSL settings), và APIM sử dụng policy hoặc backend credentials để gửi cert. Đây là phương pháp chuẩn, được khuyến nghị cho back-end authentication.

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

  • Yes: ✅ Đúng. Như giải thích trên, "Client cert gateway credentials" chính là cách cấu hình named value trong APIM để lưu client cert (upload .pfx file), sau đó gán vào backend entity (HTTP(s) endpoint). APIM sẽ tự động gửi cert trong mỗi request đến App Service, đáp ứng yêu cầu back-end authentication. Không có thay đổi lớn ở phiên bản APIM 2023+ (tích hợp tốt hơn với Entra ID, nhưng client cert vẫn hỗ trợ đầy đủ).
  • No: ❌ Sai. Phương án này không đúng vì giải pháp đề xuất phù hợp hoàn hảo với yêu cầu. Nếu chọn No, sẽ bỏ lỡ tính năng native của APIM hỗ trợ mTLS cho backend, dẫn đến không meet goal. (Lưu ý: Một số solution khác trong bộ câu hỏi có thể fail nếu dùng sai loại credential như subscription key cho non-Azure backend).

📘 Tài liệu tham khảo

Câu 276
You are a developer for a SaaS company that offers many web services.
All web services for the company must meet the following requirements:
✑ Use API Management to access the services
✑ Use OpenID Connect for authentication
✑ Prevent anonymous usage
A recent security audit found that several web services can be called without any authentication.
Which API Management policy should you implement?
  1. A jsonp
  2. B authentication-certificate
  3. C check-header
  4. D validate-jwt
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 mô tả tình huống một lập trình viên làm việc cho công ty SaaS cung cấp nhiều dịch vụ web. Tất cả các dịch vụ web phải đáp ứng các yêu cầu sau:

  • Sử dụng API Management để truy cập các dịch vụ (ngụ ý Azure API Management, vì các policy được đề cập là của Azure).
  • Sử dụng OpenID Connect (OIDC) để xác thực (OIDC dựa trên JWT tokens).
  • Ngăn chặn sử dụng ẩn danh (không cho phép gọi API mà không có xác thực).

Một cuộc kiểm toán bảo mật gần đây phát hiện nhiều dịch vụ web có thể được gọi mà không cần xác thực. Câu hỏi yêu cầu chọn API Management policy phù hợp để triển khai nhằm khắc phục vấn đề này.

Mục tiêu chính: Triển khai policy để validate token OIDC (dạng JWT), đảm bảo chỉ các yêu cầu có token hợp lệ mới được chấp nhận, ngăn chặn truy cập ẩn danh. 📘 (Dựa trên tài liệu Azure API Management policies mới nhất đến 2024-2026, policy validate-jwt hỗ trợ OIDC issuer và đầy đủ các yêu cầu này - tham khảo: Azure Docs - validate-jwt policy)

✅ Đáp án đúng: validate-jwt

Lý do lựa chọn:

  • Policy validate-jwt được thiết kế chuyên biệt để xác thực và validate JSON Web Token (JWT), hoàn hảo cho OpenID Connect (OIDC sử dụng JWT làm ID token và access token).
  • Nó kiểm tra issuer (nhà phát hành), audience (đối tượng), expiration, chữ ký, v.v., từ OpenID Connect provider (như Azure AD, Auth0).
  • Triển khai policy này vào inbound policy của API Management sẽ chặn ngay các yêu cầu không có token hợp lệ, ngăn anonymous usage. 🛠️ Hoàn toàn khớp 3 yêu cầu, và là giải pháp tiêu chuẩn theo best practices Azure đến 2026.

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

  • [SAI] jsonp ❌
    Policy jsonp chỉ hỗ trợ JSONP (JSON with Padding) để xử lý CORS cho các yêu cầu cross-domain từ browser cũ, không liên quan đến authentication. Nó không validate token hay ngăn anonymous access, nên không giải quyết vấn đề bảo mật.

  • [SAI] authentication-certificate ❌
    Policy authentication-certificate dùng để xác thực bằng client certificate (mTLS), yêu cầu chứng chỉ số từ client. Không hỗ trợ OpenID Connect/JWT, và không phải yêu cầu của câu hỏi (chỉ dùng OIDC), nên không phù hợp.

  • [SAI] check-header ❌
    Policy check-header chỉ kiểm tra sự tồn tại hoặc giá trị của HTTP header cụ thể (như custom header). Nó không validate JWT hay OIDC token, dễ bị bypass bằng header giả mạo, không ngăn anonymous usage hiệu quả.

  • [ĐÚNG] validate-jwt ✅
    Như đã giải thích ở trên: Chính xác validate OIDC JWT, kiểm tra đầy đủ token validity, chặn anonymous calls. Đây là policy inbound tiêu chuẩn trong Azure API Management (phiên bản mới nhất hỗ trợ JWKS endpoint động cho OIDC). 🏆

Lưu ý bổ sung: 🛡️ Theo AWS (nếu liên quan so sánh), AWS API Gateway dùng Lambda Authorizer hoặc Cognito cho JWT/OIDC, nhưng câu hỏi rõ ràng dùng Azure API Management policies. Tham khảo thêm: Azure API Management Security Policies. Nếu triển khai, đặt policy ở cấp API/Operation để hiệu quả nhất! 🚀

Câu 277
Note: The question is included in a number of questions that depicts the identical set-up. However, every question has a distinctive result. Establish if the solution satisfies the requirements.
You are developing a solution for a public facing API.
The API back end is hosted in an Azure App Service instance. You have implemented a RESTful service for the API back end.
You must configure back-end authentication for the API Management service instance.
Solution: You configure Basic gateway credentials for the HTTP(s) endpoint.
Does the solution meet the goal?
  1. A Yes
  2. B No
Xem giải thích

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

📖 Nội dung câu hỏi:
Câu hỏi mô tả một tình huống phát triển giải pháp cho một API công khai (public facing API). Backend của API được host trên Azure App Service với dịch vụ RESTful. Nhiệm vụ là cấu hình xác thực backend (back-end authentication) cho instance Azure API Management (APIM).
Giải pháp đề xuất: Cấu hình Basic gateway credentials cho HTTP(s) endpoint.
Câu hỏi yêu cầu đánh giá: Giải pháp này có đáp ứng mục tiêu không? (Does the solution meet the goal?).
🛠️ Bối cảnh chính: Đây là câu hỏi thuộc series với setup giống nhau nhưng kết quả khác nhau. Tập trung vào việc APIM cần authenticate với backend App Service qua HTTP(s), và Basic authentication là phương thức phổ biến để APIM gửi credentials (username/password) đến endpoint backend.

✅ Đáp án đúng: Yes

Lý do lựa chọn (bằng tiếng Việt):
✅ Giải pháp Yes là đúng vì việc cấu hình Basic gateway credentials cho HTTP(s) endpoint chính xác đáp ứng yêu cầu back-end authentication trong Azure API Management.

  • Trong APIM, khi backend là HTTP(s) endpoint (như App Service), bạn có thể cấu hình trực tiếp gateway credentials với Basic Auth ngay trong phần Backend > HTTP settings. Điều này cho phép APIM tự động thêm header Authorization: Basic <base64(username:password)> vào mọi request gửi đến backend.
  • App Service hỗ trợ nhận Basic Auth (có thể implement qua code hoặc Easy Auth), và đây là cách chuẩn để bảo mật traffic giữa APIM và backend mà không cần proxy hay token phức tạp.
  • Theo tài liệu Azure cập nhật 2024-2026, tính năng này vẫn được hỗ trợ đầy đủ trong APIM (bao gồm cả Consumption, Developer, Premium tiers) mà không có thay đổi lớn (xem tham chiếu bên dưới).
    🛠️ Kết quả: Giải pháp meet the goal hoàn toàn!

📋 Giải thích tất cả các phương án

  • Yes
    ✅ Đúng. Như giải thích trên, Basic gateway credentials là phương pháp trực tiếp và hiệu quả để APIM authenticate với HTTP(s) backend như App Service. Nó đảm bảo an toàn bằng cách mã hóa credentials trong header và tự động áp dụng cho tất cả calls. Không cần thêm dịch vụ phụ, phù hợp cho RESTful API.

  • No
    ❌ Sai. Phương án này không đúng vì giải pháp đề xuất chính xác đáp ứng yêu cầu. Nếu chọn No, sẽ hiểu lầm rằng Basic credentials không hỗ trợ back-end auth, trong khi thực tế nó là tính năng core của APIM (không phải managed identity hay OAuth ở đây). Chọn No chỉ hợp lý nếu giải pháp vi phạm yêu cầu cụ thể khác (nhưng ở đây không có).

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

Câu 278 Chọn nhiều đáp án
You are developing a web application that uses Azure Cache for Redis. You anticipate that the cache will frequently fill and that you will need to evict keys.
You must configure Azure Cache for Redis based on the following predicted usage pattern: A small subset of elements will be accessed much more often than the rest.
You need to configure the Azure Cache for Redis to optimize performance for the predicted usage pattern.
Which two eviction policies will achieve the goal?
NOTE: Each correct selection is worth one point.
  1. A noeviction
  2. B allkeys-lru
  3. C volatile-lru
  4. D allkeys-random
  5. E volatile-ttl
  6. F volatile-random
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 Azure Cache for Redis (dịch vụ bộ nhớ đệm Redis được quản lý bởi Microsoft Azure), tập trung vào việc cấu hình chính sách eviction (chính sách loại bỏ dữ liệu) khi cache thường xuyên đầy và cần loại bỏ các key.

Tình huống dự đoán: Ứng dụng web sẽ có một tập con nhỏ các phần tử (keys) được truy cập thường xuyên hơn rất nhiều so với phần còn lại (gọi là "hot keys" – keys nóng). Mục tiêu là tối ưu hiệu suất bằng cách giữ lại các hot keys trong cache lâu hơn, tránh evict chúng.

Yêu cầu: Chọn hai chính sách eviction phù hợp nhất để đạt mục tiêu. Đây là câu hỏi multi-select (mỗi lựa chọn đúng đáng 1 điểm), dựa trên các eviction policy chuẩn của Redis (Azure Cache for Redis hỗ trợ đầy đủ từ phiên bản Redis 6.x đến 7.x mới nhất năm 2026).

Lưu ý kỹ thuật: Khi cache đầy, Redis sẽ evict keys theo policy đã config. Pattern "small subset accessed often" phù hợp với LRU (Least Recently Used) – loại bỏ keys ít dùng gần đây nhất, giúp ưu tiên hot keys. (Kiến thức cập nhật: Azure Cache for Redis Premium/Enterprise hỗ trợ tất cả policy này qua Azure Portal/CLI/API, không thay đổi lớn đến 2026).

✅ Đáp án đúng (hai lựa chọn)

  • allkeys-lru
  • volatile-lru

Lý do lựa chọn:
Cả hai policy đều sử dụng thuật toán LRU để evict keys ít được sử dụng gần đây nhất, rất lý tưởng cho pattern "small subset accessed much more often".

  • allkeys-lru: Xem tất cả keys làm ứng cử viên evict, đảm bảo loại bỏ cold keys (ít dùng) dù chúng có TTL hay không.
  • volatile-lru: Chỉ evict từ keys có TTL (volatile), nhưng vẫn ưu tiên LRU – phù hợp nếu app set TTL cho hầu hết keys.
    Kết quả: Hot keys (truy cập thường xuyên) được giữ lại, tối ưu hit rate và performance. Đây là khuyến nghị chuẩn từ docs Azure/Redis cho workload skew (phân bố truy cập không đều).

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

  • ❌ noeviction:
    Chính sách KHÔNG evict bất kỳ key nào. Khi cache đầy, các lệnh write mới sẽ báo lỗi (OOM). Sai vì không giải quyết vấn đề cache đầy thường xuyên, dẫn đến ứng dụng crash thay vì tự động dọn dẹp.

  • ✅ allkeys-lru:
    Evict LRU keys từ tất cả keys (bao gồm cả không có TTL). Đúng vì pattern hot keys sẽ được ưu tiên giữ lại nhờ theo dõi recent access, tối ưu performance cao nhất cho mọi workload skew.

  • ✅ volatile-lru:
    Evict LRU keys chỉ từ keys có TTL. Đúng vì vẫn dùng LRU để giữ hot keys (nếu chúng có TTL), phù hợp nếu app thiết kế TTL cho cold keys, tránh evict hot keys vô thời hạn.

  • ❌ allkeys-random:
    Evict ngẫu nhiên từ tất cả keys. Sai vì random không ưu tiên hot keys, dẫn đến evict ngẫu nhiên cả keys thường dùng → hit rate thấp, không tối ưu pattern skew.

  • ❌ volatile-ttl:
    Evict keys có TTL nhỏ nhất (sắp expire nhất) từ keys volatile. Sai vì chỉ dựa vào thời gian expire, không xem xét tần suất access → hot keys có TTL ngắn vẫn bị evict sớm.

  • ❌ volatile-random:
    Evict ngẫu nhiên từ keys có TTL. Sai tương tự allkeys-random, không liên quan đến recent usage, không phù hợp pattern "accessed much more often".

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

  • Azure Docs chính thức: Azure Cache for Redis eviction policies – Xác nhận allkeys-lru & volatile-lru lý tưởng cho hot/cold data skew.
  • Redis Official Docs (Redis 7.2+): Eviction algorithms – Chi tiết LRU maxmemory policy (Azure sync 100%).
  • Azure Update 2025-2026: Hỗ trợ Redis 7.2 với LFU/LFU-enhanced, nhưng LRU vẫn core cho pattern này (không thay đổi khuyến nghị).

💡 Lời khuyên developer: Test với redis-benchmark hoặc Azure Monitor để đo eviction stats. Config qua Azure CLI: az redis force-reboot --eviction-policy allkeys-lru.

Câu 279
You are developing an e-commerce solution that uses a microservice architecture.
You need to design a communication backplane for communicating transactional messages between various parts of the solution. Messages must be communicated in first-in-first-out (FIFO) order.
What should you use?
  1. A Azure Storage Queue
  2. B Azure Event Hub
  3. C Azure Service Bus
  4. D Azure Event Grid
Xem giải thích

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

Câu hỏi tập trung vào việc thiết kế một backplane giao tiếp (hệ thống truyền thông nền tảng) cho giải pháp thương mại điện tử (e-commerce) sử dụng kiến trúc microservice.
📌 Yêu cầu chính:

  • Truyền transactional messages (tin nhắn giao dịch, cần độ tin cậy cao, đảm bảo thứ tự và tính toàn vẹn).
  • Giữa các thành phần khác nhau trong giải pháp.
  • Bắt buộc FIFO (First-In-First-Out): Tin nhắn phải được xử lý theo đúng thứ tự nhận vào, không bị đảo lộn.

🛠️ Bối cảnh: Trong microservice, backplane cần hỗ trợ giao tiếp đáng tin cậy, có thứ tự, phù hợp cho các giao dịch quan trọng như đặt hàng, thanh toán (không thể xử lý lệch thứ tự). Đây là vấn đề phổ biến trong Azure khi xây dựng hệ thống phân tán.

✅ Đáp án đúng: Azure Service Bus

Lý do lựa chọn:
Azure Service Bus là dịch vụ messaging as a service (MaaS) chuyên dụng cho giao tiếp đáng tin cậy giữa microservices. Nó hỗ trợ FIFO ordering thông qua Message Sessions (phiên tin nhắn), cho phép nhóm tin nhắn liên quan và xử lý theo đúng thứ tự nhận.

  • Hoàn hảo cho transactional messages nhờ tính năng duplicate detection, dead-letter queues, và transactions (giao dịch ACID-like).
  • Theo tài liệu Azure cập nhật 2024-2026 (Azure Service Bus Premium tier), nó đảm bảo exactly-once và ordered delivery với partitioning tự động.
    📘 Nguồn tham khảo: Azure Service Bus documentation - Message Sessions và FIFO queues in Service Bus.

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

  • ❌ Azure Storage Queue
    Sai vì Azure Storage Queue chỉ cung cấp at-least-once delivery (có thể duplicate), không hỗ trợ FIFO ordering nghiêm ngặt. Thứ tự không được đảm bảo do xử lý phân tán, phù hợp cho workload đơn giản, không phải transactional messages yêu cầu thứ tự chính xác.

  • ❌ Azure Event Hub
    Sai vì Azure Event Hub là nền tảng event streaming (dòng sự kiện lớn), ưu tiên throughput cao nhưng không hỗ trợ FIFO ordering cho từng message. Nó dùng partitioning để scale, có thể làm lệch thứ tự; phù hợp streaming data như logs, không phải giao dịch microservice.

  • ✅ Azure Service Bus
    Đúng như đã giải thích ở trên: Hỗ trợ FIFO qua Sessions, transactional support, và độ tin cậy cao cho microservices. Là lựa chọn chuẩn theo best practices Azure 2026.

  • ❌ Azure Event Grid
    Sai vì Azure Event Grid là dịch vụ event routing pub/sub (định tuyến sự kiện), tập trung vào reactive programming và fan-out (phân phối rộng). Không hỗ trợ queue FIFO hay ordered delivery; chỉ đảm bảo at-least-once, phù hợp event-driven architecture chứ không phải backplane transactional.

🧠 Lưu ý bổ sung: Trong Azure 2026, Service Bus vẫn là gold standard cho FIFO messaging; các dịch vụ khác như Event Hubs có thể dùng Sequence Numbers nhưng không thay thế được cho use case này. Nếu cần scale cực lớn, kết hợp với Service Bus Sessions + Premium tier!

Câu 280
Note: The question is included in a number of questions that depicts the identical set-up. However, every question has a distinctive result. Establish if the solution satisfies the requirements.
You are developing a solution for a public facing API.
The API back end is hosted in an Azure App Service instance. You have implemented a RESTful service for the API back end.
You must configure back-end authentication for the API Management service instance.
Solution: You configure Client cert gateway credentials for the Azure resource.
Does the solution meet the goal?
  1. A Yes
  2. B No
Xem giải thích

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

📘 Tóm tắt ngữ cảnh câu hỏi:
Câu hỏi thuộc dạng bài kiểm tra chứng chỉ Azure (kiểu "Does the solution meet the goal?"), mô tả tình huống phát triển một API công khai (public facing API). Backend của API được host trên Azure App Service với dịch vụ RESTful. Nhiệm vụ là cấu hình xác thực backend (back-end authentication) cho instance Azure API Management (APIM).

🎯 Mục tiêu cụ thể (goal):
Cấu hình xác thực để APIM có thể an toàn kết nối và gọi đến backend (Azure App Service). Điều này thường bao gồm các phương thức như client certificate, OAuth 2.0, Basic Auth, hoặc Managed Identity (tùy phiên bản mới nhất Azure APIM đến 2026).

🛠️ Giải pháp được đề xuất (Solution):
"You configure Client cert gateway credentials for the Azure resource."
(Dịch nghĩa: Bạn cấu hình chứng chỉ client gateway credentials cho tài nguyên Azure – ám chỉ Azure App Service).

❓ Câu hỏi chính: Giải pháp này có đáp ứng mục tiêu không? (Yes/No).

✅ Đáp án đúng: No
Lý do lựa chọn (bằng kiến thức Azure APIM mới nhất 2026):
Giải pháp KHÔNG đáp ứng vì "Client cert gateway credentials" không phải là cơ chế chuẩn để cấu hình back-end authentication trong Azure APIM.

  • Trong APIM, xác thực backend được cấu hình trực tiếp tại Backend entity hoặc qua Named values (như client certificate upload vào APIM và attach vào policy/backend).
  • "Gateway credentials" thường ám chỉ credentials cho việc APIM tự authenticate với các dịch vụ khác (như khi APIM là client), nhưng KHÔNG áp dụng cho back-end auth với App Service. Hơn nữa, cấu hình trên "Azure resource" (App Service) chỉ enable client cert requirement (qua TLS settings), chứ không phải "gateway credentials" – thuật ngữ này không tồn tại trong docs Azure cho mục đích này.
  • Cách đúng: Sử dụng client certificate upload vào APIM (qua portal/ARM), rồi set trong Backend settings hoặc policy <authentication> (ví dụ: backend với client-certificate-id). Hoặc ưu tiên System-assigned Managed Identity (mới nhất 2026) cho App Service với APIM VNet integration.

🔍 Giải thích tất cả các phương án trả lời

  • Yes ❌ [SAI]
    Phương án này sai vì giải pháp không cấu hình đúng back-end authentication. "Client cert gateway credentials for the Azure resource" không khớp với bất kỳ bước chuẩn nào trong Azure APIM (phiên bản 2023-2026). Nó có thể gây nhầm lẫn với AWS API Gateway (client-side cert), nhưng ở Azure, App Service chỉ hỗ trợ require client cert ở mức TLS (App Service > TLS/SSL settings > Incoming client certificates), không phải "gateway credentials". Kết quả: APIM vẫn không authenticate được backend một cách hiệu quả, vi phạm goal.

  • No ✅ [ĐÚNG]
    Phương án này đúng vì giải pháp đề xuất không đạt yêu cầu. Azure APIM yêu cầu cấu hình credentials tại phía APIM (upload cert > Named value > Backend hoặc Policy), không phải trên App Service. Theo best practices 2026, dùng Managed Identity hoặc OAuth cho App Service backend để tránh quản lý cert thủ công. Giải pháp này chỉ "nửa vời" (enable cert trên App Service) mà thiếu phần APIM cung cấp cert, dẫn đến thất bại.

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

💡 Lưu ý: Câu hỏi thuộc series multi-question với setup giống nhau nhưng solution khác, kiểm tra kỹ docs Azure để tránh nhầm AWS API Gateway!