跳到主要内容
知仓学习社ZHICANG

devops-deploy

DevOps e deploy de aplicacoes — Docker, CI/CD com GitHub Actions, AWS Lambda, SAM, Terraform, infraestrutura como codigo e monitoramento.

执行命令联网无严重或高危命中sickn33/agentic-awesome-skills

它会碰到什么

扫了多少1 个文本文件,7 KB
它会碰到什么执行命令联网
命中总数2 处
命中统计严重 0 · 高 0 · 中 0 · 低 0

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

DEVOPS-DEPLOY — Da Ideia para Producao

Overview

DevOps e deploy de aplicacoes — Docker, CI/CD com GitHub Actions, AWS Lambda, SAM, Terraform, infraestrutura como codigo e monitoramento. Ativar para: dockerizar aplicacao, configurar pipeline CI/CD, deploy na AWS, Lambda, ECS, configurar GitHub Actions, Terraform, rollback, blue-green deploy, health checks, alertas.

When to Use This Skill

  • When you need specialized assistance with this domain

Do Not Use This Skill When

  • The task is unrelated to devops deploy
  • A simpler, more specific tool can handle the request
  • The user needs general-purpose assistance without domain expertise

How It Works

> "Move fast and don't break things." — Engenharia de elite nao e lenta.

> E rapida e confiavel ao mesmo tempo.


Dockerfile Otimizado (Python)

FROM python:3.11-slim AS builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir --user -r requirements.txt

FROM python:3.11-slim
WORKDIR /app
COPY --from=builder /root/.local /root/.local
COPY . .
ENV PATH=/root/.local/bin:$PATH
ENV PYTHONUNBUFFERED=1
EXPOSE 8000
HEALTHCHECK --interval=30s --timeout=3s CMD curl -f http://localhost:8000/health || exit 1
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]

Docker Compose (Dev Local)

version: "3.9"
services:
  app:
    build: .
    ports: ["8000:8000"]
    environment:
      - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
    volumes:
      - .:/app
    depends_on: [db, redis]
  db:
    image: postgres:15
    environment:
      POSTGRES_DB: auri
      POSTGRES_USER: auri
      POSTGRES_PASSWORD: ${DB_PASSWORD}
    volumes:
      - pgdata:/var/lib/postgresql/data
  redis:
    image: redis:7-alpine
volumes:
  pgdata:

Sam Template (Serverless)


## Template.Yaml

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31

Globals:
  Function:
    Timeout: 30
    Runtime: python3.11
    Environment:
      Variables:
        ANTHROPIC_API_KEY: !Ref AnthropicApiKey
        DYNAMODB_TABLE: !Ref AuriTable

Resources:
  AuriFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: src/
      Handler: lambda_function.handler
      MemorySize: 512
      Policies:
        - DynamoDBCrudPolicy:
            TableName: !Ref AuriTable

  AuriTable:
    Type: AWS::DynamoDB::Table
    Properties:
      TableName: auri-users
      BillingMode: PAY_PER_REQUEST
      AttributeDefinitions:
        - AttributeName: userId
          AttributeType: S
      KeySchema:
        - AttributeName: userId
          KeyType: HASH
      TimeToLiveSpecification:
        AttributeName: ttl
        Enabled: true

Deploy Commands


## Build E Deploy

sam build
sam deploy --guided  # primeira vez
sam deploy           # deploys seguintes

## Deploy Rapido (Sem Confirmacao)

sam deploy --no-confirm-changeset --no-fail-on-empty-changeset

## Ver Logs Em Tempo Real

sam logs -n AuriFunction --tail

## Deletar Stack

sam delete

.Github/Workflows/Deploy.Yml

name: Deploy Auri

on:

push:

branches: [main]

pull_request:

branches: [main]

jobs:

test:

runs-on: ubuntu-latest

steps:

  • uses: actions/checkout@v4
  • uses: actions/setup-python@v5

with: { python-version: "3.11" }

  • run: pip install -r requirements.txt
  • run: pytest tests/ -v --cov=src --cov-report=xml
  • uses: codecov/codecov-action@v4

security:

runs-on: ubuntu-latest

steps:

  • uses: actions/checkout@v4
  • run: pip install bandit safety
  • run: bandit -r src/ -ll
  • run: safety check -r requirements.txt

deploy:

needs: [test, security]

if: github.ref == 'refs/heads/main'

runs-on: ubuntu-latest

steps:

  • uses: actions/checkout@v4
  • uses: aws-actions/setup-sam@v2
  • uses: aws-actions/configure-aws-credentials@v4

with:

aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}

aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

aws-region: us-east-1

  • run: sam build
  • run: sam deploy --no-confirm-changeset
  • name: Notify Telegram on Success

run: |

curl -s -X POST "https://api.telegram.org/bot${{ secrets.TELEGRAM_BOT_TOKEN }}/sendMessage" \

-d "chat_id=${{ secrets.TELEGRAM_CHAT_ID }}" \

-d "text=Auri deployed successfully! Commit: ${{ github.sha }}"


---

## Health Check Endpoint

from fastapi import FastAPI

import time, os

app = FastAPI()

START_TIME = time.time()

@app.get("/health")

async def health():

return {

"status": "healthy",

"uptime_seconds": time.time() - START_TIME,

"version": os.environ.get("APP_VERSION", "unknown"),

"environment": os.environ.get("ENV", "production")

}


## Alertas Cloudwatch

import boto3

def create_error_alarm(function_name: str, sns_topic_arn: str):

cw = boto3.client("cloudwatch")

cw.put_metric_alarm(

AlarmName=f"{function_name}-errors",

MetricName="Errors",

Namespace="AWS/Lambda",

Dimensions=[{"Name": "FunctionName", "Value": function_name}],

Period=300,

EvaluationPeriods=1,

Threshold=5,

ComparisonOperator="GreaterThanThreshold",

AlarmActions=[sns_topic_arn],

TreatMissingData="notBreaching"

)


---

## 5. Checklist De Producao

- [ ] Variaveis de ambiente via Secrets Manager (nunca hardcoded)
- [ ] Health check endpoint respondendo
- [ ] Logs estruturados (JSON) com request_id
- [ ] Rate limiting configurado
- [ ] CORS restrito a dominios autorizados
- [ ] DynamoDB com backup automatico ativado
- [ ] Lambda com timeout adequado (10-30s)
- [ ] CloudWatch alarmes para erros e latencia
- [ ] Rollback plan documentado
- [ ] Load test antes do lancamento

---

## 6. Comandos

| Comando | Acao |
|---------|------|
| `/docker-setup` | Dockeriza a aplicacao |
| `/sam-deploy` | Deploy completo na AWS Lambda |
| `/ci-cd-setup` | Configura GitHub Actions pipeline |
| `/monitoring-setup` | Configura CloudWatch e alertas |
| `/production-checklist` | Roda checklist pre-lancamento |
| `/rollback` | Plano de rollback para versao anterior |

## Best Practices

- Provide clear, specific context about your project and requirements
- Review all suggestions before applying them to production code
- Combine with other complementary skills for comprehensive analysis

## Common Pitfalls

- Using this skill for tasks outside its domain expertise
- Applying recommendations without understanding your specific context
- Not providing enough project context for accurate analysis

## Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。

同名技能的其他版本

有 3 个不同仓库或目录里都有叫 devops-deploy 的技能。它们内容并不相同,别混用: