AI-200 · Sample questions
10 real questions from the CertifyDeck AI-200 bank, spread across the domains of the official Microsoft Certified: Azure AI Cloud Developer Associate skills outline, with the correct answer and a full explanation of why the other options are wrong. They are original questions written from the public syllabus, not exam dumps, and they are the same style you will find in the practice tests and mock exams.
Correct answer: D. The app identity lacks permission to read the secret, so the reference wasn't resolved.
When a Key Vault reference can't be resolved, App Service passes the reference string itself to the app, and the most common cause is missing access for the app identity, although a deleted secret or a syntax error can also cause it. References work in both app settings and connection strings. App settings are injected as environment variables without any Dockerfile change, and an unversioned reference resolves to the latest version.
Correct answer: B. Run az acr login --expose-token and use the returned access token as the password.
When the Docker daemon isn't running, az acr login --expose-token returns a Microsoft Entra access token that you pass as the password, with the documented all-zero GUID as user name, to docker login or helm registry login. The admin user and repository-scoped tokens aren't Microsoft Entra identities, so they don't meet the requirement. DOCKER_COMMAND only switches to another installed container tool, and none is installed.
Correct answer: D. az containerapp ingress traffic set --label-weight blue=0 green=100
The --label-weight parameter of az containerapp ingress traffic set assigns traffic weights by revision label, so setting green to 100 and blue to 0 moves production traffic while the blue revision stays active for a rollback with the opposite weights. Deactivating the blue revision or switching to single mode removes the old revision from service, which fails the quick rollback requirement, and adding the green label again changes no traffic weights.
Correct answer: C. One topic with a separate subscription for each worker
Topics provide one-to-many publish/subscribe delivery: each subscription acts like a virtual queue that receives a copy of every message sent to the topic. With a single queue, each message is processed by only one competing consumer. Sessions or one queue per worker would force the API to send the message several times, which breaks the send-once requirement.
Correct answer: B. Set each message's MessageId to a value derived from the request ID.
Duplicate detection compares only the application-controlled MessageId against the IDs logged during the history window, so the producer must set a MessageId that can be reconstructed from the business request. Without it, each send gets a different identifier and no duplicate is found, however long the window is. The session ID and the consumers' receive mode play no part in deduplication.
Correct answer: A. Enable purge protection on the vault
With purge protection on, a vault or object in the deleted state can't be purged until the retention period passes, while it can still be recovered. Removing Purge Operator assignments doesn't stop a subscription owner, who can purge in general. Changing the permission model or the application roles doesn't block purge operations.
Correct answer: B. The has operator matches whole terms, and Timeout is part of a longer term
KQL splits strings into terms, which are maximal sequences of alphanumeric characters, and has looks for a whole term; PaymentGatewayTimeoutError is one term, so has 'Timeout' is false while contains 'Timeout' would be true. The case-sensitivity explanation is wrong because has is case-insensitive (has_cs is the case-sensitive form), and checking the start of a value is what startswith does.
Correct answer: B. partition_key must be the item's category value, not the key path.
For point reads and deletes in a partitioned container, the partition_key argument must be the value of the partition key for that particular item, such as item["category"], not the name or path of the partition key property. delete_item accepts the item dictionary, as the SDK sample shows, and the API for NoSQL doesn't support a SQL DELETE statement. Running the query cross-partition is valid for finding the items.
Correct answer: D. Append DIALECT 2 to the command.
To issue a vector search query with FT.SEARCH, the DIALECT option must be set to 2 or higher, so the command needs DIALECT 2. SORTBY on the distance field only changes ordering and LIMIT only changes how many results come back; neither makes the KNN syntax valid. The * primary filter is the documented way to say that no metadata filter is needed.
Correct answer: D. FLAT
FLAT is an exact brute-force index suited to smaller datasets or workloads that need exhaustive search, so it always returns the true nearest neighbours. HNSW is an approximate nearest-neighbour algorithm: raising M, EF_CONSTRUCTION or EF_RUNTIME improves accuracy but never guarantees exact results, which fails the stated requirement.
Answer each question before opening the explanation, and write down why you discarded the other options. On AI-200, most mistakes come from choosing an option that is technically possible but does not meet every requirement in the scenario.
These 10 questions are a taste of the format, not a diagnostic. To know which domains you fail, practice by domain for free and take a timed mock exam that mirrors the official weights and duration.
Start for free, no sign-up or card. Every question includes an explanation like the ones above, and the mock exam reproduces the official AI-200 format.