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

Tìm thấy 409 câu.

Câu 141 App Services

You have a web app running in Azure, and you notice that the CPU usage is consistently above 80%. In your development environment, the app performs as expected, so you suspect there may be an issue in production. Which logs should you enable to determine if there are any failures or issues occurring inside the app?

  1. A

    Application Insights logs

  2. B

    Diagnostic logs

  3. C

    Azure Activity logs

  4. D

    Azure Monitor metrics 

Xem giải thích

Đáp án

A — Nhật ký của Application Insights

Vì sao đúng

Đề nói rõ ứng dụng chạy bình thường ở môi trường phát triển nhưng ngốn CPU trên Azure — tức là vấn đề nằm trong hành vi của ứng dụng dưới tải thật. Application Insights là công cụ duy nhất trong danh sách nhìn được vào bên trong: nó chỉ ra yêu cầu nào chậm, lời gọi phụ thuộc nào tốn thời gian, ngoại lệ nào đang lặp lại, và với Profiler thì tới tận hàm nào ngốn CPU.

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

  • D. Azure Monitor metrics — cho biết CPU đang cao (điều bạn đã biết), nhưng không cho biết vì sao.
  • B. Diagnostic logs — log của máy chủ web, hữu ích cho lỗi HTTP nhưng không phân tích hiệu năng ở mức mã.
  • C. Activity logs — ghi lại thao tác quản trị trên tài nguyên, hoàn toàn không liên quan.
Câu 142 Secure Azure Solutions

You are developing an application that requires sensitive configuration data, such as connection strings and API keys. You decide to use Azure Key Vault to store this sensitive information. Which of the following actions should you take to ensure that your application can securely access the secrets stored in Azure Key Vault?

  1. A

    Store the Key Vault secrets in a configuration file within your application’s source code.

  2. B

    Embed the Azure Key Vault access key directly in your application code.

  3. C

    Assign a managed identity to your application and grant it access to the Key Vault secrets.

  4. D

    Use a shared access signature (SAS) token to access the Key Vault.

Xem giải thích

Đáp án

C — Gán managed identity cho ứng dụng và cấp quyền cho nó trên Key Vault

Vì sao đúng

Đây là cách duy nhất phá được vòng luẩn quẩn của việc quản lý bí mật: nếu ứng dụng cần một thông tin đăng nhập để lấy bí mật từ Key Vault, thì thông tin đăng nhập đó lại được cất ở đâu?

Managed identity trả lời: không ở đâu cả. Azure cấp danh tính cho chính tài nguyên, và nó lấy token từ điểm cuối cục bộ. Không có bí mật gốc nào tồn tại.

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

  • B. Nhúng khoá truy cập Key Vault vào mã — chính là vòng luẩn quẩn nêu trên, và khoá sẽ nằm trong kho mã.
  • A. Để bí mật trong tệp cấu hình của ứng dụng — vô hiệu hoá hoàn toàn mục đích dùng Key Vault.
  • D. Dùng SAS token để truy cập Key Vault — Key Vault không hỗ trợ SAS; SAS là cơ chế của Azure Storage.
Câu 143 Containers

Which of the following is NOT an advantage of using containerized applications over non-containerized applications?

  1. A

    Efficient resource utilization

  2. B

    Consistent runtime environment

  3. C

    Portability across different environments

  4. D

    Reduced complexity in application architecture

Xem giải thích

Đáp án

D — Giảm độ phức tạp của kiến trúc ứng dụng

Vì sao đúng

Câu này tìm thứ không phải ưu điểm của container. Trên thực tế container thường làm kiến trúc phức tạp hơn: bạn phải có registry chứa ảnh, công cụ điều phối, cấu hình mạng giữa các container, cơ chế phát hiện dịch vụ, và một tầng quan sát mới. Đó là cái giá phải trả để đổi lấy các ưu điểm khác.

Nói cách khác, container giải bài toán triển khai và vận hành, không giải bài toán thiết kế ứng dụng.

Vì sao các phương án khác sai (chúng là ưu điểm thật)

  • B. Môi trường chạy nhất quán — ưu điểm lớn nhất: "chạy được trên máy tôi" biến mất.
  • C. Tính di động giữa các môi trường — cùng một ảnh chạy ở máy lập trình viên, kiểm thử và sản xuất.
  • A. Dùng tài nguyên hiệu quả — container dùng chung nhân hệ điều hành nên nhẹ hơn máy ảo nhiều.
Câu 144 Cosmos DB

Which of the following code snippets reads all of the items in a container where the item property 'type' equals 'car' using Azure Cosmos DB SDK for .NET?

  1. A
    // csharp
    var query = new QueryDefinition("SELECT * FROM c WHERE c.type = 'car'");
    var resultSet = container.GetItemQueryIterator<Item>(query);
  2. B
    // csharp
    var query = container.GetItemLinqQueryable<Item>()
                         .Where(item => item.type.Equals("car"));
    var resultSet = query.ToFeedIterator();
  3. C
    // csharp
    var query = container.GetItemLinqQueryable<Item>()
                         .Where(item => item.type == "car");
    var resultSet = query.ToFeedIterator();
  4. D
    // csharp
    var resultSet = container.GetItemQueryIterator<Item>("SELECT * FROM c WHERE c.type == 'car'");
Xem giải thích

Đáp án

A — Dùng QueryDefinition rồi truyền vào GetItemQueryIterator<Item>

Vì sao đúng

Đây là cách viết đúng và được khuyến nghị: QueryDefinition gói câu truy vấn SQL lại thành một đối tượng, và nó cũng là nơi bạn gắn tham số — điều rất quan trọng để tránh nối chuỗi khi giá trị đến từ đầu vào người dùng.

Cú pháp SQL trong Cosmos DB dùng một dấu bằng cho phép so sánh: WHERE c.type = 'car'.

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

  • D. Truyền thẳng chuỗi SQL nhưng viết c.type == 'car' — dùng hai dấu bằng, đó là cú pháp của C# chứ không phải của SQL. Truy vấn sẽ lỗi.
  • B. Dùng LINQ với item.type.Equals("car") — LINQ provider của Cosmos DB không dịch được phương thức .Equals() thành SQL.
  • C. Dùng LINQ với item.type == "car" — đây là phương án nhiễu gần nhất và cú pháp hợp lệ; nhưng câu hỏi hỏi cách đọc bằng truy vấn SQL, và LINQ là hướng tiếp cận khác.
Câu 145 Containers

You want to create an Azure Container Registry (ACR) using the Azure Command-Line Interface (CLI). Which of the following commands would you use to accomplish this task?

  1. A

    az registry create --name myACR --resource-group myResourceGroup --sku Basic

  2. B

    az acr build --image myImage --registry myACR

  3. C

    az acr create --name myACR --resource-group myResourceGroup --sku Basic

  4. D

    az container create --name myACR --resource-group myResourceGroup

Xem giải thích

Đáp án

C — az acr create --name myACR --resource-group myResourceGroup --sku Basic

Vì sao đúng

Cú pháp của Azure CLI theo khuôn az <nhóm-lệnh> <hành-động> <tham-số>, và nhóm lệnh cho Container Registry là acr. Ba tham số trong lệnh đều bắt buộc: tên registry, nhóm tài nguyên chứa nó, và bậc dịch vụ.

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

  • A. az registry create — sai tên nhóm lệnh; không có nhóm registry.
  • D. az container create — nhóm container dùng cho Container Instances, tức là chạy container chứ không tạo registry.
  • B. az acr build — đúng nhóm lệnh nhưng sai hành động: build dựng ảnh trong registry đã có, không tạo registry.
Câu 146 Cosmos DB

What is the benefit of using a query that only requires a single partition to execute versus a cross-partition query in Azure Cosmos DB?

  1. A

    Single partition queries do not require indexing, while cross-partition queries do.

  2. B

    Single partition queries can return results that are eventually consistent, while cross-partition queries can only return strong consistency.

  3. C

    Single partition queries perform at the same speed as cross-partition queries, so there is no real advantage.

  4. D

    Single partition queries incur lower costs because they consume less Request Units (RUs) than cross-partition queries.

Xem giải thích

Đáp án

D — Truy vấn trong một partition tốn ít Request Unit hơn

Vì sao đúng

Đây là điểm khác biệt quan trọng nhất, và nó ảnh hưởng trực tiếp tới hoá đơn. Khi truy vấn có khai partition key, Cosmos DB đi thẳng tới đúng partition đó. Truy vấn xuyên partition thì ngược lại: nó phải phát tới mọi partition, chờ tất cả trả về, rồi gộp kết quả — nên tốn RU nhiều hơn và độ trễ cao hơn, và càng nhiều partition thì càng tệ.

Đây cũng là lý do việc chọn partition key là quyết định thiết kế quan trọng nhất khi dùng Cosmos DB: chọn sai thì mọi truy vấn đều thành xuyên partition.

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

  • C. Hai loại truy vấn nhanh như nhau — sai; khác biệt rất rõ và tăng theo số partition.
  • A. Truy vấn một partition không cần chỉ mục — sai; chỉ mục áp dụng như nhau.
  • B. Truy vấn một partition trả về dữ liệu nhất quán cuối cùng — nhầm lẫn: mức nhất quán là cấu hình riêng, không phụ thuộc truy vấn nằm trong một hay nhiều partition.
Câu 147 Cosmos DB

You have a web app that runs around the world, and a Cosmos DB database that lives in 5 different regions. It is absolutely essential that the app displays the same data in every location in the world, regardless of latency of the data. Which consistency level do you choose?

  1. A

    Eventual Consistency

  2. B

    Consistent Prefix

  3. C

    Bounded Staleness

  4. D

    Strong Consistency

Xem giải thích

Đáp án

D — Strong Consistency

Vì sao đúng

Từ khoá quyết định là "nhất thiết phải giống nhau ở mọi nơi, bất kể độ trễ". Đề nói rõ chấp nhận đánh đổi độ trễ, nên câu trả lời là mức chặt nhất.

Strong consistency bảo đảm mọi lần đọc ở mọi khu vực đều trả về bản ghi mới nhất đã commit — không có cửa sổ nào mà hai người ở hai nơi thấy dữ liệu khác nhau.

Cái giá phải trả

Ghi phải được xác nhận bởi đa số bản sao trước khi trả về, nên độ trễ ghi tăng theo khoảng cách địa lý. Quan trọng hơn: Strong không dùng được cùng với ghi đa vùng, vì hai thứ đó mâu thuẫn về bản chất.

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

  • C. Bounded Staleness — cho phép trễ trong một giới hạn; giới hạn dù nhỏ vẫn là một cửa sổ mà dữ liệu khác nhau, nên không đạt chữ "nhất thiết".
  • A. Eventual và B. Consistent Prefix — lỏng hơn nữa.

So sánh với câu cùng chủ đề

Có một câu gần như giống hệt nhưng nêu ngưỡng cụ thể "tối đa 5 giây" — và đáp án ở đó là Bounded Staleness. Đề có nêu ngưỡng thì chọn Bounded, đề nói "bất kể độ trễ" thì chọn Strong.

Câu 148 Azure Functions

You need to configure an Azure Function to run on a schedule using a CRON expression. Your requirement is to have the function execute at 5 minutes past every hour, every day of the week. Which of the following CRON expressions should you use?

  1. A

    5 * * * 1-5

  2. B

    0/5 * * * *

  3. C

    5 * * * *

  4. D

    0 5 * * *

Xem giải thích

Đáp án

C — 5 * * * *

Vì sao đúng

Đọc biểu thức theo năm trường tiêu chuẩn:

Trường Giá trị Nghĩa
Phút 5 Phút thứ 5
Giờ * Mọi giờ
Ngày trong tháng * Mọi ngày
Tháng * Mọi tháng
Thứ trong tuần * Mọi thứ

Ghép lại: phút thứ 5 của mỗi giờ, mọi ngày — đúng yêu cầu.

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

  • D. 0 5 * * * — đảo hai trường đầu: chạy vào 5 giờ sáng mỗi ngày, chỉ một lần một ngày. Đây là bẫy chính.
  • B. 0/5 * * * * — chạy mỗi 5 phút, tức 12 lần mỗi giờ.
  • A. 5 * * * 1-5 — đúng thời điểm nhưng giới hạn từ thứ Hai tới thứ Sáu, còn đề nói mọi ngày.

Lưu ý về Azure Functions

Timer Trigger của Azure Functions dùng biểu thức sáu trường, có thêm trường giây ở đầu. Viết đủ thì biểu thức này là 0 5 * * * *.

Câu 149 Authentication and Authorization

You are developing a web application that requires user authentication. You want to implement Microsoft Entra ID for user sign-in and management. Which of the following options is the correct way to configure authentication in your application using Entra ID?

  1. A

    Configure your application to use OAuth 2.0 directly with a custom token service hosted on Azure.

  2. B

    Utilize Azure App Service Authentication (Easy Auth) to automatically handle user sign-in and authorization without writing any authentication code.

  3. C

    Implement a custom user database and manage authentication tokens manually within your application.

  4. D

    Use the Microsoft Entra External ID service to handle user registration and sign-in, and integrate it using the Microsoft Authentication Library (MSAL) for JavaScript.

Xem giải thích

Đáp án

B — Dùng Azure App Service Authentication (Easy Auth)

Vì sao đúng

Easy Auth xử lý toàn bộ luồng xác thực ở tầng nền tảng, trước khi yêu cầu tới ứng dụng của bạn: chuyển hướng người dùng tới trang đăng nhập, nhận và kiểm tra token, quản lý phiên, rồi truyền thông tin người dùng vào ứng dụng qua header.

Kết quả là bạn gần như không phải viết mã xác thực nào, và cũng không phải tự cài đặt phần dễ sai nhất — kiểm tra chữ ký token, kiểm hạn, kiểm issuer.

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

  • A. Tự dựng OAuth 2.0 với token service riêng — tự viết lại thứ đã có sẵn, và mọi lỗi cài đặt đều là lỗ hổng bảo mật.
  • C. Tự dựng cơ sở dữ liệu người dùng và tự quản token — tệ nhất: bạn tự lo lưu mật khẩu, xoay token, chống tấn công dò mật khẩu.
  • D. Entra External ID — dịch vụ đúng nhưng dành cho khách hàng bên ngoài; đề nói về đăng nhập bằng Entra ID của tổ chức.
Câu 150 App Services

You have a web app hosted on Azure, and you notice that the CPU usage is consistently above 80%. Users are complaining about slow response times, and upon checking the metrics, you find that the app is not processing as many requests as you expect. What is the next step you should take to diagnose the problem?

  1. A

    Review the application logs for errors and performance issues.

  2. B

    Check the network latency between the web app and the database.

  3. C

    Scale up the App Service Plan to a higher pricing tier.

  4. D

    Enable auto-scaling to automatically adjust the resources.

Xem giải thích

Đáp án

A — Xem lại nhật ký ứng dụng để tìm lỗi và vấn đề hiệu năng

Vì sao đúng

Đây là câu về thứ tự xử lý sự cố, và nguyên tắc là tìm nguyên nhân trước khi đổ tài nguyên vào. CPU cao liên tục thường là triệu chứng của một vấn đề trong mã: vòng lặp không thoát, truy vấn thiếu chỉ mục, cơ chế thử lại chạy loạn, hoặc rò rỉ bộ nhớ khiến bộ thu gom rác làm việc liên tục.

Nếu nguyên nhân nằm ở đó thì nâng cấu hình chỉ làm chậm lại thời điểm sự cố tái diễn, và bạn trả tiền nhiều hơn cho cùng một lỗi.

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

  • C. Nâng bậc App Service Plan và D. Bật tự co giãn — đều là biện pháp hợp lệ, nhưng là bước sau khi đã biết nguyên nhân. Làm trước thì che mất vấn đề.
  • B. Kiểm tra độ trễ mạng tới cơ sở dữ liệu — độ trễ mạng thường khiến CPU thấp đi (ứng dụng ngồi chờ), nên nó không khớp với triệu chứng.