技能 编程开发 Gamma 部署集成指南

Gamma 部署集成指南

v20260311
gamma-deploy-integration
提供将 Gamma 集成应用发布到 Vercel、AWS Lambda 和 Google Cloud Run 的分步流程,涵盖密钥管理、配置文件、Docker/SAM 模板和 GitHub Actions 自动化,确保生产环境安全部署。
获取技能
455 次下载
概览

Gamma Deploy Integration

Overview

Deploy Gamma-integrated applications to various cloud platforms with proper configuration and secret management.

Prerequisites

  • Completed CI integration
  • Cloud platform account (Vercel, AWS, or GCP)
  • Production Gamma API key

Instructions

Vercel Deployment

Step 1: Configure Vercel Project

set -euo pipefail
# Install Vercel CLI
npm i -g vercel

# Link project
vercel link

# Set environment variable
vercel env add GAMMA_API_KEY production

Step 2: Create vercel.json

{
  "framework": "nextjs",
  "buildCommand": "npm run build",
  "env": {
    "GAMMA_API_KEY": "@gamma_api_key"
  },
  "functions": {
    "api/**/*.ts": {
      "maxDuration": 30
    }
  }
}

Step 3: Deploy

# Preview deployment
vercel

# Production deployment
vercel --prod

AWS Lambda Deployment

Step 1: Store Secret in AWS Secrets Manager

aws secretsmanager create-secret \
  --name gamma/api-key \
  --secret-string '{"apiKey":"your-gamma-api-key"}'

Step 2: Lambda Configuration

// lambda/gamma-handler.ts
import { SecretsManager } from '@aws-sdk/client-secrets-manager';
import { GammaClient } from '@gamma/sdk';

const secretsManager = new SecretsManager({ region: 'us-east-1' });
let gamma: GammaClient;

async function getGammaClient() {
  if (!gamma) {
    const secret = await secretsManager.getSecretValue({
      SecretId: 'gamma/api-key',
    });
    const { apiKey } = JSON.parse(secret.SecretString!);
    gamma = new GammaClient({ apiKey });
  }
  return gamma;
}

export async function handler(event: any) {
  const client = await getGammaClient();
  const result = await client.presentations.create({
    title: event.title,
    prompt: event.prompt,
  });
  return { statusCode: 200, body: JSON.stringify(result) };  # HTTP 200 OK
}

Step 3: SAM Template

# template.yaml
AWSTemplateFormatVersion: '2010-09-09'  # 2010 = configured value
Transform: AWS::Serverless-2016-10-31  # 2016 = configured value

Resources:
  GammaFunction:
    Type: AWS::Serverless::Function
    Properties:
      Handler: dist/gamma-handler.handler
      Runtime: nodejs20.x
      Timeout: 30
      MemorySize: 256  # 256 bytes
      Policies:
        - SecretsManagerReadWrite
      Environment:
        Variables:
          NODE_ENV: production

Google Cloud Run Deployment

Step 1: Store Secret

echo -n "your-gamma-api-key" | \
  gcloud secrets create gamma-api-key --data-file=-

Step 2: Dockerfile

FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY dist ./dist
CMD ["node", "dist/server.js"]

Step 3: Deploy

set -euo pipefail
gcloud run deploy gamma-service \
  --image gcr.io/$PROJECT_ID/gamma-service \
  --platform managed \
  --region us-central1 \
  --set-secrets GAMMA_API_KEY=gamma-api-key:latest \
  --allow-unauthenticated

GitHub Actions Deployment

# .github/workflows/deploy.yml
name: Deploy

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Build
        run: npm ci && npm run build

      - name: Deploy to Vercel
        uses: amondnet/vercel-action@v25
        with:
          vercel-token: ${{ secrets.VERCEL_TOKEN }}
          vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
          vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}
          vercel-args: '--prod'

Output

  • Production deployment on chosen platform
  • Secrets securely stored
  • Environment variables configured
  • Automated deployment pipeline

Error Handling

Error Cause Solution
Secret not found Missing secret Create secret in platform
Timeout Function too slow Increase timeout limit
Cold start Lambda initialization Use provisioned concurrency
Permission denied IAM misconfigured Update IAM policies

Resources

Next Steps

Proceed to gamma-webhooks-events for event handling.

Examples

Basic usage: Apply gamma deploy integration to a standard project setup with default configuration options.

Advanced scenario: Customize gamma deploy integration for production environments with multiple constraints and team-specific requirements.

信息
Category 编程开发
Name gamma-deploy-integration
版本 v20260311
大小 4.97KB
更新时间 2026-03-12
语言