Claude-code-plugins-plus anth-deploy-integration
install
source · Clone the upstream repo
git clone https://github.com/jeremylongshore/claude-code-plugins-plus-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jeremylongshore/claude-code-plugins-plus-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/saas-packs/anthropic-pack/skills/anth-deploy-integration" ~/.claude/skills/jeremylongshore-claude-code-plugins-plus-anth-deploy-integration && rm -rf "$T"
manifest:
plugins/saas-packs/anthropic-pack/skills/anth-deploy-integration/SKILL.mdsource content
Anthropic Deploy Integration
Overview
Deploy Claude API integrations with proper secret management, health checks, and rollback procedures across Docker, GCP Cloud Run, and Kubernetes.
Docker Deployment
FROM python:3.12-slim WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY src/ ./src/ ENV ANTHROPIC_API_KEY="" EXPOSE 8000 CMD ["uvicorn", "src.main:app", "--host", "0.0.0.0", "--port", "8000"]
# src/main.py from fastapi import FastAPI, HTTPException import anthropic app = FastAPI() client = anthropic.Anthropic() @app.get("/health") async def health(): try: count = client.messages.count_tokens( model="claude-haiku-4-20250514", messages=[{"role": "user", "content": "ping"}] ) return {"status": "healthy", "api": "connected"} except Exception as e: raise HTTPException(503, detail=str(e))
GCP Cloud Run
echo -n "sk-ant-api03-..." | gcloud secrets create anthropic-key --data-file=- gcloud run deploy claude-service \ --image gcr.io/my-project/claude-service \ --set-secrets ANTHROPIC_API_KEY=anthropic-key:latest \ --min-instances 1 --max-instances 10 \ --memory 512Mi --timeout 120s
Kubernetes
apiVersion: apps/v1 kind: Deployment metadata: { name: claude-service } spec: replicas: 3 strategy: { type: RollingUpdate, rollingUpdate: { maxUnavailable: 1 } } template: spec: containers: - name: app env: - name: ANTHROPIC_API_KEY valueFrom: secretKeyRef: { name: anthropic-secrets, key: api-key } livenessProbe: httpGet: { path: /health, port: 8000 } periodSeconds: 30
Rollback
# Cloud Run gcloud run services update-traffic claude-service --to-revisions=PREVIOUS=100 # Kubernetes kubectl rollout undo deployment/claude-service
Error Handling
| Issue | Cause | Fix |
|---|---|---|
| Container crash on start | Missing API key env var | Verify secret binding |
| Health check fails | Key invalid in prod | Test key with curl |
| 429 after scaling up | More replicas = more RPM | Shared rate limiter (Redis) |
Resources
Next Steps
For event-driven patterns, see
anth-webhooks-events.