GCP CLI Reference

Auth & Configuration

# Login gcloud auth login gcloud auth application-default login # for SDK/libraries # Set active project gcloud config set project my-project-id gcloud config set compute/region us-central1 gcloud config set compute/zone us-central1-a # Named configurations gcloud config configurations create prod gcloud config configurations activate prod gcloud config configurations list # Current config gcloud config list gcloud auth list

Projects

# List projects gcloud projects list # Create project gcloud projects create my-new-project \ --name="My New Project" \ --folder=FOLDER_ID # Get project info gcloud projects describe my-project-id # Link billing account gcloud billing projects link my-project-id \ --billing-account=BILLING_ACCOUNT_ID # Enable APIs gcloud services enable container.googleapis.com gcloud services enable cloudfunctions.googleapis.com gcloud services list --enabled

Compute Engine

# List instances gcloud compute instances list # Create instance gcloud compute instances create my-vm \ --machine-type=e2-medium \ --image-family=debian-12 \ --image-project=debian-cloud \ --zone=us-central1-a \ --tags=http-server,https-server \ --metadata=startup-script='#!/bin/bash apt-get update && apt-get install -y nginx' # SSH into instance gcloud compute ssh my-vm --zone=us-central1-a # Copy files gcloud compute scp ./file.txt my-vm:~/ --zone=us-central1-a # Start / stop gcloud compute instances start my-vm --zone=us-central1-a gcloud compute instances stop my-vm --zone=us-central1-a

GKE (Container)

# Create GKE cluster gcloud container clusters create my-cluster \ --zone=us-central1-a \ --num-nodes=3 \ --machine-type=e2-standard-2 \ --enable-autoscaling \ --min-nodes=1 --max-nodes=5 # Get cluster credentials gcloud container clusters get-credentials my-cluster \ --zone=us-central1-a # List clusters gcloud container clusters list # Upgrade cluster gcloud container clusters upgrade my-cluster \ --master --cluster-version=1.28 \ --zone=us-central1-a # List node pools gcloud container node-pools list --cluster=my-cluster --zone=us-central1-a

Cloud Storage

# Create bucket gsutil mb -l us-central1 gs://my-bucket # Copy / sync gsutil cp file.txt gs://my-bucket/ gsutil rsync -r ./local-dir gs://my-bucket/remote-dir # List / remove gsutil ls gs://my-bucket/ gsutil rm gs://my-bucket/file.txt gsutil rm -r gs://my-bucket/prefix/ # Set lifecycle gsutil lifecycle set lifecycle.json gs://my-bucket # Make object public gsutil acl ch -u AllUsers:R gs://my-bucket/file.txt # Signed URL (1 hour) gsutil signurl -d 1h service-account.json gs://my-bucket/file.txt

Service Accounts

# Create service account gcloud iam service-accounts create my-sa \ --display-name="My Service Account" # Grant role to service account gcloud projects add-iam-policy-binding my-project \ --member="serviceAccount:[email protected]" \ --role="roles/storage.objectAdmin" # Create and download key gcloud iam service-accounts keys create key.json \ [email protected] # Impersonate service account gcloud config set auth/impersonate_service_account \ [email protected] # List service accounts gcloud iam service-accounts list