100% Latest & Updated Microsoft AZ-104 Practice Test Questions, Exam Dumps & Verified Answers!
30 Days Free Updates, Instant Download!
Question 370
A lifecycle policy needs to transition only blobs marked with a searchable blob index tag Class=Archive, regardless of virtual directory prefix. The account supports the feature. Which rule condition is most suitable?
- Use an Azure Resource Manager tag on the storage account as an automatic filter for each child blob
- Use only blob-name prefix matching and infer Class=Archive from a virtual-directory name
- Apply the same last-modified-time threshold to every blob without a classification filter
- Use a blob index tag filter for Class equals Archive in the lifecycle rule
Explanation
Correct Answer
D:Azure Blob lifecycle rules support blobIndexMatch predicates using a blob index tag key and value. Filtering for Class=Archive selects the classified blobs across folder prefixes, while the separate lifecycle action and age conditions determine when to transition eligible objects. Unlike ARM account tags or prefix-only naming conventions, this tests metadata on each blob independently of its virtual-directory path.
Incorrect Answers
A:An ARM resource tag labels the storage account as a management-plane resource; it is not equivalent to an index tag stored on each blob. Lifecycle rule filters operate on supported blob types, prefixes, and blob index tags. An account-level tag would not identify which individual files carry Class=Archive.
B:Prefix matching selects blob names and virtual folders, not the requested metadata classification. The stem explicitly says the Class value must work independently of the blob path, so a prefix-only rule would miss correctly labeled blobs in other paths and could include unlabeled blobs with similar names.
C:An age threshold can govern when a lifecycle action runs, but by itself it cannot distinguish Class=Archive from unrelated objects of the same age. It would apply the transition to every otherwise eligible blob. Combine age conditions with a matching blob index tag filter so classification, not merely time, determines membership.
Question 371
An operations team wants a periodic machine-readable inventory of blob names, access tiers and older versions across several containers for compliance reporting. They do not want a lifecycle rule to modify any blobs. Which storage feature best addresses the report?
- Configure Azure Blob inventory reports with the required object and version fields
- Enable Blob Change Feed and treat its ordered update events as a full periodic list of every current object and previous version
- Run a one-time Azure Storage Explorer listing and use its current results as a continuously refreshed cross-container version inventory
- Create a Blob lifecycle policy with no delete actions and assume it automatically exports a machine-readable inventory file
Explanation
Correct Answer
A:Blob inventory exports structured listings of existing objects and their properties. It is an observational reporting feature separate from lifecycle transitions or deletes.
Incorrect Answers
B:Change Feed records mutation events, not a complete point-in-time inventory of all existing objects and historical versions. Blob Inventory reports are designed to produce the requested enumerated compliance snapshot.
C:Storage Explorer is suitable for interactive inspection, but an ad hoc listing does not create a scheduled machine-readable inventory across containers and version metadata. Blob inventory reports do.
D:Lifecycle management controls object tiering and deletion; it does not generate an inventory report merely because its actions are disabled. Configure Blob inventory reporting explicitly.
Question 372
Operations want a lifecycle rule to tier block blobs that were not accessed for 45 days, not simply blobs that were not modified. The policy uses daysAfterLastAccessTimeGreaterThan. What account-level dependency should be checked?
- Enable blob versioning because each read automatically produces a previous version and refreshes its age for lifecycle tiering
- Enable and evaluate last access time tracking for the Blob service before relying on that policy condition
- Use daysAfterModificationGreaterThan instead and assume reads reset modification time
- Enable Storage account metrics and assume aggregated read-transaction counts populate each individual blob's last-access timestamp
Explanation
Correct Answer
B:Last-access tiering depends on the Blob service tracking a LastAccessTime value. Without tracking, the rule may fall back to the time tracking was enabled rather than actual read activity.
Incorrect Answers
A:Blob versioning records writes/updates, not a new blob version for every read. It cannot replace Blob service last-access tracking for a daysAfterLastAccessTimeGreaterThan lifecycle condition.
C:Modification time measures writes, not reads. An actively downloaded but unchanged blob could be incorrectly tiered as stale.
D:Account-level read metrics do not supply per-blob last-access timestamps for lifecycle evaluation. Last-access time tracking must be enabled and used at the Blob service level.
Question 373
A new Azure Blob lifecycle rule was saved five minutes ago. Many eligible blobs remain in the hot tier, although the rule correctly matches their age and container. What is the best first operational interpretation?
- Hot blobs automatically ignore any lifecycle rule that uses an age condition
- Run a manual Set Blob Tier operation for every eligible blob because lifecycle rules cannot execute without an individual client request
- Lifecycle policy processing is asynchronous; allow the published activation and execution interval and inspect lifecycle logs
- Recreate the identical lifecycle policy immediately and assume saving it again forces every matched blob to transition synchronously
Explanation
Correct Answer
C:A new lifecycle policy can take up to roughly a day to become effective, and processing time depends on object volume. A short delay alone is not evidence of a defect.
Incorrect Answers
A:Hot-tier blobs are normal lifecycle candidates. Eligibility is governed by the rule filters, supported blob type, and age condition.
B:Azure lifecycle management runs asynchronously under the configured policy without needing each object to be touched by a client. Manual per-object actions are not an activation requirement.
D:Re-saving a policy does not convert asynchronous lifecycle processing into an immediate transaction. Examine processing timing and logs rather than treating a five-minute delay as a defective rule.
Question 374
An Azure Blob lifecycle rule normally deletes objects older than a configured age. One matching blob is subject to an active legal hold, and the nightly lifecycle run skips it. What principle explains the outcome?
- Grant Storage Blob Data Owner to the deletion identity and retry the lifecycle delete during the legal hold
- Change the blob tier to Hot and shorten the time-based retention rule while leaving the legal hold active
- Keep the blob until the legal hold is cleared through authorized process, then let eligible lifecycle rules operate
- Replace the lifecycle rule with a direct Delete Blob request while the legal hold remains active
Explanation
Correct Answer
C:Immutable protection takes precedence over age-based lifecycle cleanup. A matching age condition cannot delete data that the service is obliged to retain under legal hold.
Incorrect Answers
A:Even a data-plane Owner identity cannot bypass an active legal hold protecting the blob. Authorization and immutability are separate enforcement boundaries.
B:Neither an access-tier change nor a separate time-based retention configuration cancels an active legal hold. Lifecycle deletion remains blocked until that hold is lawfully cleared.
D:Immutable storage protection also applies to direct Delete Blob requests. Removing the lifecycle rule cannot remove the active legal hold, so an authorized release of the hold is required first.
Question 375
A lifecycle rule should move blobs to a cooler tier based on the elapsed time since each blob was last modified, not the original creation date. Which kind of lifecycle condition should be configured?
- Set daysAfterCreationGreaterThan for the base blob transition to Cool and treat it as days since the last edit.
- Enable last-access tracking and use daysAfterLastAccessTimeGreaterThan to infer when each blob was last modified.
- Use daysAfterLastTierChangeGreaterThan on a TierToCool action to measure elapsed time since the blob was updated.
- Use the applicable days-after-modification age condition for the transition action
Explanation
Correct Answer
D:A modification-based condition responds to how long the blob has been unchanged. Creation-age logic can transition a frequently updated object too early and misrepresent its activity.
Incorrect Answers
A:The creation-time condition measures the age of the blob since it was created, even when it was modified more recently. A recently edited old blob could meet this condition before the required post-modification wait has elapsed. The requested lifecycle rule should instead evaluate daysAfterModificationGreaterThan.
B:Last access and last modification are different events: downloads may refresh an access timestamp without changing blob contents, and uploads may modify data without a later read. Even with supported last-access tracking enabled, that condition measures access recency, not the business-required modification age.
C:The last-tier-change condition is designed for controlling TierToArchive after rehydration, not as a general modification-age measure for TierToCool. Moving between tiers also differs from modifying blob data. For a current blob transition measured from its latest write, use the supported modification-based age condition.
Question 376
A deployment team uses one Bicep file to create identically structured storage accounts in test and production. Only the storage account name and deployment location should differ between environments. What should the author expose in the Bicep source?
- Hard-code the production account name and region in every resource declaration
- Declare parameters for the values that vary and supply environment-specific parameter values
- Duplicate the entire resource file for each region and manually keep the copies synchronized
- Use a Bicep variable for the value but edit the variable in source before each deployment
Explanation
Correct Answer
B:Bicep parameters separate environment-specific input values from the resource declaration. The same resource definition can be deployed reproducibly with a different name and location in each environment.
Incorrect Answers
A:Hard-coded values force manual source edits whenever the environment changes. That makes deployments harder to repeat and increases the risk of deploying test properties into production.
C:Copying entire files creates two independently maintained definitions for the same design. Differences can drift over time even though the resource topology should be identical.
D:A Bicep variable is defined within the template and still requires a source change to vary per environment. Parameters are the intended caller-supplied contract.
Question 377
A Bicep deployment must connect a new resource to an already provisioned storage account. Operations prohibit modifying or redeploying the existing account and have supplied its resource ID and scope. Which Bicep construct fits?
- Replace the storage-account resource ID with a plain deployment tag
- Change the template deployment mode to Complete to preserve all existing objects
- Declare the storage-account resource using the existing keyword and reference its properties as needed
- Declare a second storage account using the original name and a new region
Explanation
Correct Answer
C:Bicep existing declarations let templates refer to already deployed resources without requesting their creation in the current deployment. This satisfies the dependency without reauthoring its configuration.
Incorrect Answers
A:Tags do not resolve the actual resource instance for Bicep property references. The new resource still needs a valid existing resource reference.
B:Complete mode may delete out-of-template resources and is unrelated to referencing an existing object safely. It is more destructive than the needed declaration.
D:An ordinary resource declaration may attempt to deploy or update the resource and can conflict with naming or location constraints. The requirement explicitly forbids redeployment.
Question 378
A Bicep deployment needs a database administrator password supplied at deployment time. Security reviewers prohibit displaying the parameter value in deployment history as an ordinary string. How should the Bicep parameter be declared?
- Declare the password as an ordinary string output for convenient auditing
- Put the password in a resource tag so every dependent resource can read it
- Hardcode the password in the Bicep source and commit it for reproducibility
- Use the secure parameter decorator on the password parameter
Explanation
Correct Answer
D:The Bicep secure decorator marks a value as sensitive in the deployment schema so Azure Resource Manager handles the parameter as a secure string or object. It avoids defining the password as an ordinary exposed parameter.
Incorrect Answers
A:Template outputs and ordinary strings can expose sensitive values in deployment records. This increases the precise secret-leakage risk being prevented.
B:Resource tags are inspectable metadata and are not a secret store. They are inappropriate for deployment credentials.
C:Embedding the password in source code defeats secure parameter handling and risks disclosure in source control and reviews.
Question 379
A platform team deploys the same diagnostic configuration to several resource groups from one Bicep codebase. The configuration is stable, but deployment targets differ by environment. Which organization minimizes repeated resource declarations?
- Copy and paste the complete configuration into every caller file permanently
- Put the reusable resource declarations in an ARM parameter file and use that file as executable Bicep configuration in each caller
- Export Bicep output values from the first resource group deployment and reuse those outputs as if they redeploy identical diagnostics in other resource groups
- Place the reusable configuration in a Bicep module and invoke it with scoped parameters
Explanation
Correct Answer
D:A Bicep module encapsulates resource declarations and accepts inputs or scopes for multiple deployments. It reduces code duplication while keeping environment-specific locations explicit.
Incorrect Answers
A:Duplicating declarations can work initially but allows drift and makes future updates inconsistent across environments. It does not meet the reuse objective.
B:ARM/Bicep parameter files supply inputs for deployments; they do not encapsulate executable resource declarations to be instantiated repeatedly at different scopes. A Bicep module is the reusable declaration unit, with environment-specific parameters passed by the caller.
C:Bicep outputs expose values produced by one deployment, such as resource IDs or endpoints; they do not themselves redeploy the configuration in a new target resource group. Packaging the stable diagnostics resources in a parameterized Bicep module avoids repeating declarations.
Question 380
A team uses one Bicep file for production and test. The production environment needs an optional diagnostic VM, but test environments must not create or pay for that VM. Both environments should retain the same source file. Which construct belongs on the optional VM resource?
- Deploy the diagnostic VM in all environments and use a Bicep output to hide its resource ID in test
- A resource-level if condition controlled by a Boolean parameter
- Set a Bicep parameter for the VM name but always instantiate the optional resource
- An NSG deny rule that prevents test users connecting to an always-created VM
Explanation
Correct Answer
B:A Bicep conditional resource declaration creates the VM only when its Boolean expression is true. Passing false for test omits that resource while preserving one reusable template.
Incorrect Answers
A:Outputs affect returned deployment values, not the creation of underlying resources. The diagnostic VM would still be provisioned and billed in test.
C:Parameters can customize names, but without conditional resource creation the VM still exists in both environments, violating the explicit no-VM test requirement.
D:Blocking connectivity does not remove VM compute charges. The stated requirement is to omit the optional resource, not merely hide its network access.
Microsoft Azure Administrator (AZ-104) Practice Tests