gcp

安装量: 36
排名: #19353

安装

npx skills add https://github.com/lobbi-docs/claude --skill gcp

Provides comprehensive Google Cloud Platform capabilities for the Golden Armada AI Agent Fleet Platform.

When to Use This Skill

Activate this skill when working with:

  • GKE cluster management

  • Cloud Run deployments

  • Cloud Storage operations

  • BigQuery data analytics

  • Pub/Sub messaging

gcloud CLI Quick Reference

Configuration

# Initialize

gcloud init

# Authenticate

gcloud auth login
gcloud auth application-default login

# Set project

gcloud config set project PROJECT_ID

# Check config

gcloud config list
gcloud info

GKE (Google Kubernetes Engine)

# Create cluster

gcloud container clusters create golden-armada-cluster 
--zone us-central1-a 
--num-nodes 3 
--machine-type e2-standard-4 
--enable-autoscaling --min-nodes 1 --max-nodes 10

# Get credentials

gcloud container clusters get-credentials golden-armada-cluster --zone us-central1-a

# List clusters

gcloud container clusters list

# Resize cluster

gcloud container clusters resize golden-armada-cluster --num-nodes 5 --zone us-central1-a

# Delete cluster

gcloud container clusters delete golden-armada-cluster --zone us-central1-a

Cloud Run

# Deploy service

gcloud run deploy golden-armada-api 
--image gcr.io/PROJECT_ID/agent:latest 
--platform managed 
--region us-central1 
--allow-unauthenticated 
--set-env-vars "ENV=production"

# List services

gcloud run services list

# Get service URL

gcloud run services describe golden-armada-api --platform managed --region us-central1 --format 'value(status.url)'

# Update traffic

gcloud run services update-traffic golden-armada-api 
--to-revisions REVISION=100

Cloud Storage

# Create bucket

gsutil mb -l us-central1 gs://golden-armada-data

# Copy files

gsutil cp local-file.txt gs://bucket-name/
gsutil cp gs://bucket-name/file.txt .
gsutil -m cp -r ./local-dir gs://bucket-name/

# List

gsutil ls gs://bucket-name/

# Sync

gsutil rsync -r ./local-dir gs://bucket-name/dir/

# Set permissions

gsutil iam ch allUsers:objectViewer gs://bucket-name

BigQuery

# Create dataset

bq mk --dataset PROJECT_ID:agents_dataset

# Create table

bq mk --table agents_dataset.agent_logs schema.json

# Query

bq query --use_legacy_sql=false 
'SELECT * FROM `project.dataset.table` LIMIT 10'

# Load data

bq load --source_format=NEWLINE_DELIMITED_JSON 
agents_dataset.logs gs://bucket/logs/*.json

# Export

bq extract --destination_format NEWLINE_DELIMITED_JSON 
agents_dataset.logs gs://bucket/export/logs-*.json

Pub/Sub

# Create topic

gcloud pubsub topics create agent-events

# Create subscription

gcloud pubsub subscriptions create agent-events-sub 
--topic agent-events

# Publish message

gcloud pubsub topics publish agent-events 
--message '{"event": "agent_started", "agent_id": "123"}'

# Pull messages

gcloud pubsub subscriptions pull agent-events-sub --auto-ack

Python SDK

from google.cloud import storage, bigquery, pubsub_v1

# Cloud Storage

storage_client = storage.Client()
bucket = storage_client.bucket('golden-armada-data')

# Upload

blob = bucket.blob('agents/config.json')
blob.upload_from_string(json.dumps(config))

# Download

blob = bucket.blob('agents/config.json')
content = blob.download_as_string()

# BigQuery

bq_client = bigquery.Client()

query = """
SELECT agent_id, COUNT(*) as task_count
FROM `project.dataset.tasks`
GROUP BY agent_id
ORDER BY task_count DESC
"""
results = bq_client.query(query)
for row in results:
print(f"{row.agent_id}: {row.task_count}")

# Insert rows

table_ref = bq_client.dataset('agents_dataset').table('logs')
errors = bq_client.insert_rows_json(table_ref, rows)

# Pub/Sub Publisher

publisher = pubsub_v1.PublisherClient()
topic_path = publisher.topic_path('project-id', 'agent-events')

future = publisher.publish(
topic_path,
json.dumps({"event": "task_completed"}).encode(),
agent_id="123"
)
message_id = future.result()

# Pub/Sub Subscriber

subscriber = pubsub_v1.SubscriberClient()
subscription_path = subscriber.subscription_path('project-id', 'agent-events-sub')

def callback(message):
print(f"Received: {message.data}")
message.ack()

streaming_pull_future = subscriber.subscribe(subscription_path, callback=callback)

Terraform GCP Resources

provider "google" {
project = var.project_id
region  = var.region
}

# GKE Cluster

resource "google_container_cluster" "primary" {
name     = "golden-armada-cluster"
location = var.zone

remove_default_node_pool = true
initial_node_count       = 1

network    = google_compute_network.vpc.name
subnetwork = google_compute_subnetwork.subnet.name
}

resource "google_container_node_pool" "primary_nodes" {
name       = "primary-node-pool"
location   = var.zone
cluster    = google_container_cluster.primary.name
node_count = 3

node_config {
machine_type = "e2-standard-4"
oauth_scopes = [
"[https://www.googleapis.com/auth/cloud-platform](https://www.googleapis.com/auth/cloud-platform)"
]
}

autoscaling {
min_node_count = 1
max_node_count = 10
}
}

# Cloud Run Service

resource "google_cloud_run_service" "agent_api" {
name     = "golden-armada-api"
location = var.region

template {
spec {
containers {
image = "gcr.io/${var.project_id}/agent:latest"
env {
name  = "ENV"
value = "production"
}
}
}
}

traffic {
percent         = 100
latest_revision = true
}
}

# Cloud Storage Bucket

resource "google_storage_bucket" "data" {
name     = "golden-armada-data"
location = var.region

uniform_bucket_level_access = true

lifecycle_rule {
condition {
age = 30
}
action {
type = "Delete"
}
}
}
返回排行榜