Bird
Raised Fist0
GCPcloud~20 mins

Scripting with gcloud in GCP - 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
🎖️
gcloud Scripting Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
service_behavior
intermediate
2:00remaining
Understanding gcloud command output
You run the command gcloud compute instances list --filter="status=RUNNING" --format="value(name)". What is the output format you will get?
AA JSON array containing objects with instance names as keys.
BA YAML formatted list of instance names with their statuses.
CA table with columns showing instance names and statuses.
DA plain list of instance names, one per line, with no extra formatting.
Attempts:
2 left
💡 Hint
The --format="value(name)" flag outputs only the values of the 'name' field.
Configuration
intermediate
2:00remaining
Correct gcloud command to create a VM with a startup script
Which gcloud command correctly creates a Compute Engine VM named web-server in zone us-central1-a with a startup script located at startup.sh?
Agcloud compute instances create web-server --zone=us-central1-a --metadata-from-file startup-script=startup.sh
Bgcloud compute instances create web-server --zone=us-central1-a --startup-script=startup.sh
Cgcloud compute instances create web-server --zone=us-central1-a --metadata startup-script=$(cat startup.sh)
Dgcloud compute instances create web-server --zone=us-central1-a --metadata startup-script=startup.sh
Attempts:
2 left
💡 Hint
The startup script must be passed as a file using the correct metadata flag.
Architecture
advanced
3:00remaining
Automating multi-region deployment with gcloud scripting
You want to write a script that creates a Compute Engine instance named app-server in three different zones: us-east1-b, us-west1-a, and europe-west1-b. Which approach ensures the script runs efficiently and handles errors gracefully?
ARun the three commands in parallel without error checking to save time.
BRun a single <code>gcloud compute instances create</code> command with all three zones specified in one command.
CRun three separate <code>gcloud compute instances create</code> commands sequentially, checking the exit status after each and logging errors.
DCreate one instance and then copy it to other zones using <code>gcloud compute instances copy</code>.
Attempts:
2 left
💡 Hint
gcloud commands typically create one instance per command; error handling is important in scripts.
security
advanced
3:00remaining
Securing gcloud scripts with service accounts
You have a gcloud script that creates and deletes resources. To avoid using your personal credentials, which is the best practice to authenticate the script securely?
AUse a service account key file and activate it with <code>gcloud auth activate-service-account --key-file=KEY_FILE</code> before running the script.
BStore your personal gcloud credentials in the script and use <code>gcloud auth login</code> automatically.
CRun the script without authentication; gcloud will prompt for credentials each time.
DUse anonymous authentication to avoid storing any credentials.
Attempts:
2 left
💡 Hint
Service accounts provide non-personal credentials for automation.
Best Practice
expert
4:00remaining
Optimizing gcloud script for repeated resource creation
You have a gcloud script that creates a Compute Engine instance named test-vm. Running the script multiple times causes errors because the instance already exists. What is the best way to modify the script to avoid errors and ensure idempotent behavior?
AIgnore errors and run the create command every time; errors do not affect the script.
BUse <code>gcloud compute instances describe test-vm</code> to check if the instance exists, and create it only if it does not.
CAdd a command to delete the instance before creating it, regardless of its existence.
DRename the instance each time with a random suffix to avoid name conflicts.
Attempts:
2 left
💡 Hint
Idempotent scripts check resource existence before creation.

Practice

(1/5)
1. What does the gcloud compute instances list command do?
easy
A. It deletes all virtual machine instances.
B. It creates a new virtual machine instance.
C. It shows all virtual machine instances in your project.
D. It updates the configuration of an instance.

Solution

  1. Step 1: Understand the command structure

    The command uses gcloud compute instances list, which is designed to list resources.
  2. Step 2: Identify the resource targeted

    The resource targeted is virtual machine instances under compute service.
  3. Final Answer:

    It shows all virtual machine instances in your project. -> Option C
  4. Quick Check:

    List command = show resources [OK]
Hint: List commands show resources, create commands add resources [OK]
Common Mistakes:
  • Confusing list with create or delete commands
  • Assuming it modifies instances instead of listing
  • Ignoring the service and resource part of the command
2. Which of the following is the correct syntax to create a new Compute Engine instance named my-vm in zone us-central1-a using gcloud?
easy
A. gcloud create instances my-vm --zone us-central1-a
B. gcloud instances create my-vm --zone us-central1-a
C. gcloud compute create instance my-vm zone=us-central1-a
D. gcloud compute instances create my-vm --zone=us-central1-a

Solution

  1. Step 1: Check the correct command order

    The correct order is gcloud compute instances create followed by the instance name.
  2. Step 2: Verify flag syntax

    The zone flag must be --zone=us-central1-a with an equals sign.
  3. Final Answer:

    gcloud compute instances create my-vm --zone=us-central1-a -> Option D
  4. Quick Check:

    Correct syntax uses 'compute instances create' and '--zone=' [OK]
Hint: Use full service and resource names with flags using '=' [OK]
Common Mistakes:
  • Omitting 'compute' or 'instances' keywords
  • Using space instead of '=' in flags
  • Wrong command order or missing flags
3. What will be the output of this command if there are two instances named vm1 and vm2 in zone us-east1-b?

gcloud compute instances list --filter="zone:(us-east1-b)" --format="value(name)"
medium
A. vm1 vm2
B. vm1\nvm2
C. ["vm1", "vm2"]
D. Error: Invalid filter syntax

Solution

  1. Step 1: Understand the filter flag

    The filter limits results to instances in zone us-east1-b, so both vm1 and vm2 match.
  2. Step 2: Understand the format flag

    The format value(name) outputs only the names, each on a new line.
  3. Final Answer:

    vm1\nvm2 -> Option B
  4. Quick Check:

    Filter + value format = names on separate lines [OK]
Hint: value(name) outputs names line by line, not space separated [OK]
Common Mistakes:
  • Expecting space-separated names instead of new lines
  • Thinking output is JSON array
  • Misreading filter syntax as invalid
4. You wrote this script line to delete a Compute Engine instance:

gcloud compute instances delete my-instance --zone us-west1-b

But it fails with an error. What is the most likely cause?
medium
A. Missing '=' sign in the --zone flag
B. Instance name is incorrect
C. Delete command requires --force flag
D. gcloud command does not support delete

Solution

  1. Step 1: Check flag syntax

    The zone flag must be written as --zone=us-west1-b with an equals sign.
  2. Step 2: Confirm command support

    The delete command is valid and does not require --force unless confirmation is skipped.
  3. Final Answer:

    Missing '=' sign in the --zone flag -> Option A
  4. Quick Check:

    Flags need '=' between flag and value [OK]
Hint: Flags require '=' between name and value [OK]
Common Mistakes:
  • Using space instead of '=' in flags
  • Assuming delete needs --force always
  • Thinking delete command is unsupported
5. You want to write a script that creates three Compute Engine instances named app-1, app-2, and app-3 in zone europe-west1-c. Which script snippet correctly uses a loop with gcloud commands?
hard
A. for i in 1 2 3; do gcloud compute instances create app-$i --zone=europe-west1-c; done
B. gcloud compute instances create app-1 app-2 app-3 --zone europe-west1-c
C. for i in 1..3; gcloud compute instances create app-i --zone=europe-west1-c; done
D. gcloud create instances app-{1..3} --zone=europe-west1-c

Solution

  1. Step 1: Understand shell loop syntax

    The correct bash loop syntax is for i in 1 2 3; do ... done.
  2. Step 2: Check command inside loop

    The command uses variable substitution app-$i and correct flag --zone=europe-west1-c.
  3. Step 3: Verify other options

    gcloud compute instances create app-1 app-2 app-3 --zone europe-west1-c creates all instances in one command but does not use a loop. Options A and D have syntax errors or invalid commands.
  4. Final Answer:

    for i in 1 2 3; do gcloud compute instances create app-$i --zone=europe-west1-c; done -> Option A
  5. Quick Check:

    Bash loop with correct flags and variable substitution [OK]
Hint: Use 'for i in 1 2 3; do ... done' for loops in bash [OK]
Common Mistakes:
  • Using invalid loop syntax like '1..3'
  • Missing 'do' and 'done' in loop
  • Incorrect flag syntax without '='
  • Trying to create multiple instances without loop or correct command