gcp-expert

Expert-level Google Cloud Platform, services, and cloud architecture

INSTALLATION
npx skills add https://github.com/personamanagmentlayer/pcl --skill gcp-expert
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

Google Cloud Platform Expert

Expert guidance for Google Cloud Platform services and cloud-native architecture.

Core Concepts

  • Compute Engine, App Engine, Cloud Run
  • Cloud Functions (serverless)
  • Cloud Storage
  • BigQuery (data warehouse)
  • Firestore (NoSQL database)
  • Pub/Sub (messaging)
  • Google Kubernetes Engine (GKE)

gcloud CLI

# Initialize

gcloud init

Create Compute Engine instance

gcloud compute instances create my-instance

--zone=us-central1-a

--machine-type=e2-medium

--image-family=ubuntu-2004-lts

--image-project=ubuntu-os-cloud

Deploy App Engine

gcloud app deploy

Create Cloud Storage bucket

gsutil mb gs://my-bucket-name/

Upload file

gsutil cp myfile.txt gs://my-bucket-name/

## Cloud Functions

import functions_framework

from google.cloud import firestore

@functions_framework.http

def hello_http(request):

request_json = request.get_json(silent=True)

name = request_json.get('name') if request_json else 'World'

return f'Hello {name}!'

@functions_framework.cloud_event

def hello_pubsub(cloud_event):

import base64

data = base64.b64decode(cloud_event.data["message"]["data"]).decode()

print(f'Received: {data}')


## BigQuery

from google.cloud import bigquery

client = bigquery.Client()

Query

query = """

SELECT name, COUNT(*) as count

FROM project.dataset.table

WHERE date >= '2024-01-01'

GROUP BY name

ORDER BY count DESC

LIMIT 10

"""

query_job = client.query(query)

results = query_job.result()

for row in results:

print(f"{row.name}: {row.count}")

Load data

dataset_id = 'my_dataset'

table_id = 'my_table'

table_ref = client.dataset(dataset_id).table(table_id)

job_config = bigquery.LoadJobConfig(

source_format=bigquery.SourceFormat.CSV,

skip_leading_rows=1,

autodetect=True

)

with open('data.csv', 'rb') as source_file:

job = client.load_table_from_file(source_file, table_ref, job_config=job_config)

job.result()


## Firestore

from google.cloud import firestore

db = firestore.Client()

Create document

doc_ref = db.collection('users').document('user1')

doc_ref.set({

'name': 'John Doe',

'email': 'john@example.com',

'age': 30

})

Query

users_ref = db.collection('users')

query = users_ref.where('age', '>=', 18).limit(10)

for doc in query.stream():

print(f'{doc.id} => {doc.to_dict()}')

Real-time listener

def on_snapshot(doc_snapshot, changes, read_time):

for doc in doc_snapshot:

print(f'Received document: {doc.id}')

doc_ref.on_snapshot(on_snapshot)


## Pub/Sub

from google.cloud import pubsub_v1

Publisher

publisher = pubsub_v1.PublisherClient()

topic_path = publisher.topic_path('project-id', 'topic-name')

data = "Hello World".encode('utf-8')

future = publisher.publish(topic_path, data)

print(f'Published message ID: {future.result()}')

Subscriber

subscriber = pubsub_v1.SubscriberClient()

subscription_path = subscriber.subscription_path('project-id', 'subscription-name')

def callback(message):

print(f'Received: {message.data.decode("utf-8")}')

message.ack()

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

BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card