mcpField
G
gcp

gcp

github.com/thelobbi云与 DevOps2188 次安装3 天前更新
代码仓库

关于 gcp

gcp 是一项提供 Google Cloud Platform 命令行、Python SDK 和 Terraform 操作指南的技能,适用于管理 GKE、Cloud Run、Cloud Storage、BigQuery 和 Pub/Sub。

主要功能

  1. 01gcloud 配置与身份验证
  2. 02GKE 集群操作
  3. 03部署 Cloud Run 服务
  4. 04Cloud Storage 文件操作
  5. 05BigQuery 查询与数据传输
  6. 06Pub/Sub 消息示例

适用场景

  1. 01管理 GKE 集群
  2. 02向 Cloud Run 部署服务
  3. 03使用 Cloud Storage 传输文件
  4. 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" } } } ```

评论

支持 Markdown