Jeff’s Note #
Unlike generic exam dumps, ADH analyzes this scenario through the lens of a Real-World Lead Developer.
For DVA-C02 candidates, the confusion often lies in how to enforce allowed values for parameter inputs in CloudFormation templates to validate data before instance creation. In production, this is about knowing exactly how to use parameters and the AllowedValues attribute in CloudFormation to provide controlled, predictable deployments via the API/SDK. Let’s drill down.
The Certification Drill (Simulated Question) #
Scenario #
Greenscale Software is building an automated deployment pipeline that provisions Amazon EC2 instances across multiple AWS accounts using AWS CloudFormation. The development team has standardized on a specific set of approved EC2 instance types for compliance and cost optimization. As the lead developer, you need to define the CloudFormation template to restrict instance type choices to this approved list, ensuring users cannot specify disallowed types during stack creation.
The Requirement: #
How can the developer incorporate the list of approved instance types into the CloudFormation template to enforce this restriction effectively?
The Options #
- A) Create a separate CloudFormation template for each EC2 instance type in the list.
- B) In the Resources section of the CloudFormation template, create resources for each EC2 instance type in the list.
- C) In the CloudFormation template, create a separate parameter for each EC2 instance type in the list.
- D) In the CloudFormation template, create a single parameter with the list of EC2 instance types as AllowedValues.
Google adsense #
leave a comment:
Correct Answer #
D
Quick Insight: The Developer Imperative #
Using the AllowedValues property in a single parameter restricts user input to an approved whitelist, improving validation before resource creation. This leverages CloudFormation’s built-in parameter validation, enforcing consistency while keeping the template clean and maintainable. Other options either multiply resources unnecessarily or lack validation.
Content Locked: The Expert Analysis #
You’ve identified the answer. But do you know the implementation details that separate a Junior from a Senior?
The Expert’s Analysis #
Correct Answer #
Option D
The Winning Logic #
Using a single parameter with AllowedValues is the idiomatic way to let users choose from a predefined set of options in a CloudFormation template. This approach ensures:
- Input validation: CloudFormation automatically rejects inputs outside the AllowedValues list before provisioning starts.
- Simplicity: Only one parameter to manage, rather than many parameters or multiple templates.
- Maintainability: Updating the list in one place keeps templates clean and consistent.
- Reusability: The same template supports multiple instance types without multiplying resources.
Implementation snippet example:
Parameters:
InstanceType:
Description: Choose the approved EC2 instance type
Type: String
AllowedValues:
- t3.micro
- t3.small
- m5.large
Default: t3.micro
This parameter can then be referenced in the EC2 resource’s InstanceType property.
The Trap (Distractor Analysis): #
-
Why not A?
Creating separate templates for each instance type drastically increases maintenance overhead and complicates deployment pipelines. Not scalable. -
Why not B?
Defining multiple EC2 resources for every instance type in one template wastes resources and causes unexpected provisioning of all instance types at once. -
Why not C?
Defining separate parameters for each instance type is ambiguous and complicates validation. You end up guessing which parameter to use or require additional logic.
The Technical Blueprint #
# Example CLI command showing a stack creation with the validated instance type parameter
aws cloudformation create-stack \
--stack-name GreenscaleAppStack \
--template-body file://ec2-template.yaml \
--parameters ParameterKey=InstanceType,ParameterValue=t3.micro
The Comparative Analysis #
| Option | API/Template Complexity | Performance | Use Case |
|---|---|---|---|
| A | Very High | Poor | Only if you want strictly separate templates per instance type (rare) |
| B | High | Inefficient | Creates all instance types simultaneously (undesired) |
| C | Medium | Confusing | Multiple parameters increase validation complexity |
| D | Low | Optimal | Validated single input, easiest to maintain and use |
Real-World Application (Practitioner Insight) #
Exam Rule #
For the exam, always pick AllowedValues when you see the need to restrict parameter inputs to a specific set.
Real World #
In real deployments, you might also combine AllowedValues with Parameter Constraints or Custom Resource validations for stricter governance, but AllowedValues covers most common use cases effectively with minimal complexity.
(CTA) Stop Guessing, Start Mastering #
Disclaimer
This is a study note based on simulated scenarios for the DVA-C02 exam.