关于 gcp
gcp 是一项提供 Google Cloud Platform 命令行、Python SDK 和 Terraform 操作指南的技能,适用于管理 GKE、Cloud Run、Cloud Storage、BigQuery 和 Pub/Sub。
主要功能
- 01gcloud 配置与身份验证
- 02GKE 集群操作
- 03部署 Cloud Run 服务
- 04Cloud Storage 文件操作
- 05BigQuery 查询与数据传输
- 06Pub/Sub 消息示例
适用场景
- 01管理 GKE 集群
- 02向 Cloud Run 部署服务
- 03使用 Cloud Storage 传输文件
- 04查询 BigQuery 或处理 Pub/Sub 消息
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ thelobbi/ claude --skill gcp安装后在 Claude Code 中输入/gcp确认已加载。
详细介绍
GCP 技能
为 Golden Armada AI Agent Fleet Platform 提供全面的 Google Cloud Platform 功能。
何时使用此技能
在以下场景中启用此技能:
- GKE 集群管理
- Cloud Run 部署
- Cloud Storage 操作
- BigQuery 数据分析
- Pub/Sub 消息传递
gcloud CLI 快速参考
配置
```bash
初始化
gcloud init
身份验证
gcloud auth login gcloud auth application-default login
设置项目
gcloud config set project PROJECT_ID
检查配置
gcloud config list gcloud info ```
GKE(Google Kubernetes Engine)
```bash
创建集群
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
获取凭据
gcloud container clusters get-credentials golden-armada-cluster --zone us-central1-a
列出集群
gcloud container clusters list
调整集群大小
gcloud container clusters resize golden-armada-cluster --num-nodes 5 --zone us-central1-a
删除集群
gcloud container clusters delete golden-armada-cluster --zone us-central1-a ```
Cloud Run
```bash
部署服务
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"
列出服务
gcloud run services list
获取服务 URL
gcloud run services describe golden-armada-api --platform managed --region us-central1 --format 'value(status.url)'
更新流量
gcloud run services update-traffic golden-armada-api
--to-revisions REVISION=100
```
Cloud Storage
```bash
创建存储桶
gsutil mb -l us-central1 gs://golden-armada-data
复制文件
gsutil cp local-file.txt gs://bucket-name/ gsutil cp gs://bucket-name/file.txt . gsutil -m cp -r ./local-dir gs://bucket-name/
列出内容
gsutil ls gs://bucket-name/
同步
gsutil rsync -r ./local-dir gs://bucket-name/dir/
设置权限
gsutil iam ch allUsers:objectViewer gs://bucket-name ```
BigQuery
```bash
创建数据集
bq mk --dataset PROJECT_ID:agents_dataset
创建表
bq mk --table agents_dataset.agent_logs schema.json
查询
bq query --use_legacy_sql=false
'SELECT * FROM project.dataset.table LIMIT 10'
加载数据
bq load --source_format=NEWLINE_DELIMITED_JSON
agents_dataset.logs gs://bucket/logs/*.json
导出
bq extract --destination_format NEWLINE_DELIMITED_JSON
agents_dataset.logs gs://bucket/export/logs-*.json
```
Pub/Sub
```bash
创建主题
gcloud pubsub topics create agent-events
创建订阅
gcloud pubsub subscriptions create agent-events-sub
--topic agent-events
发布消息
gcloud pubsub topics publish agent-events
--message '{"event": "agent_started", "agent_id": "123"}'
拉取消息
gcloud pubsub subscriptions pull agent-events-sub --auto-ack ```
Python SDK
```python from google.cloud import storage, bigquery, pubsub_v1
Cloud Storage
storage_client = storage.Client() bucket = storage_client.bucket('golden-armada-data')
上传
blob = bucket.blob('agents/config.json') blob.upload_from_string(json.dumps(config))
下载
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}")
插入行
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
```hcl 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" ] }
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" } } } ```