Ngân hàng đề — Microsoft Azure Developer
Tìm thấy 409 câu.
You have a Python app running in an Azure App Service and need to ensure that it is running on Python 3.10. Where in the Azure Portal do you set the Python version for an App Service?
- A Deployment > Deployment Center
- B Configuration > General Settings
- C App Service Plan > Apps
- D Settings > Properties
Xem giải thích
Đáp án
B — Configuration → General Settings.
Vì sao đúng
⚠ Phiên bản runtime nằm trong trang General Settings của mục Configuration:
⚠ App Service → Configuration
⚠ Application settings ← biến môi trường
⚠ Connection strings
⚠ GENERAL SETTINGS ← phiên bản runtime
⚠ Stack: Python
⚠ Major version: 3
⚠ Minor version: 3.10
| Cũng ở General Settings | Thiết lập |
|---|---|
| ⚠ Runtime stack và phiên bản | ⚠ đề này |
| ⚠ Always On | |
| ⚠ ARR Affinity | |
| ⚠ HTTPS Only | |
| ⚠ Minimum TLS version | |
| ⚠ FTP state | |
| ⚠ WebSockets |
Vì sao các phương án khác sai
-
A (Deployment Center) — ⚠ cấu hình NGUỒN triển khai: ⚠ GitHub, Azure Repos, container registry.
-
D (Settings → Properties) — ⚠ chỉ hiển thị thông tin đọc: ⚠ URL, trạng thái, subscription.
-
C (App Service Plan → Apps) — ⚠ liệt kê các app trên plan, không cấu hình runtime.
Ghi nhớ
⚠ Ghi nhớ về chất lượng câu hỏi: ⚠ câu này ⚠ hoàn chỉnh chùm ba câu về General Settings qua hai lô.
| Câu | Thiết lập | Khoá |
|---|---|---|
| ⚠ #21482 | ⚠ giữ app không bị dỡ tải | ⚠ Always On |
| ⚠ #21484 | ⚠ giữ client ở cùng instance | ⚠ ARR Affinity |
| ⚠ #21504 (câu này) | ⚠ đặt phiên bản Python | ⚠ General Settings |
| ⚠ Ba câu | ⚠ cùng một trang cấu hình | |
| ⚠ Mẹo | ⚠ thuộc danh sách thiết lập ở General Settings là ăn cả chùm |
⚠ Các mục cấu hình chính của App Service: | Mục | Nội dung | |---|---| | ⚠ Configuration | ⚠ app settings, connection strings, general settings | | ⚠ Deployment Center | ⚠ nguồn và phương thức triển khai | | ⚠ Scale up / Scale out | ⚠ bậc và số instance | | ⚠ Deployment slots | | | ⚠ Identity | ⚠ managed identity | | ⚠ Networking | ⚠ VNet integration, private endpoint | | ⚠ TLS/SSL settings | ⚠ chứng chỉ và tên miền |
Từ khoá nhận diện:
"phiên bản runtime" → ⚠ Configuration → General Settings "biến môi trường" → ⚠ Configuration → Application settings "nguồn triển khai" → ⚠ Deployment Center "managed identity" → ⚠ Identity
| ⚠ Lưu ý khi đổi phiên bản runtime | Lưu ý |
|---|---|
| ⚠ Ứng dụng sẽ KHỞI ĐỘNG LẠI | |
| ⚠ Nên thử ở SLOT staging trước | |
| ⚠ Kiểm tra thư viện có tương thích không | |
| ⚠ Với Linux App Service | ⚠ runtime stack chọn lúc tạo, đổi giới hạn hơn |
| ⚠ Vì sao nên ghim phiên bản cụ thể | Lý do |
|---|---|
| ⚠ Phiên bản mặc định có thể được nâng theo thời gian | |
| ⚠ Ứng dụng có thể vỡ khi runtime đổi | |
| ⚠ Nhưng cũng đừng | ⚠ ghim vào phiên bản đã hết hỗ trợ |
| ⚠ Cân bằng | ⚠ ghim minor version, nâng có kế hoạch |
Ba việc kiểm chứng: | Việc | Cách | |---|---| | Phiên bản runtime hiện tại còn được hỗ trợ không | | | Đổi runtime có thử ở slot trước không | | | Ứng dụng có phụ thuộc phiên bản cụ thể không | |
Và thao tác nên làm trước mỗi lần đổi phiên bản runtime trên môi trường thật: thử ở slot staging rồi swap. Đổi trực tiếp trên production nghĩa là khởi động lại ứng dụng với một runtime chưa được kiểm chứng.
- A create container
- B container aci
- C aci create
- D container create
Xem giải thích
Đáp án
D — az container create
Vì sao đúng
⚠ Cấu trúc lệnh Azure CLI luôn là az <nhóm> <hành động>:
⚠ az container create \
⚠ --resource-group myResourceGroup \
⚠ --name mycontainer \
⚠ --image mcr.microsoft.com/azuredocs/aci-helloworld \
⚠ --dns-name-label aci-demo \
⚠ --ports 80
| Quy tắc | Nội dung |
|---|---|
| ⚠ Nhóm lệnh đứng TRƯỚC | ⚠ container |
| ⚠ Hành động đứng SAU | ⚠ create |
⚠ Nhóm cho ACI là container |
⚠ không phải aci |
Vì sao các phương án khác sai
-
A (
create container) và D-sai (delete container) — ⚠ ĐẢO thứ tự: ⚠ Azure CLI luôn là nhóm rồi mới tới hành động. -
C (
aci create) — ⚠ nhóm lệnh KHÔNG phảiaci; ⚠ đó là tên viết tắt của dịch vụ, không phải tên nhóm CLI. -
B (
container aci) — ⚠ không phải lệnh hợp lệ.
Ghi nhớ
⚠ Ghi nhớ về chất lượng câu hỏi: ⚠ câu này ⚠ là cặp với #21514 trong cùng lô.
| Câu | Hành động | Khoá |
|---|---|---|
| ⚠ #21505 (câu này) | ⚠ tạo ACI | ⚠ az container create |
| ⚠ #21514 | ⚠ xoá ACI | ⚠ az container delete |
| ⚠ Cặp đối xứng | ⚠ cùng nhóm lệnh, khác hành động | |
| ⚠ Mẹo | ⚠ nhớ NHÓM lệnh là trả lời được cả hai |
⚠ Tên nhóm lệnh CLI không phải lúc nào cũng là tên viết tắt dịch vụ: | Dịch vụ | Nhóm lệnh CLI | |---|---| | ⚠ Container Instances (ACI) | ⚠ az container | | ⚠ Container Registry (ACR) | ⚠ az acr | | ⚠ Kubernetes Service (AKS) | ⚠ az aks | | ⚠ App Service | ⚠ az webapp | | ⚠ Functions | ⚠ az functionapp | | ⚠ Storage | ⚠ az storage | | ⚠ Bẫy | ⚠ ACI dùng container, không dùng aci |
Từ khoá nhận diện:
"tạo container đơn lẻ" → ⚠ az container create "registry" → ⚠ az acr "cụm Kubernetes" → ⚠ az aks "web app" → ⚠ az webapp
⚠ Tham số quan trọng của az container create |
Tham số |
|---|---|
⚠ --image |
⚠ ảnh container |
⚠ --dns-name-label |
⚠ nhãn cho FQDN công khai |
⚠ --ports |
⚠ cổng mở |
⚠ --cpu, --memory |
⚠ tài nguyên cấp phát |
⚠ --restart-policy |
⚠ Always, OnFailure, Never |
⚠ --environment-variables |
|
⚠ --secure-environment-variables |
⚠ cho giá trị nhạy cảm |
| ⚠ Restart policy — chọn đúng | Chọn |
|---|---|
⚠ Always |
⚠ dịch vụ chạy liên tục — mặc định |
⚠ OnFailure |
⚠ tác vụ chạy rồi thoát, thử lại nếu lỗi |
⚠ Never |
⚠ chạy đúng một lần |
| ⚠ Với tác vụ theo lô | ⚠ OnFailure hoặc Never, không phải Always |
⚠ Chọn nhầm Always |
⚠ container chạy xong lại khởi động lại mãi — và tính tiền mãi |
Ba việc kiểm chứng: | Việc | Cách | |---|---| | Nhóm lệnh có đúng không | ⚠ container chứ không phải aci | | Restart policy có phù hợp không | | | Biến môi trường nhạy cảm có dùng --secure- không | |
Và cấu hình dễ gây tốn tiền nhất khi chạy tác vụ theo lô trên Container Instances: để restart policy mặc định là Always. Container chạy xong thoát, Azure khởi động lại, và vòng lặp đó tính tiền vô tận.
- A FALSE
- B TRUE
Xem giải thích
Đáp án
A — SAI (FALSE).
Vì sao đúng
⚠ Azure Functions KHÔNG có trigger email gốc: | Trigger có sẵn của Functions | Nội dung | |---|---| | ⚠ HTTP | | | ⚠ Timer | | | ⚠ Blob, Queue, Table | | | ⚠ Service Bus, Event Hub, Event Grid | | | ⚠ Cosmos DB change feed | | | ⚠ SignalR, Kafka, RabbitMQ | | | ⚠ KHÔNG có | ⚠ email trigger |
⚠ Muốn phản ứng khi có email
↓
⚠ Cách 1: LOGIC APPS
⚠ có connector Outlook, Gmail
⚠ Logic App bắt email rồi gọi Function
↓
⚠ Cách 2: Microsoft Graph
⚠ đăng ký webhook subscription
⚠ Graph gọi HTTP trigger của Function
Vì sao các phương án khác sai
- B (ĐÚNG) — ⚠ SAI: ⚠ không có tích hợp email gốc nào trong danh sách trigger.
Ghi nhớ
⚠ Functions và Logic Apps — phân công: | Tiêu chí | Functions | Logic Apps | |---|---|---| | ⚠ Cách xây | ⚠ viết MÃ | ⚠ kéo thả | | ⚠ Connector SaaS | ⚠ rất ít | ⚠ hàng trăm | | ⚠ Email, Salesforce, SharePoint | ⚠ KHÔNG có sẵn | ⚠ có connector | | ⚠ Logic phức tạp | ⚠ mạnh | ⚠ hạn chế | | ⚠ Kết hợp | ⚠ Logic App làm cầu nối, Function làm xử lý |
Từ khoá nhận diện:
"email, Salesforce, SharePoint, Teams" → ⚠ Logic Apps connector "blob, queue, HTTP, timer" → ⚠ Functions trigger "webhook từ Microsoft 365" → ⚠ Graph subscription + HTTP trigger "quy trình nghiệp vụ kéo thả" → ⚠ Logic Apps
| ⚠ Mẫu kết hợp phổ biến | Mẫu |
|---|---|
| ⚠ Logic App bắt sự kiện từ SaaS | |
| ⚠ Gọi Function để xử lý logic phức tạp | |
| ⚠ Function trả kết quả về Logic App | |
| ⚠ Ưu điểm | ⚠ tận dụng connector sẵn có mà vẫn viết được logic tuỳ ý |
| ⚠ Microsoft Graph webhook — cách kia | Cách |
|---|---|
| ⚠ Đăng ký subscription cho tài nguyên | ⚠ mailbox, calendar, drive |
| ⚠ Graph gọi vào URL của bạn khi có thay đổi | |
| ⚠ Subscription có thời hạn, phải GIA HẠN | ⚠ điểm hay quên |
| ⚠ Cần | ⚠ endpoint công khai và xác thực đúng |
| ⚠ Cách nhận biết trigger có tồn tại hay không | Cách |
|---|---|
| ⚠ Trigger của Functions gắn với dịch vụ AZURE hoặc giao thức chuẩn | |
| ⚠ Trigger gắn với ứng dụng SaaS thì thuộc Logic Apps | |
| ⚠ Quy tắc này | ⚠ giúp loại nhanh các phương án bịa |
Ba việc kiểm chứng: | Việc | Cách | |---|---| | Nguồn sự kiện là dịch vụ Azure hay ứng dụng SaaS | | | Có connector Logic Apps cho nguồn đó không | | | Graph subscription có cơ chế gia hạn chưa | |
Và quy tắc phân biệt nhanh giữa hai dịch vụ, dùng được cho mọi câu hỏi kiểu này: Functions kết nối với hạ tầng Azure, Logic Apps kết nối với thế giới ứng dụng bên ngoài.
- A Android and iOS Only
- B Windows and Linux Only
- C Windows Only
- D Windows, Linux and macOS
Xem giải thích
Đáp án
D — Windows, Linux và macOS.
Vì sao đúng
⚠ Azure Files dùng giao thức SMB chuẩn, nên mọi hệ điều hành hỗ trợ SMB đều mount được: | Hệ điều hành | Cách mount | |---|---| | ⚠ Windows | ⚠ net use Z: \\... | | ⚠ Linux | ⚠ mount -t cifs | | ⚠ macOS | ⚠ Finder hoặc mount_smbfs | | ⚠ Ngoài ra | ⚠ NFS 4.1 cho Linux ở bậc Premium |
Vì sao các phương án khác sai
-
B (chỉ Windows và Linux) — ⚠ thiếu macOS.
-
C (chỉ Windows) — ⚠ quá hẹp: ⚠ SMB là giao thức mở.
-
A (chỉ Android và iOS) — ⚠ ngược hoàn toàn: ⚠ đó là các nền tảng ít hỗ trợ nhất.
Ghi nhớ
⚠ Ghi nhớ về chất lượng câu hỏi: ⚠ câu này ⚠ hoàn chỉnh chùm về Azure Files cùng #19599, #19641, #21423.
| Câu | Hỏi gì | Khoá |
|---|---|---|
| ⚠ #19599 | ⚠ dịch vụ nào mount được SMB | ⚠ Azure Files |
| ⚠ #19641 | ⚠ bốn bậc giá | ⚠ Premium, TO, Hot, Cool |
| ⚠ #21423 | ⚠ cache cục bộ | ⚠ Azure File Sync |
| ⚠ #21507 (câu này) | ⚠ hệ điều hành nào mount được | ⚠ Windows, Linux, macOS |
| ⚠ Bốn câu | ⚠ vẽ trọn chủ đề Azure Files qua bốn lô |
⚠ Hai giao thức của Azure Files: | Giao thức | Đặc điểm | |---|---| | ⚠ SMB 3.x | ⚠ mọi bậc, đa nền tảng, có mã hoá | | ⚠ NFS 4.1 | ⚠ CHỈ bậc Premium, chỉ Linux, KHÔNG mã hoá đường truyền | | ⚠ Chọn NFS khi | ⚠ ứng dụng Linux quen NFS, và mạng đã được bảo vệ |
Từ khoá nhận diện:
"mount như ổ đĩa, đa nền tảng" → ⚠ Azure Files SMB "NFS" → ⚠ chỉ Premium, chỉ Linux "cache cục bộ ở chi nhánh" → ⚠ Azure File Sync "truy cập qua URL" → ⚠ Blob
| ⚠ NHẮC LẠI cạm bẫy cổng 445 | Cạm bẫy |
|---|---|
| ⚠ SMB dùng cổng 445 | |
| ⚠ Nhiều nhà mạng CHẶN cổng này ra Internet | |
| ⚠ Trong Azure thì mount được, từ nhà thì không | |
| ⚠ Giải pháp | ⚠ VPN, ExpressRoute, hoặc private endpoint |
| ⚠ Đây là | ⚠ nguyên nhân số một khiến việc mount thất bại |
| ⚠ Xác thực khi mount | Cách |
|---|---|
| ⚠ Khoá tài khoản storage | ⚠ đơn giản nhưng quyền toàn phần |
| ⚠ Entra ID Domain Services | ⚠ dùng danh tính người dùng |
| ⚠ AD DS tại chỗ | ⚠ cho môi trường lai |
| ⚠ Với môi trường doanh nghiệp | ⚠ nên dùng danh tính, không dùng khoá chung |
Ba việc kiểm chứng: | Việc | Cách | |---|---| | Cổng 445 có bị chặn không | ⚠ nguyên nhân số một | | Xác thực bằng khoá hay bằng danh tính | | | Cần SMB hay NFS | |
Và điều làm Azure Files khác biệt so với mọi dịch vụ lưu trữ khác của Azure: nó nói giao thức tệp tiêu chuẩn, nên ứng dụng cũ dùng được ngay mà không phải sửa một dòng mã.
- A Immutable blobs
- B Soft Delete
- C Change Feed
- D Azure Policy
Xem giải thích
Đáp án
B — Soft Delete (xoá mềm).
Vì sao đúng
⚠ Soft delete giữ lại blob đã xoá trong thời gian lưu giữ đặt trước:
⚠ Xoá blob
↓ ⚠ soft delete đang BẬT
⚠ Chuyển sang trạng thái "đã xoá mềm"
↓ ⚠ trong thời hạn (1-365 ngày)
⚠ Khôi phục được bằng Undelete
↓ ⚠ hết hạn
⚠ Xoá vĩnh viễn
| Ba mức soft delete | Bảo vệ |
|---|---|
| ⚠ Blob soft delete | ⚠ từng blob |
| ⚠ Container soft delete | ⚠ cả container |
| ⚠ Account-level | ⚠ có ở Recovery Services vault |
Vì sao các phương án khác sai
-
A (Immutable blobs) — ⚠ NGĂN xoá ngay từ đầu: ⚠ chính sách WORM cho tuân thủ; ⚠ nó ⚠ phòng ngừa, không ⚠ khôi phục.
-
C (Change Feed) — ⚠ nhật ký thay đổi có thứ tự: ⚠ cho biết đã có gì thay đổi, không khôi phục nội dung.
-
D (Azure Policy) — ⚠ quản trị và tuân thủ, không liên quan tới khôi phục.
Ghi nhớ
⚠ Ghi nhớ về chất lượng câu hỏi: ⚠ câu này ⚠ TRÙNG với #19505 ở lô 165, thứ tự phương án ⚠ bị xáo.
| Câu | Chứng chỉ | Vị trí đáp án |
|---|---|---|
| ⚠ #19505 | ⚠ Data Fundamentals | ⚠ D — Soft Delete |
| ⚠ #21508 (câu này) | ⚠ Azure Developer | ⚠ B — Soft Delete |
| ⚠ Đề bài | ⚠ giống nhau từng chữ | |
| ⚠ Đây là câu trùng thứ NHẤT | ⚠ trong NĂM câu trùng của lô này | |
| ⚠ Cũng đối chiếu | ⚠ #19639 hỏi CHỌN HAI, khoá là versioning VÀ soft delete |
⚠ Năm tính năng bảo vệ dữ liệu Blob: | Tính năng | Chức năng | |---|---| | ⚠ Soft delete (blob) | ⚠ khôi phục blob đã xoá | | ⚠ Soft delete (container) | ⚠ khôi phục cả container | | ⚠ Versioning | ⚠ giữ phiên bản khi GHI ĐÈ | | ⚠ Snapshot | ⚠ ảnh chụp thủ công | | ⚠ Point-in-time restore | ⚠ khôi phục container về mốc thời gian | | ⚠ Immutability (WORM) | ⚠ CẤM xoá và sửa |
Từ khoá nhận diện:
"khôi phục tệp đã XOÁ" → ⚠ soft delete "khôi phục nội dung bị GHI ĐÈ" → ⚠ versioning "khôi phục cả container về mốc thời gian" → ⚠ point-in-time restore "cấm xoá vì tuân thủ" → ⚠ immutable
| ⚠ Vì sao cần cả soft delete lẫn versioning | Lý do |
|---|---|
| ⚠ Xoá và ghi đè là HAI cách mất dữ liệu khác nhau | |
| ⚠ Mã độc tống tiền thường GHI ĐÈ, không xoá | |
| ⚠ Chỉ soft delete không cứu được ca đó | |
| ⚠ Bật cả hai | ⚠ mới bao phủ đủ |
Ba việc kiểm chứng: | Việc | Cách | |---|---| | Đã bật cả soft delete lẫn versioning chưa | | | Thời hạn giữ là bao nhiêu ngày | | | Có nhầm chữ cái từ lần gặp trước không | |
Và điều năm câu trùng lặp trong lô này nhắc lại một lần nữa: cùng một câu hỏi xuất hiện ở nhiều chứng chỉ với thứ tự phương án khác nhau. Nhớ nội dung, đừng nhớ chữ cái.
You have created a web app called TestWebApp in the West US region. After creating it, you decide you'd rather this web app run in the East US region. How do you move a Web App to a new region?
- A You cannot. If you want to move an app between regions, you must clone the app, or redeploy the app from scratch.
- B It can only be done in PowerShell or CLI
- C You can't move the web app, but you can move the App Service Plan it runs in which has the same effect.
- D In the Azure Portal, open the Web App, and chooose the Move menu at the top of the Overview screen
Xem giải thích
Đáp án
A — Bạn KHÔNG THỂ. Muốn chuyển ứng dụng sang vùng khác thì phải nhân bản (clone) hoặc triển khai lại từ đầu.
Vì sao đúng
⚠ Vùng của App Service gắn với App Service Plan, và không đổi được:
⚠ App Service Plan tạo ở West US
↓
⚠ Mọi app trên plan đó nằm ở West US
↓ ⚠ muốn sang East US
⚠ Tạo plan MỚI ở East US
⚠ Tạo app MỚI trên plan đó
⚠ Triển khai lại mã nguồn
⚠ Chuyển tên miền và cấu hình
| Hai cách thực tế | Nội dung |
|---|---|
| ⚠ Clone app | ⚠ sao chép cấu hình sang app mới — cần bậc Premium |
| ⚠ Triển khai lại từ đầu | ⚠ sạch sẽ nhất, nhất là nếu có IaC |
Vì sao các phương án khác sai
-
D (dùng menu Move trong Portal) — ⚠ menu Move chỉ chuyển giữa RESOURCE GROUP hoặc SUBSCRIPTION, ⚠ KHÔNG chuyển vùng.
-
B (chỉ làm được bằng PowerShell hoặc CLI) — ⚠ SAI: ⚠ không công cụ nào chuyển vùng được.
-
C (chuyển App Service Plan sang vùng khác) — ⚠ plan cũng KHÔNG chuyển vùng được.
Ghi nhớ
⚠ Những thứ KHÔNG đổi được sau khi tạo trên Azure: | Tài nguyên | Không đổi được | |---|---| | ⚠ App Service Plan | ⚠ vùng, hệ điều hành | | ⚠ Storage Account | ⚠ vùng, namespace phân cấp | | ⚠ Cosmos DB | ⚠ API, partition key | | ⚠ VNet | ⚠ vùng | | ⚠ Hầu hết tài nguyên | ⚠ VÙNG | | ⚠ Quy tắc chung | ⚠ vùng là quyết định gần như vĩnh viễn |
Từ khoá nhận diện:
"chuyển sang vùng khác" → ⚠ hầu như luôn là tạo mới và di chuyển "menu Move" → ⚠ chỉ resource group và subscription "clone app" → ⚠ cần bậc Premium "Azure Resource Mover" → ⚠ công cụ hỗ trợ, nhưng vẫn là tạo mới ở đích
| ⚠ Azure Resource Mover — công cụ đáng biết | Nội dung |
|---|---|
| ⚠ Hỗ trợ chuyển một số loại tài nguyên giữa vùng | |
| ⚠ Kiểm tra phụ thuộc và tạo bản ở vùng đích | |
| ⚠ KHÔNG phải "di chuyển" theo nghĩa đen | |
| ⚠ Hỗ trợ | ⚠ VM, SQL, network — không phải mọi dịch vụ |
| ⚠ Vì sao có IaC thì việc này rất nhẹ nhàng | Lý do |
|---|---|
| ⚠ Đổi tham số vùng trong template | |
| ⚠ Triển khai lại ở vùng mới | |
| ⚠ Chuyển dữ liệu và tên miền | |
| ⚠ Không có IaC | ⚠ phải dựng lại thủ công và dễ sót cấu hình |
| ⚠ Đây là | ⚠ lợi ích cụ thể của Infrastructure as Code |
| ⚠ Chuyển vùng — checklist | Việc |
|---|---|
| ⚠ Tạo hạ tầng ở vùng mới | |
| ⚠ Di chuyển dữ liệu | |
| ⚠ Kiểm thử kỹ | |
| ⚠ Chuyển tên miền và chứng chỉ | |
| ⚠ Dùng Traffic Manager hoặc Front Door để chuyển dần | |
| ⚠ Xoá hạ tầng cũ sau khi ổn định |
Ba việc kiểm chứng: | Việc | Cách | |---|---| | Vùng đã chọn đúng ngay từ đầu chưa | ⚠ quyết định gần như vĩnh viễn | | Hạ tầng có mô tả bằng mã không | ⚠ giúp dựng lại ở vùng mới rất nhanh | | Có kế hoạch chuyển tên miền không | |
Và giá trị của Infrastructure as Code thể hiện rõ nhất đúng vào tình huống này: dựng lại toàn bộ hệ thống ở một vùng khác chỉ là đổi một tham số và chạy lại, thay vì tái tạo thủ công hàng chục cấu hình.
- A 3
- B 1
- C 1 copy in each Availability Zone
- D 6
Xem giải thích
Đáp án
A — 3 bản sao.
Vì sao đúng
⚠ LRS giữ ba bản trong CÙNG một trung tâm dữ liệu:
⚠ Một trung tâm dữ liệu
⚠ Bản sao 1 (rack A)
⚠ Bản sao 2 (rack B)
⚠ Bản sao 3 (rack C)
↓
⚠ Chịu được: hỏng ổ đĩa, hỏng rack
⚠ KHÔNG chịu được: mất cả trung tâm dữ liệu
| Mức | Bản sao | Phân bố |
|---|---|---|
| ⚠ LRS | ⚠ 3 | ⚠ một DC |
| ⚠ ZRS | ⚠ 3 | ⚠ ba zone |
| ⚠ GRS | ⚠ 6 | ⚠ hai vùng |
| ⚠ GZRS | ⚠ 6 | ⚠ zone + vùng |
Vì sao các phương án khác sai
-
C (1 bản trong mỗi availability zone) — ⚠ đó là mô tả của ZRS.
-
D (6 bản) — ⚠ là GRS hoặc GZRS.
-
B (1 bản) — ⚠ không có mức nào chỉ giữ một bản.
Ghi nhớ
⚠ Ghi nhớ về chất lượng câu hỏi: ⚠ câu này ⚠ TRÙNG với #19617 ở lô 167, thứ tự phương án ⚠ bị xáo.
| Câu | Chứng chỉ | Vị trí đáp án |
|---|---|---|
| ⚠ #19617 | ⚠ Data Fundamentals | ⚠ B — "3" |
| ⚠ #21510 (câu này) | ⚠ Azure Developer | ⚠ A — "3" |
| ⚠ Đây là câu trùng thứ HAI | ⚠ trong năm câu trùng của lô | |
| ⚠ Cùng chủ đề đã xuất hiện | ⚠ #19512, #19562, #19596, #21435, #21469, #21488 | |
| ⚠ Tổng cộng | ⚠ BẢY câu về mức nhân bản qua sáu lô |
⚠ Bảng nhân bản — chốt lại lần cuối: | Mức | Bản sao | Chịu được | Giá | |---|---|---|---| | ⚠ LRS | ⚠ 3 | ⚠ hỏng ổ, rack | ⚠ rẻ nhất | | ⚠ ZRS | ⚠ 3 | ⚠ mất zone | | | ⚠ GRS | ⚠ 6 | ⚠ mất vùng | | | ⚠ GZRS | ⚠ 6 | ⚠ zone + vùng | ⚠ đắt nhất |
⚠ Mẹo nhớ: | Mẹo | Nội dung | |---|---| | ⚠ Không có chữ G | ⚠ 3 bản | | ⚠ Có chữ G | ⚠ 6 bản | | ⚠ Có chữ Z | ⚠ qua các zone | | ⚠ Có RA- | ⚠ đọc được ở vùng phụ |
Từ khoá nhận diện:
"3 bản, một trung tâm dữ liệu" → ⚠ LRS "3 bản, ba zone" → ⚠ ZRS "6 bản, hai vùng" → ⚠ GRS "rẻ nhất" → ⚠ LRS
| ⚠ Khi nào LRS là đủ | Khi nào |
|---|---|
| ⚠ Môi trường dev và test | |
| ⚠ Dữ liệu dựng lại được | |
| ⚠ Đã có sao lưu độc lập | |
| ⚠ Ràng buộc pháp lý buộc dữ liệu ở một nơi |
Ba việc kiểm chứng: | Việc | Cách | |---|---| | Môi trường dev có dùng mức đắt hơn cần thiết không | | | Dữ liệu có tái tạo được không | | | Đã có soft delete và versioning chưa | |
Và con số cần nhớ chắc nhất trong toàn bộ chủ đề lưu trữ Azure, vì nó xuất hiện tới bảy lần qua sáu lô: LRS và ZRS đều là ba bản, GRS và GZRS đều là sáu bản.
- A Azure Portal
- B ARM templates
- C PowerShell Scripts
- D CLI Bash Shell
Xem giải thích
Đáp án
B — ARM template.
Vì sao đúng
⚠ Đề mô tả chính xác đặc điểm của ARM template: | Đặc điểm đề nêu | ARM template | |---|---| | ⚠ Định nghĩa trong tệp JSON | ⚠ đúng định dạng | | ⚠ Đưa vào kho mã nguồn | ⚠ quản lý phiên bản như mã | | ⚠ Infrastructure as Code | ⚠ đúng thuật ngữ |
⚠ {
⚠ "$schema": "...",
⚠ "resources": [{
⚠ "type": "Microsoft.DocumentDB/databaseAccounts",
⚠ ...
⚠ }]
⚠ }
↓
⚠ git commit → review → triển khai tự động
Vì sao các phương án khác sai
-
C (PowerShell script) và D (CLI Bash) — ⚠ script MỆNH LỆNH: ⚠ mô tả các BƯỚC, không phải trạng thái mong muốn.
-
A (Azure Portal) — ⚠ thao tác tay, không có tệp nào để lưu.
Ghi nhớ
⚠ Ghi nhớ về chất lượng câu hỏi: ⚠ câu này ⚠ TRÙNG với #19630 ở lô 167, thứ tự phương án ⚠ bị xáo.
| Câu | Chứng chỉ | Vị trí đáp án |
|---|---|---|
| ⚠ #19630 | ⚠ Data Fundamentals | ⚠ A — ARM templates |
| ⚠ #21511 (câu này) | ⚠ Azure Developer | ⚠ B — ARM templates |
| ⚠ Đây là câu trùng thứ BA | ⚠ trong năm câu trùng của lô | |
| ⚠ Cùng chủ đề | ⚠ #19513, #19638, #21439, #21473, #21486 | |
| ⚠ Tổng cộng | ⚠ SÁU câu về cấp phát tài nguyên và IaC qua ba lô |
⚠ Bốn cách cấp phát — bảng chốt: | Cách | Đặc điểm | Dùng khi | |---|---|---| | ⚠ Portal | ⚠ thủ công | ⚠ làm một lần | | ⚠ CLI / PowerShell | ⚠ script mệnh lệnh | ⚠ tác vụ vận hành lặp lại | | ⚠ ARM / Bicep | ⚠ khai báo, IaC | ⚠ triển khai nhiều môi trường | | ⚠ SDK | ⚠ nhúng trong ứng dụng | |
Từ khoá nhận diện:
"tệp JSON, Infrastructure as Code" → ⚠ ARM template "script chạy từ dòng lệnh" → ⚠ CLI, PowerShell "chỉ làm một lần" → ⚠ Portal "cú pháp gọn hơn ARM" → ⚠ Bicep
| ⚠ Mệnh lệnh và khai báo — nhắc lại | Phân biệt |
|---|---|
| ⚠ Mệnh lệnh: mô tả CÁC BƯỚC | ⚠ chạy hai lần có thể lỗi |
| ⚠ Khai báo: mô tả TRẠNG THÁI | ⚠ chạy lại vẫn cùng kết quả |
| ⚠ Khai báo còn | ⚠ tự lo thứ tự phụ thuộc |
| ⚠ Bicep — khuyến nghị hiện nay | Nội dung |
|---|---|
| ⚠ Cú pháp gọn hơn khoảng một nửa | |
| ⚠ Biên dịch ra chính ARM JSON | |
| ⚠ Module thay cho template lồng rắc rối | |
| ⚠ Không cần state file | |
| ⚠ Dự án mới trên Azure | ⚠ nên bắt đầu bằng Bicep |
Ba việc kiểm chứng: | Việc | Cách | |---|---| | Việc này lặp lại bao nhiêu lần | ⚠ quyết định có nên viết mã không | | Dev và prod có dùng chung template không | | | Đã chạy what-if trước khi deploy chưa | |
Và điều ba câu trùng lặp đầu tiên của lô này cho thấy rất rõ: bộ đề dùng chung câu hỏi giữa Data Fundamentals và Azure Developer, và mỗi lần xuất hiện lại xáo thứ tự phương án.
Which feature of Azure Storage Account allows you to restore one or more containers to an earlier state?
- A Point-in-time restore
- B Soft delete
- C Soft delete for containers
- D Azure Backup
Xem giải thích
Đáp án
A — Point-in-time restore.
Vì sao đúng
⚠ Point-in-time restore đưa MỘT HOẶC NHIỀU container về trạng thái tại một thời điểm:
⚠ Chọn mốc thời gian trong quá khứ
↓
⚠ Azure khôi phục TOÀN BỘ container
⚠ về đúng trạng thái lúc đó
↓
⚠ Blob bị xoá quay lại
⚠ Blob bị ghi đè quay về bản cũ
| Điều kiện bắt buộc | Nội dung |
|---|---|
| ⚠ Phải bật SOFT DELETE cho blob | |
| ⚠ Phải bật VERSIONING | |
| ⚠ Phải bật CHANGE FEED | |
| ⚠ Chỉ áp dụng cho | ⚠ block blob trong tài khoản GPv2 standard |
| ⚠ Khoảng khôi phục | ⚠ giới hạn theo cấu hình lưu giữ |
Vì sao các phương án khác sai
-
B (Soft delete) và C (Soft delete cho container) — ⚠ khôi phục TỪNG đối tượng đã xoá, ⚠ không đưa cả container về một thời điểm.
-
D (Azure Backup) — ⚠ có sao lưu blob nhưng ⚠ không phải tính năng nội tại mà đề mô tả.
Ghi nhớ
⚠ Ghi nhớ về chất lượng câu hỏi: ⚠ câu này ⚠ là bậc cao nhất trong chùm bảo vệ dữ liệu blob.
| Câu | Tính năng | Phạm vi |
|---|---|---|
| ⚠ #19505 / #21508 | ⚠ soft delete | ⚠ từng blob đã xoá |
| ⚠ #19639 | ⚠ soft delete + versioning | ⚠ xoá và ghi đè |
| ⚠ #21512 (câu này) | ⚠ point-in-time restore | ⚠ CẢ container về một mốc |
| ⚠ Quan hệ | ⚠ point-in-time restore XÂY TRÊN hai cái kia | |
| ⚠ Nghĩa là | ⚠ không bật soft delete và versioning thì không dùng được nó |
⚠ Thang bảo vệ dữ liệu blob — từ nhẹ tới mạnh: | Mức | Bảo vệ | |---|---| | ⚠ Soft delete | ⚠ blob đã xoá | | ⚠ Versioning | ⚠ blob bị ghi đè | | ⚠ Point-in-time restore | ⚠ cả container về một mốc thời gian | | ⚠ Azure Backup for Blobs | ⚠ sao lưu theo lịch, quản lý tập trung | | ⚠ Immutability | ⚠ cấm sửa xoá hoàn toàn |
Từ khoá nhận diện:
"khôi phục container về trạng thái trước" → ⚠ point-in-time restore "khôi phục một blob đã xoá" → ⚠ soft delete "khôi phục bản trước khi ghi đè" → ⚠ versioning "cấm xoá vì tuân thủ" → ⚠ immutable
| ⚠ Vì sao point-in-time restore quan trọng | Lý do |
|---|---|
| ⚠ Sự cố thường ảnh hưởng NHIỀU tệp cùng lúc | |
| ⚠ Mã độc mã hoá hàng nghìn blob | |
| ⚠ Script lỗi ghi đè cả thư mục | |
| ⚠ Khôi phục từng tệp | ⚠ không khả thi ở quy mô đó |
| ⚠ Point-in-time restore | ⚠ giải quyết đúng bài toán này |
| ⚠ Hạn chế cần biết | Hạn chế |
|---|---|
| ⚠ KHÔNG khôi phục được blob trong container ĐÃ BỊ XOÁ | |
| ⚠ Không hỗ trợ page blob và append blob | |
| ⚠ Không dùng được với namespace phân cấp | ⚠ Data Lake Gen2 |
| ⚠ Vì vậy | ⚠ vẫn cần soft delete cho container |
Ba việc kiểm chứng: | Việc | Cách | |---|---| | Ba tính năng nền đã bật đủ chưa | ⚠ soft delete, versioning, change feed | | Khoảng thời gian khôi phục là bao lâu | | | Đã thử khôi phục thật chưa | |
Và điều kiện tiên quyết dễ bị bỏ sót của point-in-time restore: nó chỉ hoạt động khi soft delete, versioning và change feed đều đã bật trước đó. Bật sau khi sự cố xảy ra thì đã muộn.
What effect does adding a Key Vault Reference to your app using Configuration Explorer have?
- A Your app pulls the secret from Key Vault (using App Configuration) and not hard-coded in the app.config file.
- B You can connect to the key vault by code inside your application
- C A Key Vault will be created for you if one does not exist
- D Your application will use SSL/HTTPS for communication
Xem giải thích
Đáp án
A — Ứng dụng LẤY secret từ Key Vault (thông qua App Configuration) thay vì ghi cứng trong tệp app.config.
Vì sao đúng
⚠ Key Vault reference cho phép tách bí mật ra khỏi cấu hình ứng dụng:
⚠ App Configuration
⚠ khoá "DbPassword"
⚠ giá trị = THAM CHIẾU tới Key Vault
↓
⚠ Ứng dụng đọc App Configuration
↓
⚠ Runtime tự lấy giá trị thật từ Key Vault
↓
⚠ Mã và tệp cấu hình KHÔNG chứa bí mật nào
| Lợi ích | Nội dung |
|---|---|
| ⚠ Bí mật không nằm trong mã hay tệp cấu hình | |
| ⚠ Đổi secret trong vault, app tự nhận bản mới | |
| ⚠ Quản lý tập trung, có nhật ký truy cập | |
| ⚠ Phân quyền riêng cho từng secret |
Vì sao các phương án khác sai
-
B (kết nối tới vault bằng mã trong ứng dụng) — ⚠ đó là cách THỦ CÔNG: ⚠ vẫn làm được nhưng phải viết mã; ⚠ reference giúp bạn ⚠ không phải viết gì.
-
C (tự tạo Key Vault nếu chưa có) — ⚠ SAI: ⚠ vault phải tồn tại sẵn.
-
D (ứng dụng sẽ dùng HTTPS) — ⚠ không liên quan.
Ghi nhớ
⚠ Ghi nhớ về chất lượng câu hỏi: ⚠ câu này ⚠ bổ sung cho #21465 và #21428 về quản lý bí mật.
| Câu | Hỏi gì | Khoá |
|---|---|---|
| ⚠ #21428 | ⚠ nhiều app khó quản quyền | ⚠ user-assigned identity dùng chung |
| ⚠ #21465 | ⚠ không lưu mật khẩu nào | ⚠ managed identity |
| ⚠ #21513 (câu này) | ⚠ Key Vault reference làm gì | ⚠ lấy secret từ vault, không ghi cứng |
| ⚠ Ba câu | ⚠ vẽ trọn chuỗi: danh tính → quyền → cách lấy secret |
⚠ Ba dịch vụ cấu hình và bí mật: | Dịch vụ | Lưu gì | |---|---| | ⚠ App Settings | ⚠ cấu hình đơn giản của một app | | ⚠ App Configuration | ⚠ cấu hình TẬP TRUNG cho nhiều app, có feature flag | | ⚠ Key Vault | ⚠ BÍ MẬT: mật khẩu, khoá, chứng chỉ | | ⚠ Kết hợp | ⚠ App Configuration giữ cấu hình, tham chiếu Key Vault cho bí mật |
Từ khoá nhận diện:
"tham chiếu tới Key Vault" → ⚠ Key Vault reference "cấu hình tập trung, feature flag" → ⚠ App Configuration "mật khẩu, chứng chỉ" → ⚠ Key Vault "không lưu bí mật nào" → ⚠ managed identity
| ⚠ Feature flag — tính năng đáng biết của App Configuration | Nội dung |
|---|---|
| ⚠ Bật tắt tính năng mà KHÔNG triển khai lại | |
| ⚠ Bật cho một phần người dùng | ⚠ thử nghiệm dần |
| ⚠ Tắt ngay khi có sự cố | |
| ⚠ Rất giá trị cho | ⚠ phát hành an toàn |
| ⚠ Chuỗi hoàn chỉnh không có bí mật nào trong mã | Chuỗi |
|---|---|
| ⚠ App có managed identity | |
| ⚠ Identity có quyền đọc App Configuration và Key Vault | |
| ⚠ App Configuration giữ tham chiếu tới secret | |
| ⚠ Runtime tự lấy giá trị thật | |
| ⚠ Kết quả | ⚠ không có mật khẩu nào trong mã, cấu hình hay biến môi trường |
Ba việc kiểm chứng: | Việc | Cách | |---|---| | Còn bí mật nào trong tệp cấu hình không | | | Managed identity có quyền đọc vault chưa | | | Có dùng feature flag để bật tắt an toàn không | |
Và mục tiêu cuối cùng của cả chuỗi công cụ này, đáng nhắm tới trong mọi ứng dụng: không còn một mật khẩu nào tồn tại trong mã nguồn, tệp cấu hình hay biến môi trường.