Bird
Raised Fist0
AWScloud~20 mins

CLI scripting basics in AWS - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
CLI Scripting Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
service_behavior
intermediate
2:00remaining
What is the output of this AWS CLI command?
You run the following AWS CLI command to list all S3 buckets in your account:

aws s3api list-buckets --query 'Buckets[].Name' --output text

What will be the output format?
AA newline-separated list of bucket names in plain text.
BA JSON array of bucket names.
CA table with bucket names and creation dates.
DAn error because --output text is invalid here.
Attempts:
2 left
💡 Hint
Think about what the --output text option does in AWS CLI.
Configuration
intermediate
2:00remaining
Which AWS CLI command sets the default region for future commands?
You want to configure your AWS CLI so that all future commands use the region us-west-2 by default. Which command achieves this?
Aaws configure region us-west-2
Baws set region us-west-2
Caws configure set region us-west-2
Daws configure default-region us-west-2
Attempts:
2 left
💡 Hint
The AWS CLI uses the configure set command to change settings.
security
advanced
2:00remaining
What error occurs when running this AWS CLI command without permissions?
You run this command to list EC2 instances:

aws ec2 describe-instances

Your IAM user does not have permission to describe instances. What error message will you see?
AA ResourceNotFoundException error because no instances exist.
BNo error; the command returns an empty list.
CA SyntaxError due to incorrect command syntax.
DAn AccessDeniedException error indicating lack of permissions.
Attempts:
2 left
💡 Hint
Think about what happens when you lack permissions to perform an AWS action.
Architecture
advanced
3:00remaining
Which AWS CLI command sequence correctly creates and tags an EC2 instance?
You want to create an EC2 instance and then add a Name tag to it using AWS CLI. Which sequence of commands is correct?
A
1) aws ec2 run-instances --image-id ami-12345678 --count 1 --instance-type t2.micro
2) aws ec2 create-tags --resources <instance-id> --tags Key=Name,Value=MyInstance
B
1) aws ec2 create-tags --resources <instance-id> --tags Key=Name,Value=MyInstance
2) aws ec2 run-instances --image-id ami-12345678 --count 1 --instance-type t2.micro
C1) aws ec2 run-instances --image-id ami-12345678 --count 1 --instance-type t2.micro --tag Name=MyInstance
D1) aws ec2 run-instances --image-id ami-12345678 --count 1 --instance-type t2.micro --tags Key=Name,Value=MyInstance
Attempts:
2 left
💡 Hint
Creating tags requires the instance ID, which you get after launching the instance.
Best Practice
expert
3:00remaining
What is the best practice to securely run AWS CLI commands in automated scripts?
You want to run AWS CLI commands in an automated script on a server. Which approach is best to securely provide credentials?
AStore AWS access keys directly in the script as plain text variables.
BUse IAM roles attached to the server or instance to provide temporary credentials.
CManually enter AWS credentials each time the script runs.
DStore AWS credentials in a publicly accessible file on the server.
Attempts:
2 left
💡 Hint
Think about avoiding hardcoding secrets and using AWS features for security.

Practice

(1/5)
1. What does the AWS CLI command aws s3 ls do?
easy
A. Deletes all S3 buckets in your AWS account
B. Creates a new S3 bucket
C. Lists all S3 buckets in your AWS account
D. Uploads a file to an S3 bucket

Solution

  1. Step 1: Understand the command structure

    The command uses aws s3 which relates to the S3 service, and ls which means list.
  2. Step 2: Interpret the command action

    Listing in S3 context means showing all buckets or objects. Without extra parameters, it lists all buckets.
  3. Final Answer:

    Lists all S3 buckets in your AWS account -> Option C
  4. Quick Check:

    Command aws s3 ls lists buckets [OK]
Hint: Remember: 'ls' means list, so it shows existing resources [OK]
Common Mistakes:
  • Confusing 'ls' with 'rm' (delete)
  • Thinking it creates resources
  • Assuming it uploads files
2. Which of the following is the correct syntax to create an EC2 instance using AWS CLI?
easy
A. aws ec2 run-instances --image-id ami-12345678 --count 1
B. aws ec2 create-instance --image-id ami-12345678 --count 1
C. aws ec2 start-instance --image-id ami-12345678 --count 1
D. aws ec2 launch-instance --image-id ami-12345678 --count 1

Solution

  1. Step 1: Identify the correct AWS CLI command for EC2 instance creation

    The official command to create EC2 instances is run-instances.
  2. Step 2: Check the syntax correctness

    aws ec2 run-instances --image-id ami-12345678 --count 1 uses aws ec2 run-instances --image-id ami-12345678 --count 1, which is the correct syntax to launch one instance.
  3. Final Answer:

    aws ec2 run-instances --image-id ami-12345678 --count 1 -> Option A
  4. Quick Check:

    EC2 instance creation uses 'run-instances' command [OK]
Hint: Use 'run-instances' to launch EC2, not 'create-instance' [OK]
Common Mistakes:
  • Using 'create-instance' which is invalid
  • Confusing 'start-instance' with creation
  • Using 'launch-instance' which is not a valid command
3. What will be the output of this AWS CLI command?
aws s3api list-buckets --query 'Buckets[].Name' --output json
medium
A. A JSON array of bucket names
B. A list of bucket creation dates
C. An error because of wrong syntax
D. A plain text list of bucket names

Solution

  1. Step 1: Understand the command components

    The command uses list-buckets to get all buckets, with a query to extract only the bucket names.
  2. Step 2: Analyze the output format

    The --output json option formats the result as JSON, so the output is a JSON array of bucket names.
  3. Final Answer:

    A JSON array of bucket names -> Option A
  4. Quick Check:

    Query filters names, output json formats as JSON array [OK]
Hint: Query filters data, output json formats it as JSON [OK]
Common Mistakes:
  • Expecting plain text instead of JSON
  • Confusing bucket names with creation dates
  • Assuming syntax error due to query
4. You run this command to delete an S3 bucket:
aws s3 rb s3://my-bucket

But it fails with an error. What is the most likely cause?
medium
A. You need to use aws s3 rm instead
B. The bucket is not empty
C. The bucket name is invalid
D. The AWS CLI is not installed

Solution

  1. Step 1: Understand the command purpose

    aws s3 rb removes (deletes) an S3 bucket, but only if it is empty.
  2. Step 2: Identify the common error cause

    If the bucket contains files, the command fails. You must delete all objects first.
  3. Final Answer:

    The bucket is not empty -> Option B
  4. Quick Check:

    Bucket must be empty before removal [OK]
Hint: Empty bucket before deleting with 'rb' command [OK]
Common Mistakes:
  • Trying to delete non-empty bucket directly
  • Confusing 'rm' (remove objects) with 'rb' (remove bucket)
  • Assuming AWS CLI is not installed without checking
5. You want to write a script that lists all EC2 instances and then stops each one. Which AWS CLI commands should you combine in the script?
hard
A. Use aws ec2 show-instances to list, then aws ec2 power-off-instances to stop
B. Use aws ec2 list-instances to list, then aws ec2 terminate-instances to stop
C. Use aws ec2 get-instances to list, then aws ec2 shutdown-instances to stop
D. Use aws ec2 describe-instances to list, then aws ec2 stop-instances --instance-ids to stop

Solution

  1. Step 1: Identify the correct command to list EC2 instances

    The correct command to list instances is describe-instances.
  2. Step 2: Identify the correct command to stop instances

    To stop instances, use stop-instances with the instance IDs.
  3. Step 3: Combine commands in script logic

    First list instances to get IDs, then stop them using those IDs.
  4. Final Answer:

    Use aws ec2 describe-instances to list, then aws ec2 stop-instances --instance-ids to stop -> Option D
  5. Quick Check:

    List with describe, stop with stop-instances [OK]
Hint: List with 'describe-instances', stop with 'stop-instances' [OK]
Common Mistakes:
  • Using non-existent commands like 'list-instances'
  • Confusing 'terminate' with 'stop' (termination deletes)
  • Using wrong commands that cause errors