Option C correctly declares a Storage Account resource with the required properties: name, location 'eastus', kind 'StorageV2', and sku 'Standard_LRS'. Option C uses the wrong location 'westus'. Option C is missing the 'kind' property which is required. Option C uses 'BlobStorage' kind which is a different SKU type.
module vmModule './vm.bicep' = { name: 'deployVM' params: { vmName: 'myVM01' } }
Option A uses the correct 'params' keyword to pass parameters to the module. Options B, C, and D use incorrect keywords ('vmName' directly, 'parameters', or 'args') which are invalid in Bicep module syntax.
To create a resource group and resources inside it in one deployment, the Bicep file must have 'targetScope = 'subscription'' because resource groups are subscription-level resources. 'resourceGroup' scope cannot create resource groups, only deploy inside existing ones.
Option A uses the 'securestring' type which marks the parameter as sensitive, preventing it from being logged or exposed. Option A is invalid syntax. Options B and D declare a normal string parameter which is not secure.
output storageEndpoint string = storageAccount.properties.primaryEndpoints.blob
If the deployment fails, no outputs are returned because the deployment did not complete successfully. Therefore, option D is correct. Outputs depend on successful resource creation.