gcloud CLI
Command Structure
gcloud [GROUP] [SUB-GROUP] COMMAND [FLAGS]
Examples:
gcloud compute instances list
gcloud run services deploy my-svc --image gcr.io/my-project/my-image
gcloud projects list
Configuration
# One-time setup
gcloud init
# Set active project
gcloud config set project PROJECT_ID
# Set default region/zone
gcloud config set compute/region us-central1
gcloud config set compute/zone us-central1-a
# View current config
gcloud config list
# Named configurations (switch between projects/envs)
gcloud config configurations create staging
gcloud config configurations activate staging
Authentication
# Interactive login (local dev)
gcloud auth login
# Application Default Credentials (SDK/code usage)
gcloud auth application-default login
# Service account key
gcloud auth activate-service-account SA_EMAIL --key-file=key.json
# Impersonate a service account
gcloud [COMMAND] --impersonate-service-account=SA_EMAIL
# Check who you're authenticated as
gcloud auth list
Output Formatting
--format=json # Machine-readable
--format=yaml # Human-readable structured
--format=table(col1,col2) # Custom table columns
--format="value(name)" # Single field extraction
# Filtering
--filter="status=RUNNING"
--filter="name ~ '^prod-'" # regex match
--sort-by=createTime
--limit=10
Useful Global Flags
| Flag | Purpose |
|------|---------|
| --project=PROJECT_ID | Override active project |
| --region=REGION | Override default region |
| --zone=ZONE | Override default zone |
| --quiet / -q | Skip confirmation prompts |
| --verbosity=debug | Debug output |
| --dry-run | Preview without executing (where supported) |
Service Commands Reference
For service-specific commands (Compute Engine, Cloud Run, GKE, Cloud Storage, IAM, App Engine, Cloud Functions, Cloud SQL, BigQuery, Pub/Sub, Artifact Registry), see references/services.md.
Common Patterns
Get resource details
gcloud RESOURCE describe RESOURCE_NAME [--region/--zone]
Wait for long-running operations
# Most commands support --async; poll with:
gcloud compute operations wait OPERATION_ID
Use --format=value() in scripts
PROJECT=$(gcloud config get-value project)
IMAGE_DIGEST=$(gcloud container images describe gcr.io/$PROJECT/app:latest --format="value(image_summary.digest)")
IAM policy binding pattern
gcloud RESOURCE add-iam-policy-binding RESOURCE_ID \
--member="serviceAccount:SA@PROJECT.iam.gserviceaccount.com" \
--role="roles/ROLE"