Claude Code × GCP Cloud Run संपूर्ण गाइड | सर्वरलेस कंटेनर ऑटो-डिप्लॉयमेंट
Claude Code के साथ GCP Cloud Run डिप्लॉयमेंट को तेज़ करें। Dockerfile जनरेशन, ऑटो-स्केलिंग, CI/CD पाइपलाइन और Secret Manager इंटीग्रेशन के साथ पूर्ण गाइड।
“मैं GCP पर कंटेनर चलाना चाहता हूं, लेकिन बहुत सारी सेटिंग्स हैं — समझ नहीं आता कहां से शुरू करूं” — मैं भी पहले ऐसा ही महसूस करता था। लेकिन जब मैंने Cloud Run को वास्तव में इस्तेमाल किया, तो मुझे सच में हैरानी हुई कि ECS की तुलना में कॉन्फिगरेशन कितनी आसान थी। न VPC सेटअप, न टास्क रोल डिज़ाइन, न क्लस्टर मैनेजमेंट। बस एक कंटेनर इमेज तैयार करें और लगभग तुरंत HTTPS एंडपॉइंट मिल जाता है।
Claude Code के साथ मिलाएं, और Dockerfile जनरेशन से लेकर Cloud Build CI/CD पाइपलाइन सेटअप तक सब कुछ आश्चर्यजनक रूप से कम समय में हो जाता है। यह लेख 6 स्पष्ट चरणों में उन कदमों को समझाता है जो मैंने वास्तव में आज़माए।
Cloud Run ECS से आसान क्यों है
Cloud Run GCP का पूरी तरह से प्रबंधित कंटेनर एक्जीक्यूशन सर्विस है। यह “रिक्वेस्ट-ड्रिवन सर्वरलेस” मॉडल का उपयोग करता है जहां HTTP रिक्वेस्ट आने पर ही कंटेनर शुरू होते हैं।
Cloud Run:
- क्लस्टर मैनेजमेंट: आवश्यक नहीं
- नेटवर्क सेटअप: बाहरी HTTPS डिफ़ॉल्ट रूप से पब्लिश
- स्केलिंग: 0 से N तक पूरी तरह ऑटोमैटिक
- बिलिंग: रिक्वेस्ट प्रोसेसिंग टाइम पर (आइडल में लगभग मुफ्त)
AWS ECS/Fargate:
- क्लस्टर मैनेजमेंट: आवश्यक (3 परतें: Cluster / Service / TaskDef)
- नेटवर्क सेटअप: VPC और सिक्योरिटी ग्रुप डिज़ाइन आवश्यक
- स्केलिंग: न्यूनतम इंस्टेंस काउंट के लिए बिलिंग
- बिलिंग: चल रहे टास्क टाइम पर
Step 1: Dockerfile ऑटो-जनरेट करें
claude -p "
निम्नलिखित आवश्यकताओं के साथ प्रोडक्शन-रेडी Dockerfile जनरेट करें:
- App: TypeScript + Express API (पोर्ट 8080)
- Node.js वर्शन: 22 LTS
- मल्टी-स्टेज बिल्ड (builder → runner)
- नॉन-रूट यूजर (node यूजर) के रूप में चलाएं
- .dockerignore भी जनरेट करें
- Cloud Run की सिफारिश के अनुसार PORT एनवायरनमेंट वेरिएबल सपोर्ट
- हेल्थ चेक: /health एंडपॉइंट
"
जनरेट किया गया Dockerfile:
# ---- builder स्टेज ----
FROM node:22-alpine AS builder
WORKDIR /app
# बिल्ड कैश का उपयोग करने के लिए पहले डिपेंडेंसी कॉपी करें
COPY package*.json ./
RUN npm ci --only=production=false
COPY tsconfig.json ./
COPY src ./src
RUN npm run build
# ---- runner स्टेज ----
FROM node:22-alpine AS runner
WORKDIR /app
# सिक्योरिटी: नॉन-रूट यूजर के रूप में चलाएं
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
# केवल प्रोडक्शन डिपेंडेंसी इंस्टॉल करें
COPY package*.json ./
RUN npm ci --only=production && npm cache clean --force
# बिल्ड आर्टिफैक्ट्स कॉपी करें
COPY /app/dist ./dist
# Cloud Run PORT एनवायरनमेंट वेरिएबल के जरिए पोर्ट पास करता है
ENV PORT=8080
ENV NODE_ENV=production
# नॉन-रूट यूजर पर स्विच करें
USER appuser
EXPOSE 8080
CMD ["node", "dist/index.js"]
Step 2: Cloud Run पर पहला डिप्लॉयमेंट
gcloud run deploy myapp-api \
--image asia-northeast1-docker.pkg.dev/my-project-123/myapp/api:v1.0.0 \
--region asia-northeast1 \
--platform managed \
--memory 512Mi \
--cpu 1 \
--concurrency 80 \
--allow-unauthenticated \
--set-env-vars NODE_ENV=production \
--port 8080
Step 3: ऑटो-स्केलिंग कॉन्फिगर करें
gcloud run services update myapp-api \
--region asia-northeast1 \
--min-instances 1 \
--max-instances 20 \
--concurrency 80 \
--cpu-throttling \
--execution-environment gen2
# service.yaml - Cloud Run सर्विस कॉन्फिगरेशन
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: myapp-api
spec:
template:
metadata:
annotations:
# न्यूनतम इंस्टेंस (कोल्ड स्टार्ट कम करने के लिए)
autoscaling.knative.dev/minScale: "1"
# अधिकतम इंस्टेंस (लागत सीमा)
autoscaling.knative.dev/maxScale: "20"
# 70% CPU उपयोग पर स्केल आउट
autoscaling.knative.dev/target-utilization-percentage: "70"
run.googleapis.com/execution-environment: gen2
spec:
containerConcurrency: 80
containers:
- image: asia-northeast1-docker.pkg.dev/my-project-123/myapp/api:latest
resources:
limits:
memory: 512Mi
cpu: "1"
Step 4: Secret Manager इंटीग्रेशन
# सीक्रेट रजिस्टर करें
echo -n "postgresql://user:password@host:5432/db" | \
gcloud secrets create DATABASE_URL --data-file=-
# सर्विस अकाउंट को रीड परमिशन दें
gcloud projects add-iam-policy-binding my-project-123 \
--member="serviceAccount:[email protected]" \
--role="roles/secretmanager.secretAccessor"
# Cloud Run में सीक्रेट माउंट करें
gcloud run services update myapp-api \
--region asia-northeast1 \
--set-secrets="DATABASE_URL=DATABASE_URL:latest,SENDGRID_API_KEY=SENDGRID_API_KEY:latest,JWT_SECRET=JWT_SECRET:latest"
// src/config.ts
export const config = {
databaseUrl: process.env.DATABASE_URL!,
sendgridApiKey: process.env.SENDGRID_API_KEY!,
jwtSecret: process.env.JWT_SECRET!,
port: parseInt(process.env.PORT || "8080", 10),
nodeEnv: process.env.NODE_ENV || "development",
};
// स्टार्टअप पर आवश्यक सीक्रेट वैलिडेट करें
const requiredEnvVars = ["DATABASE_URL", "SENDGRID_API_KEY", "JWT_SECRET"];
for (const envVar of requiredEnvVars) {
if (!process.env[envVar]) {
console.error(`Missing required environment variable: ${envVar}`);
process.exit(1);
}
}
Step 5: Cloud Build के साथ CI/CD पाइपलाइन
# cloudbuild.yaml
steps:
# Step 1: डिपेंडेंसी इंस्टॉल और टेस्ट चलाएं
- name: "node:22-alpine"
id: "test"
entrypoint: "sh"
args:
- "-c"
- |
npm ci
npm run test
npm run lint
# Step 2: Docker इमेज बिल्ड करें
- name: "gcr.io/cloud-builders/docker"
id: "build"
args:
- "build"
- "-t"
- "asia-northeast1-docker.pkg.dev/$PROJECT_ID/myapp/api:$COMMIT_SHA"
- "-t"
- "asia-northeast1-docker.pkg.dev/$PROJECT_ID/myapp/api:latest"
- "."
# Step 3: Artifact Registry में पुश करें
- name: "gcr.io/cloud-builders/docker"
id: "push"
args:
- "push"
- "--all-tags"
- "asia-northeast1-docker.pkg.dev/$PROJECT_ID/myapp/api"
# Step 4: Cloud Run में डिप्लॉय करें
- name: "gcr.io/google.com/cloudsdktool/cloud-sdk"
id: "deploy"
entrypoint: "gcloud"
args:
- "run"
- "deploy"
- "myapp-api"
- "--image"
- "asia-northeast1-docker.pkg.dev/$PROJECT_ID/myapp/api:$COMMIT_SHA"
- "--region"
- "asia-northeast1"
- "--platform"
- "managed"
- "--quiet"
options:
logging: CLOUD_LOGGING_ONLY
machineType: E2_HIGHCPU_8
timeout: "1200s"
5 सामान्य गलतियां
1. कोल्ड स्टार्ट से टाइमआउट
प्रोडक्शन में min-instances को कम से कम 1 पर सेट करें।
gcloud run services update myapp-api --min-instances 1 --region asia-northeast1
2. SIGTERM हैंडल न करना
process.on("SIGTERM", () => {
server.close(() => process.exit(0));
setTimeout(() => process.exit(1), 30000);
});
3. एनवायरनमेंट वेरिएबल में सेंसिटिव डेटा
# ❌ कभी नहीं: प्लेन टेक्स्ट में सीक्रेट
gcloud run services update myapp-api --set-env-vars DATABASE_PASSWORD=mypassword123
# ✅ सही: Secret Manager का उपयोग करें
gcloud run services update myapp-api --set-secrets="DATABASE_PASSWORD=DATABASE_PASSWORD:latest"
4. अपर्याप्त मेमोरी कॉन्फिगरेशन
CMD ["node", "--max-old-space-size=384", "dist/index.js"]
5. रिक्वेस्ट के बाहर बैकग्राउंड प्रोसेसिंग
gcloud run services update myapp-api --no-cpu-throttling --region asia-northeast1
सारांश
| कार्य | Claude Code का योगदान |
|---|---|
| Dockerfile जनरेशन | मल्टी-स्टेज बिल्ड और नॉन-रूट सेटअप ऑटोमेटेड |
| पहला डिप्लॉयमेंट | आवश्यकताओं से पूरे gcloud कमांड जनरेट |
| स्केलिंग कॉन्फिगरेशन | min/max इंस्टेंस और CPU थ्रेशोल्ड ऑप्टिमाइज़ |
| Secret Manager इंटीग्रेशन | सीक्रेट क्रिएशन, परमिशन और माउंट कॉन्फिग |
| CI/CD पाइपलाइन | टेस्ट के साथ cloudbuild.yaml जनरेट |
| कस्टम डोमेन | लोड बैलेंसर Terraform कॉन्फिग ऑटो-जनरेट |
संबंधित लेख
- Claude Code × AWS ECS/Fargate संपूर्ण गाइड
- Claude Code × AWS CloudFormation/CDK संपूर्ण गाइड
- Claude Code सिक्योरिटी बेस्ट प्रैक्टिसेज
संदर्भ
मुफ़्त PDF: 5 मिनट में Claude Code चीटशीट
बस अपना ईमेल दर्ज करें और हम तुरंत A4 एक-पृष्ठ चीटशीट PDF भेज देंगे।
हम आपकी व्यक्तिगत जानकारी की सुरक्षा करते हैं और स्पैम नहीं भेजते।
अपने Claude Code वर्कफ़्लो को अगले स्तर पर ले जाएँ
Claude Code में तुरंत कॉपी-पेस्ट करने योग्य 50 आज़माए हुए प्रॉम्प्ट टेम्पलेट।
लेखक के बारे में
Masa
Claude Code का गहराई से उपयोग करने वाले इंजीनियर। claudecode-lab.com चलाते हैं, जो 10 भाषाओं में 2,000 से अधिक पेजों वाला टेक मीडिया है।
संबंधित लेख
Codex Automations क्या है? AI से content ops, analysis और deploy करवाने का तरीका
Codex Automations से analytics, article planning, CTA सुधार, deploy और monetization workflow चलाने की practical guide.
Claude Code × GCP Cloud Functions संपूर्ण गाइड | सर्वरलेस फंक्शन तेज़ी से विकसित करें
Claude Code से GCP Cloud Functions को ऑप्टिमाइज़ करें। HTTP/Pub/Sub/Firestore ट्रिगर, लोकल टेस्टिंग और डिप्लॉयमेंट ऑटोमेशन — Masa के व्यावहारिक अनुभव से रियल कोड उदाहरणों के साथ।
Claude Code के साथ Firestore Schema Design: Collections से पहले Queries
Claude Code से Firestore schema, indexes, cost और security rules को query-first तरीके से design करने की practical guide.