opencode-skills-collection 4.0.67 → 4.0.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled-skills/.antigravity-install-manifest.json +281 -1
- package/bundled-skills/access-review/SKILL.md +394 -0
- package/bundled-skills/access-review/references/details.md +121 -0
- package/bundled-skills/agent-evals/SKILL.md +420 -0
- package/bundled-skills/agent-observability/SKILL.md +346 -0
- package/bundled-skills/agent-observability/references/details.md +786 -0
- package/bundled-skills/ai-agent-security/SKILL.md +393 -0
- package/bundled-skills/ai-agent-security/references/details.md +912 -0
- package/bundled-skills/ai-coding-agent-guardrails/SKILL.md +442 -0
- package/bundled-skills/ai-coding-agent-guardrails/references/details.md +753 -0
- package/bundled-skills/ai-inference-service-mesh/SKILL.md +449 -0
- package/bundled-skills/ai-pipeline-orchestration/SKILL.md +287 -0
- package/bundled-skills/ai-red-teaming/SKILL.md +409 -0
- package/bundled-skills/ai-security-hardening/SKILL.md +343 -0
- package/bundled-skills/ai-sre-incident-response/SKILL.md +336 -0
- package/bundled-skills/alerting-oncall/SKILL.md +458 -0
- package/bundled-skills/alerting-oncall/references/details.md +84 -0
- package/bundled-skills/anti-slop-design/SKILL.md +393 -0
- package/bundled-skills/antigravity-maintainer-batch-release/SKILL.md +1 -0
- package/bundled-skills/apk-redteam-pipeline/SKILL.md +446 -0
- package/bundled-skills/argocd-gitops/SKILL.md +469 -0
- package/bundled-skills/arm-templates/SKILL.md +438 -0
- package/bundled-skills/arm-templates/references/details.md +64 -0
- package/bundled-skills/artifact-yylo/SKILL.md +122 -0
- package/bundled-skills/asset-inventory/SKILL.md +412 -0
- package/bundled-skills/asset-inventory/references/details.md +127 -0
- package/bundled-skills/audit-logging/SKILL.md +476 -0
- package/bundled-skills/aws-cloudtrail/SKILL.md +486 -0
- package/bundled-skills/aws-cost-optimization/SKILL.md +331 -0
- package/bundled-skills/aws-ec2/SKILL.md +426 -0
- package/bundled-skills/aws-ecs-fargate/SKILL.md +388 -0
- package/bundled-skills/aws-iam/SKILL.md +463 -0
- package/bundled-skills/aws-lambda/SKILL.md +428 -0
- package/bundled-skills/aws-rds/SKILL.md +380 -0
- package/bundled-skills/aws-s3/SKILL.md +434 -0
- package/bundled-skills/aws-secrets-manager/SKILL.md +486 -0
- package/bundled-skills/aws-vpc/SKILL.md +436 -0
- package/bundled-skills/azure-ai-document-intelligence-ts/SKILL.md +1 -1
- package/bundled-skills/azure-aks/SKILL.md +423 -0
- package/bundled-skills/azure-devops/SKILL.md +457 -0
- package/bundled-skills/azure-functions-devsec/SKILL.md +436 -0
- package/bundled-skills/azure-keyvault/SKILL.md +455 -0
- package/bundled-skills/azure-keyvault/references/details.md +83 -0
- package/bundled-skills/azure-monitor-audit/SKILL.md +379 -0
- package/bundled-skills/azure-networking/SKILL.md +448 -0
- package/bundled-skills/azure-networking/references/details.md +135 -0
- package/bundled-skills/azure-sql/SKILL.md +413 -0
- package/bundled-skills/azure-sql/references/details.md +113 -0
- package/bundled-skills/azure-vms/SKILL.md +402 -0
- package/bundled-skills/azure-vms/references/details.md +134 -0
- package/bundled-skills/backup-recovery/SKILL.md +388 -0
- package/bundled-skills/bb-methodology/SKILL.md +451 -0
- package/bundled-skills/bb-methodology/references/details.md +120 -0
- package/bundled-skills/block-storage/SKILL.md +371 -0
- package/bundled-skills/blue-green-deploy/SKILL.md +453 -0
- package/bundled-skills/blue-green-deploy/references/details.md +90 -0
- package/bundled-skills/bug-bounty/SKILL.md +447 -0
- package/bundled-skills/bug-bounty/references/details.md +1316 -0
- package/bundled-skills/bugcrowd-reporting/SKILL.md +351 -0
- package/bundled-skills/business-continuity/SKILL.md +463 -0
- package/bundled-skills/career-ops/SKILL.md +186 -0
- package/bundled-skills/cdn-setup/SKILL.md +374 -0
- package/bundled-skills/change-management/SKILL.md +438 -0
- package/bundled-skills/change-management/references/details.md +105 -0
- package/bundled-skills/circleci/SKILL.md +475 -0
- package/bundled-skills/cis-benchmarks/SKILL.md +150 -0
- package/bundled-skills/cloudflare-pages/SKILL.md +318 -0
- package/bundled-skills/cloudflare-r2/SKILL.md +353 -0
- package/bundled-skills/cloudflare-workers/SKILL.md +415 -0
- package/bundled-skills/cloudflare-zero-trust/SKILL.md +361 -0
- package/bundled-skills/cloudformation/SKILL.md +461 -0
- package/bundled-skills/constraint-driven-development/SKILL.md +335 -0
- package/bundled-skills/constraint-driven-development/references/floor-guard.md +99 -0
- package/bundled-skills/container-hardening/SKILL.md +126 -0
- package/bundled-skills/container-registries/SKILL.md +435 -0
- package/bundled-skills/container-scanning/SKILL.md +416 -0
- package/bundled-skills/convex-backend/SKILL.md +338 -0
- package/bundled-skills/dast-scanning/SKILL.md +437 -0
- package/bundled-skills/database-backups/SKILL.md +425 -0
- package/bundled-skills/datadog/SKILL.md +487 -0
- package/bundled-skills/dependency-scanning/SKILL.md +457 -0
- package/bundled-skills/devcontainers-nix/SKILL.md +416 -0
- package/bundled-skills/disaster-recovery/SKILL.md +374 -0
- package/bundled-skills/disaster-recovery/references/details.md +219 -0
- package/bundled-skills/dns-management/SKILL.md +375 -0
- package/bundled-skills/docker-compose/SKILL.md +482 -0
- package/bundled-skills/docker-management/SKILL.md +426 -0
- package/bundled-skills/ebpf-observability/SKILL.md +436 -0
- package/bundled-skills/ebpf-observability/references/details.md +542 -0
- package/bundled-skills/elk-stack/SKILL.md +487 -0
- package/bundled-skills/enterprise-vpn-attack/SKILL.md +395 -0
- package/bundled-skills/evidence-hygiene/SKILL.md +404 -0
- package/bundled-skills/feature-flags/SKILL.md +426 -0
- package/bundled-skills/feature-flags/references/details.md +86 -0
- package/bundled-skills/fedramp-compliance/SKILL.md +453 -0
- package/bundled-skills/firebase-app-platform/SKILL.md +381 -0
- package/bundled-skills/firewall-config/SKILL.md +479 -0
- package/bundled-skills/gcp-audit-logs/SKILL.md +452 -0
- package/bundled-skills/gcp-audit-logs/references/details.md +56 -0
- package/bundled-skills/gcp-cloud-functions/SKILL.md +284 -0
- package/bundled-skills/gcp-cloud-sql/SKILL.md +277 -0
- package/bundled-skills/gcp-compute/SKILL.md +319 -0
- package/bundled-skills/gcp-gke/SKILL.md +307 -0
- package/bundled-skills/gcp-networking/SKILL.md +293 -0
- package/bundled-skills/gcp-secret-manager/SKILL.md +421 -0
- package/bundled-skills/gcp-secret-manager/references/details.md +131 -0
- package/bundled-skills/gdpr-compliance/SKILL.md +451 -0
- package/bundled-skills/gdpr-compliance/references/details.md +145 -0
- package/bundled-skills/geo-audit/SKILL.md +368 -0
- package/bundled-skills/geo-brand-mentions/SKILL.md +68 -0
- package/bundled-skills/geo-brand-mentions/references/details.md +471 -0
- package/bundled-skills/geo-citability/SKILL.md +350 -0
- package/bundled-skills/geo-compare/SKILL.md +340 -0
- package/bundled-skills/geo-content/SKILL.md +383 -0
- package/bundled-skills/geo-crawlers/SKILL.md +408 -0
- package/bundled-skills/geo-llmstxt/SKILL.md +464 -0
- package/bundled-skills/geo-platform-optimizer/SKILL.md +314 -0
- package/bundled-skills/geo-proposal/SKILL.md +378 -0
- package/bundled-skills/geo-prospect/SKILL.md +225 -0
- package/bundled-skills/geo-report/SKILL.md +436 -0
- package/bundled-skills/geo-report-pdf/SKILL.md +157 -0
- package/bundled-skills/geo-schema/SKILL.md +408 -0
- package/bundled-skills/geo-technical/SKILL.md +78 -0
- package/bundled-skills/geo-technical/references/details.md +543 -0
- package/bundled-skills/git-workflow/SKILL.md +460 -0
- package/bundled-skills/github-actions/SKILL.md +368 -0
- package/bundled-skills/gitlab-ci/SKILL.md +340 -0
- package/bundled-skills/google-no-code/SKILL.md +136 -0
- package/bundled-skills/gpu-kubernetes-operations/SKILL.md +468 -0
- package/bundled-skills/gpu-server-management/SKILL.md +236 -0
- package/bundled-skills/hashicorp-vault/SKILL.md +408 -0
- package/bundled-skills/helm-charts/SKILL.md +469 -0
- package/bundled-skills/hipaa-compliance/SKILL.md +451 -0
- package/bundled-skills/hunt-aspnet/SKILL.md +321 -0
- package/bundled-skills/hunt-ato/SKILL.md +184 -0
- package/bundled-skills/hunt-auth-bypass/SKILL.md +426 -0
- package/bundled-skills/hunt-auth-bypass/references/details.md +80 -0
- package/bundled-skills/hunt-brute-force/SKILL.md +341 -0
- package/bundled-skills/hunt-business-logic/SKILL.md +281 -0
- package/bundled-skills/hunt-cache-poison/SKILL.md +382 -0
- package/bundled-skills/hunt-captcha-bypass/SKILL.md +136 -0
- package/bundled-skills/hunt-cicd/SKILL.md +311 -0
- package/bundled-skills/hunt-clickjacking/SKILL.md +110 -0
- package/bundled-skills/hunt-cors/SKILL.md +335 -0
- package/bundled-skills/hunt-dom/SKILL.md +323 -0
- package/bundled-skills/hunt-exceptional-conditions/SKILL.md +111 -0
- package/bundled-skills/hunt-file-upload/SKILL.md +202 -0
- package/bundled-skills/hunt-fintech-graphql/SKILL.md +289 -0
- package/bundled-skills/hunt-forgot-password/SKILL.md +114 -0
- package/bundled-skills/hunt-grpc/SKILL.md +317 -0
- package/bundled-skills/hunt-host-header/SKILL.md +309 -0
- package/bundled-skills/hunt-html-injection/SKILL.md +106 -0
- package/bundled-skills/hunt-http-smuggling/SKILL.md +129 -0
- package/bundled-skills/hunt-http-smuggling/references/phase2h-smuggling-cachepoison.md +177 -0
- package/bundled-skills/hunt-idor/SKILL.md +434 -0
- package/bundled-skills/hunt-jwt-crypto/SKILL.md +221 -0
- package/bundled-skills/hunt-k8s/SKILL.md +337 -0
- package/bundled-skills/hunt-laravel/SKILL.md +255 -0
- package/bundled-skills/hunt-ldap/SKILL.md +351 -0
- package/bundled-skills/hunt-lfi/SKILL.md +311 -0
- package/bundled-skills/hunt-llm-ai/SKILL.md +289 -0
- package/bundled-skills/hunt-mfa-bypass/SKILL.md +177 -0
- package/bundled-skills/hunt-misc/SKILL.md +378 -0
- package/bundled-skills/hunt-nextjs/SKILL.md +299 -0
- package/bundled-skills/hunt-nodejs/SKILL.md +263 -0
- package/bundled-skills/hunt-nosqli/SKILL.md +210 -0
- package/bundled-skills/hunt-ntlm-info/SKILL.md +314 -0
- package/bundled-skills/hunt-oauth/SKILL.md +459 -0
- package/bundled-skills/hunt-open-redirect/SKILL.md +223 -0
- package/bundled-skills/hunt-race-condition/SKILL.md +381 -0
- package/bundled-skills/hunt-race-condition/references/details.md +159 -0
- package/bundled-skills/hunt-rag-vector/SKILL.md +212 -0
- package/bundled-skills/hunt-rce/SKILL.md +444 -0
- package/bundled-skills/hunt-rce/references/details.md +110 -0
- package/bundled-skills/hunt-saml/SKILL.md +156 -0
- package/bundled-skills/hunt-session/SKILL.md +342 -0
- package/bundled-skills/hunt-shadow-api/SKILL.md +198 -0
- package/bundled-skills/hunt-source-leak/SKILL.md +345 -0
- package/bundled-skills/hunt-spa-api/SKILL.md +163 -0
- package/bundled-skills/hunt-springboot/SKILL.md +285 -0
- package/bundled-skills/hunt-sqli/SKILL.md +466 -0
- package/bundled-skills/hunt-ssrf/SKILL.md +396 -0
- package/bundled-skills/hunt-ssrf/references/details.md +179 -0
- package/bundled-skills/hunt-ssti/SKILL.md +163 -0
- package/bundled-skills/hunt-subdomain/SKILL.md +379 -0
- package/bundled-skills/hunt-tls-network/SKILL.md +399 -0
- package/bundled-skills/hunt-xxe/SKILL.md +466 -0
- package/bundled-skills/i-have-adhd/SKILL.md +170 -0
- package/bundled-skills/idea-evaluator/SKILL.md +75 -0
- package/bundled-skills/idea-evaluator/idea-evaluator-con/SKILL.md +64 -0
- package/bundled-skills/idea-evaluator/idea-evaluator-pro/SKILL.md +64 -0
- package/bundled-skills/identity-access-management/SKILL.md +382 -0
- package/bundled-skills/identity-access-management/references/details.md +524 -0
- package/bundled-skills/incident-management/SKILL.md +484 -0
- package/bundled-skills/incident-response/SKILL.md +448 -0
- package/bundled-skills/incident-response/references/details.md +113 -0
- package/bundled-skills/interview-me/SKILL.md +248 -0
- package/bundled-skills/iso27001-compliance/SKILL.md +460 -0
- package/bundled-skills/jenkins/SKILL.md +462 -0
- package/bundled-skills/jev-use/SKILL.md +158 -0
- package/bundled-skills/kubernetes-hardening/SKILL.md +154 -0
- package/bundled-skills/kubernetes-ops/SKILL.md +449 -0
- package/bundled-skills/kubernetes-ops/references/details.md +108 -0
- package/bundled-skills/kustomize/SKILL.md +478 -0
- package/bundled-skills/ledger-tasks-yylo/SKILL.md +219 -0
- package/bundled-skills/linux-administration/SKILL.md +367 -0
- package/bundled-skills/linux-hardening/SKILL.md +154 -0
- package/bundled-skills/llm-app-security/SKILL.md +389 -0
- package/bundled-skills/llm-app-security/references/details.md +674 -0
- package/bundled-skills/llm-caching/SKILL.md +334 -0
- package/bundled-skills/llm-cost-optimization/SKILL.md +311 -0
- package/bundled-skills/llm-fine-tuning/SKILL.md +329 -0
- package/bundled-skills/llm-gateway/SKILL.md +282 -0
- package/bundled-skills/llm-inference-scaling/SKILL.md +286 -0
- package/bundled-skills/llmops-platform-engineering/SKILL.md +472 -0
- package/bundled-skills/load-balancing/SKILL.md +403 -0
- package/bundled-skills/loki-logging/SKILL.md +479 -0
- package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package-lock.json +4 -4
- package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package.json +1 -1
- package/bundled-skills/m365-entra-attack/SKILL.md +423 -0
- package/bundled-skills/mac-mini-llm-lab/SKILL.md +350 -0
- package/bundled-skills/mcp-server-security/SKILL.md +356 -0
- package/bundled-skills/mcp-server-security/references/details.md +745 -0
- package/bundled-skills/mdm-device-management/SKILL.md +404 -0
- package/bundled-skills/mdm-device-management/references/details.md +410 -0
- package/bundled-skills/meme-coin-audit/SKILL.md +402 -0
- package/bundled-skills/mid-engagement-ir-detection/SKILL.md +377 -0
- package/bundled-skills/model-registry-governance/SKILL.md +452 -0
- package/bundled-skills/model-serving-kubernetes/SKILL.md +339 -0
- package/bundled-skills/model-supply-chain-security/SKILL.md +427 -0
- package/bundled-skills/mongodb/SKILL.md +436 -0
- package/bundled-skills/multi-tenant-llm-hosting/SKILL.md +435 -0
- package/bundled-skills/multi-tenant-llm-hosting/references/details.md +211 -0
- package/bundled-skills/mysql/SKILL.md +390 -0
- package/bundled-skills/new-relic/SKILL.md +472 -0
- package/bundled-skills/nfs-storage/SKILL.md +356 -0
- package/bundled-skills/object-storage/SKILL.md +378 -0
- package/bundled-skills/offensive-osint/SKILL.md +443 -0
- package/bundled-skills/okta-attack/SKILL.md +436 -0
- package/bundled-skills/ollama-stack/SKILL.md +379 -0
- package/bundled-skills/openclaw-deployment-hardening/SKILL.md +135 -0
- package/bundled-skills/openclaw-local-mac-mini/SKILL.md +426 -0
- package/bundled-skills/openclaw-local-mac-mini/references/details.md +221 -0
- package/bundled-skills/openclaw-security-hardening/SKILL.md +135 -0
- package/bundled-skills/openshift/SKILL.md +485 -0
- package/bundled-skills/opentelemetry/SKILL.md +438 -0
- package/bundled-skills/opentelemetry/references/details.md +78 -0
- package/bundled-skills/opentofu-migration/SKILL.md +349 -0
- package/bundled-skills/osint-methodology/SKILL.md +460 -0
- package/bundled-skills/osint-methodology/references/details.md +1350 -0
- package/bundled-skills/pci-dss-compliance/SKILL.md +446 -0
- package/bundled-skills/penetration-testing/SKILL.md +152 -0
- package/bundled-skills/performance-tuning/SKILL.md +381 -0
- package/bundled-skills/plan-ledger-tasks-yylo/SKILL.md +52 -0
- package/bundled-skills/planetscale/SKILL.md +297 -0
- package/bundled-skills/platform-engineering/SKILL.md +348 -0
- package/bundled-skills/platform-engineering/references/details.md +944 -0
- package/bundled-skills/podman/SKILL.md +405 -0
- package/bundled-skills/policy-as-code/SKILL.md +434 -0
- package/bundled-skills/policy-as-code/references/details.md +204 -0
- package/bundled-skills/postgresql-devsec/SKILL.md +378 -0
- package/bundled-skills/prometheus-grafana/SKILL.md +469 -0
- package/bundled-skills/prompt-injection-defense/SKILL.md +483 -0
- package/bundled-skills/rag-infrastructure/SKILL.md +269 -0
- package/bundled-skills/rag-observability-evals/SKILL.md +444 -0
- package/bundled-skills/rag-observability-evals/references/details.md +92 -0
- package/bundled-skills/ralph-loop-yylo/SKILL.md +55 -0
- package/bundled-skills/ralph-loop-yylo/references/first_check.md +18 -0
- package/bundled-skills/ralph-loop-yylo/references/implement.md +60 -0
- package/bundled-skills/recon-scope-triage/SKILL.md +128 -0
- package/bundled-skills/redis/SKILL.md +421 -0
- package/bundled-skills/redteam-report-template/SKILL.md +370 -0
- package/bundled-skills/report-writing/SKILL.md +426 -0
- package/bundled-skills/report-writing/references/details.md +187 -0
- package/bundled-skills/resumable-implementation-contracts/SKILL.md +254 -0
- package/bundled-skills/reverse-proxy/SKILL.md +420 -0
- package/bundled-skills/runbook-creation/SKILL.md +438 -0
- package/bundled-skills/runbook-creation/references/details.md +71 -0
- package/bundled-skills/saas-security-posture/SKILL.md +415 -0
- package/bundled-skills/sast-scanning/SKILL.md +444 -0
- package/bundled-skills/sbom-supply-chain/SKILL.md +433 -0
- package/bundled-skills/security-arsenal/SKILL.md +446 -0
- package/bundled-skills/security-arsenal/references/details.md +540 -0
- package/bundled-skills/security-automation/SKILL.md +146 -0
- package/bundled-skills/semantic-versioning/SKILL.md +434 -0
- package/bundled-skills/semantic-versioning/references/details.md +83 -0
- package/bundled-skills/service-mesh/SKILL.md +422 -0
- package/bundled-skills/soc2-compliance/SKILL.md +409 -0
- package/bundled-skills/sops-encryption/SKILL.md +124 -0
- package/bundled-skills/sre-dashboards/SKILL.md +143 -0
- package/bundled-skills/ssh-configuration/SKILL.md +324 -0
- package/bundled-skills/ssl-tls-management/SKILL.md +428 -0
- package/bundled-skills/ssl-tls-management/references/details.md +99 -0
- package/bundled-skills/startup-it-troubleshooting/SKILL.md +415 -0
- package/bundled-skills/supply-chain-attack-recon/SKILL.md +453 -0
- package/bundled-skills/supply-chain-attack-recon/references/details.md +258 -0
- package/bundled-skills/systemd-services/SKILL.md +379 -0
- package/bundled-skills/terraform-aws/SKILL.md +125 -0
- package/bundled-skills/terraform-azure/SKILL.md +415 -0
- package/bundled-skills/terraform-azure/references/details.md +231 -0
- package/bundled-skills/terraform-gcp/SKILL.md +369 -0
- package/bundled-skills/threat-modeling/SKILL.md +487 -0
- package/bundled-skills/understand-project-yylo/SKILL.md +62 -0
- package/bundled-skills/user-management/SKILL.md +383 -0
- package/bundled-skills/using-agent-skills/SKILL.md +220 -0
- package/bundled-skills/vector-database-ops/SKILL.md +300 -0
- package/bundled-skills/vendor-management/SKILL.md +439 -0
- package/bundled-skills/vendor-management/references/details.md +109 -0
- package/bundled-skills/vercel-deployments/SKILL.md +296 -0
- package/bundled-skills/vllm-server/SKILL.md +236 -0
- package/bundled-skills/vmware-vcenter-attack/SKILL.md +412 -0
- package/bundled-skills/vpn-setup/SKILL.md +452 -0
- package/bundled-skills/vulnerability-scanning/SKILL.md +448 -0
- package/bundled-skills/waf-setup/SKILL.md +354 -0
- package/bundled-skills/waf-setup/references/details.md +211 -0
- package/bundled-skills/weather-model-data-fetching/SKILL.md +277 -0
- package/bundled-skills/weather-observation-fetching/SKILL.md +246 -0
- package/bundled-skills/web2-recon/SKILL.md +440 -0
- package/bundled-skills/web2-recon/references/details.md +319 -0
- package/bundled-skills/web3-audit/SKILL.md +445 -0
- package/bundled-skills/web3-audit/references/details.md +224 -0
- package/bundled-skills/wiki-yylo/SKILL.md +114 -0
- package/bundled-skills/windows-hardening/SKILL.md +454 -0
- package/bundled-skills/windows-hardening/references/details.md +204 -0
- package/bundled-skills/windows-server/SKILL.md +318 -0
- package/bundled-skills/workflow-yylo/SKILL.md +107 -0
- package/bundled-skills/zero-trust/SKILL.md +461 -0
- package/package.json +1 -1
- package/skills_index.json +6924 -0
|
@@ -0,0 +1,428 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aws-lambda
|
|
3
|
+
description: Build and deploy serverless functions on AWS Lambda. Configure triggers,
|
|
4
|
+
manage permissions, and optimize performance. Use when implementing serverless applications.
|
|
5
|
+
category: devops
|
|
6
|
+
risk: critical
|
|
7
|
+
source: https://github.com/BagelHole/DevOps-Security-Agent-Skills
|
|
8
|
+
source_repo: BagelHole/DevOps-Security-Agent-Skills
|
|
9
|
+
source_type: community
|
|
10
|
+
date_added: '2026-09-20'
|
|
11
|
+
license: MIT
|
|
12
|
+
license_source: https://github.com/BagelHole/DevOps-Security-Agent-Skills/blob/main/LICENSE
|
|
13
|
+
compatibility: Requires the relevant OS/platform tooling and privileged access where
|
|
14
|
+
noted. Docs-only; helper scripts and templates not bundled.
|
|
15
|
+
metadata:
|
|
16
|
+
author: devops-skills
|
|
17
|
+
version: '1.0'
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# AWS Lambda
|
|
21
|
+
|
|
22
|
+
Build serverless applications with AWS Lambda, covering function creation, event sources, layers, SAM templates, and cold start optimization.
|
|
23
|
+
|
|
24
|
+
## When to Use This Skill
|
|
25
|
+
|
|
26
|
+
- Building event-driven applications triggered by API Gateway, S3, SQS, or EventBridge
|
|
27
|
+
- Running scheduled tasks (cron) without managing servers
|
|
28
|
+
- Processing data streams from Kinesis or DynamoDB
|
|
29
|
+
- Building lightweight APIs with API Gateway or function URLs
|
|
30
|
+
- Implementing webhooks, Slack bots, or automation scripts
|
|
31
|
+
- Reducing compute costs for intermittent or bursty workloads
|
|
32
|
+
|
|
33
|
+
## Prerequisites
|
|
34
|
+
|
|
35
|
+
- AWS CLI v2 installed and configured
|
|
36
|
+
- IAM permissions: `lambda:*`, `iam:PassRole`, `logs:*`, `apigateway:*`, `s3:*`
|
|
37
|
+
- Python 3.11+, Node.js 20+, or another supported runtime installed locally
|
|
38
|
+
- (Optional) AWS SAM CLI for local development and deployment
|
|
39
|
+
|
|
40
|
+
## Create and Deploy a Function
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# Create a deployment package
|
|
44
|
+
cd my-function
|
|
45
|
+
zip -r function.zip app.py
|
|
46
|
+
|
|
47
|
+
# Create the Lambda function
|
|
48
|
+
aws lambda create-function \
|
|
49
|
+
--function-name my-api-handler \
|
|
50
|
+
--runtime python3.12 \
|
|
51
|
+
--handler app.handler \
|
|
52
|
+
--role arn:aws:iam::123456789012:role/LambdaExecRole \
|
|
53
|
+
--zip-file fileb://function.zip \
|
|
54
|
+
--memory-size 256 \
|
|
55
|
+
--timeout 30 \
|
|
56
|
+
--environment 'Variables={STAGE=production,LOG_LEVEL=INFO}' \
|
|
57
|
+
--architectures arm64 \
|
|
58
|
+
--tracing-config Mode=Active \
|
|
59
|
+
--tags '{"Team":"backend","Environment":"production"}'
|
|
60
|
+
|
|
61
|
+
# Update function code
|
|
62
|
+
aws lambda update-function-code \
|
|
63
|
+
--function-name my-api-handler \
|
|
64
|
+
--zip-file fileb://function.zip
|
|
65
|
+
|
|
66
|
+
# Update function configuration
|
|
67
|
+
aws lambda update-function-configuration \
|
|
68
|
+
--function-name my-api-handler \
|
|
69
|
+
--memory-size 512 \
|
|
70
|
+
--timeout 60 \
|
|
71
|
+
--environment 'Variables={STAGE=production,LOG_LEVEL=WARNING}'
|
|
72
|
+
|
|
73
|
+
# Publish a version (immutable snapshot)
|
|
74
|
+
aws lambda publish-version \
|
|
75
|
+
--function-name my-api-handler \
|
|
76
|
+
--description "v1.2.0 - added rate limiting"
|
|
77
|
+
|
|
78
|
+
# Create an alias pointing to the version
|
|
79
|
+
aws lambda create-alias \
|
|
80
|
+
--function-name my-api-handler \
|
|
81
|
+
--name live \
|
|
82
|
+
--function-version 3
|
|
83
|
+
|
|
84
|
+
# Weighted alias for canary deployments (90% v3, 10% v4)
|
|
85
|
+
aws lambda update-alias \
|
|
86
|
+
--function-name my-api-handler \
|
|
87
|
+
--name live \
|
|
88
|
+
--function-version 4 \
|
|
89
|
+
--routing-config '{"AdditionalVersionWeights":{"3":0.9}}'
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Function Code Examples
|
|
93
|
+
|
|
94
|
+
```python
|
|
95
|
+
# app.py - API Gateway handler with structured logging
|
|
96
|
+
import json
|
|
97
|
+
import logging
|
|
98
|
+
import os
|
|
99
|
+
|
|
100
|
+
logger = logging.getLogger()
|
|
101
|
+
logger.setLevel(os.environ.get("LOG_LEVEL", "INFO"))
|
|
102
|
+
|
|
103
|
+
def handler(event, context):
|
|
104
|
+
"""Handle API Gateway proxy event."""
|
|
105
|
+
logger.info("Request: %s %s", event["httpMethod"], event["path"])
|
|
106
|
+
|
|
107
|
+
try:
|
|
108
|
+
body = json.loads(event.get("body", "{}"))
|
|
109
|
+
result = process_request(body)
|
|
110
|
+
|
|
111
|
+
return {
|
|
112
|
+
"statusCode": 200,
|
|
113
|
+
"headers": {
|
|
114
|
+
"Content-Type": "application/json",
|
|
115
|
+
"X-Request-Id": context.aws_request_id
|
|
116
|
+
},
|
|
117
|
+
"body": json.dumps(result)
|
|
118
|
+
}
|
|
119
|
+
except ValueError as e:
|
|
120
|
+
logger.warning("Validation error: %s", e)
|
|
121
|
+
return {"statusCode": 400, "body": json.dumps({"error": str(e)})}
|
|
122
|
+
except Exception as e:
|
|
123
|
+
logger.exception("Unhandled error")
|
|
124
|
+
return {"statusCode": 500, "body": json.dumps({"error": "Internal server error"})}
|
|
125
|
+
|
|
126
|
+
def process_request(body):
|
|
127
|
+
return {"message": "OK", "data": body}
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
```python
|
|
131
|
+
# sqs_processor.py - SQS batch processor with partial failure reporting
|
|
132
|
+
import json
|
|
133
|
+
import logging
|
|
134
|
+
|
|
135
|
+
logger = logging.getLogger()
|
|
136
|
+
logger.setLevel("INFO")
|
|
137
|
+
|
|
138
|
+
def handler(event, context):
|
|
139
|
+
"""Process SQS messages with partial batch failure reporting."""
|
|
140
|
+
failed_ids = []
|
|
141
|
+
|
|
142
|
+
for record in event["Records"]:
|
|
143
|
+
try:
|
|
144
|
+
body = json.loads(record["body"])
|
|
145
|
+
logger.info("Processing message: %s", record["messageId"])
|
|
146
|
+
process_message(body)
|
|
147
|
+
except Exception as e:
|
|
148
|
+
logger.error("Failed message %s: %s", record["messageId"], e)
|
|
149
|
+
failed_ids.append(record["messageId"])
|
|
150
|
+
|
|
151
|
+
# Return failed items so only those get retried
|
|
152
|
+
return {
|
|
153
|
+
"batchItemFailures": [
|
|
154
|
+
{"itemIdentifier": msg_id} for msg_id in failed_ids
|
|
155
|
+
]
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
def process_message(body):
|
|
159
|
+
pass # your logic here
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## Lambda Layers
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
# Build a layer for Python dependencies
|
|
166
|
+
mkdir -p layer/python
|
|
167
|
+
pip install requests boto3-stubs -t layer/python/
|
|
168
|
+
cd layer
|
|
169
|
+
zip -r ../my-layer.zip python/
|
|
170
|
+
|
|
171
|
+
# Publish the layer
|
|
172
|
+
aws lambda publish-layer-version \
|
|
173
|
+
--layer-name common-deps \
|
|
174
|
+
--description "Shared Python dependencies" \
|
|
175
|
+
--zip-file fileb://my-layer.zip \
|
|
176
|
+
--compatible-runtimes python3.11 python3.12 \
|
|
177
|
+
--compatible-architectures arm64 x86_64
|
|
178
|
+
|
|
179
|
+
# Attach layer to a function
|
|
180
|
+
aws lambda update-function-configuration \
|
|
181
|
+
--function-name my-api-handler \
|
|
182
|
+
--layers "arn:aws:lambda:us-east-1:123456789012:layer:common-deps:1"
|
|
183
|
+
|
|
184
|
+
# List available layers
|
|
185
|
+
aws lambda list-layers --compatible-runtime python3.12
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Event Source Mappings
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
# SQS trigger with batch processing
|
|
192
|
+
aws lambda create-event-source-mapping \
|
|
193
|
+
--function-name sqs-processor \
|
|
194
|
+
--event-source-arn arn:aws:sqs:us-east-1:123456789012:my-queue \
|
|
195
|
+
--batch-size 10 \
|
|
196
|
+
--maximum-batching-window-in-seconds 5 \
|
|
197
|
+
--function-response-types ReportBatchItemFailures
|
|
198
|
+
|
|
199
|
+
# DynamoDB Streams trigger
|
|
200
|
+
aws lambda create-event-source-mapping \
|
|
201
|
+
--function-name stream-processor \
|
|
202
|
+
--event-source-arn arn:aws:dynamodb:us-east-1:123456789012:table/my-table/stream/2026-01-01T00:00:00.000 \
|
|
203
|
+
--batch-size 100 \
|
|
204
|
+
--starting-position LATEST \
|
|
205
|
+
--maximum-retry-attempts 3 \
|
|
206
|
+
--bisect-batch-on-function-error \
|
|
207
|
+
--destination-config '{"OnFailure":{"Destination":"arn:aws:sqs:us-east-1:123456789012:dlq"}}'
|
|
208
|
+
|
|
209
|
+
# S3 event notification (via Lambda permission + S3 config)
|
|
210
|
+
aws lambda add-permission \
|
|
211
|
+
--function-name image-processor \
|
|
212
|
+
--statement-id s3-trigger \
|
|
213
|
+
--action lambda:InvokeFunction \
|
|
214
|
+
--principal s3.amazonaws.com \
|
|
215
|
+
--source-arn arn:aws:s3:::my-uploads-bucket \
|
|
216
|
+
--source-account 123456789012
|
|
217
|
+
|
|
218
|
+
aws s3api put-bucket-notification-configuration \
|
|
219
|
+
--bucket my-uploads-bucket \
|
|
220
|
+
--notification-configuration '{
|
|
221
|
+
"LambdaFunctionConfigurations": [{
|
|
222
|
+
"LambdaFunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:image-processor",
|
|
223
|
+
"Events": ["s3:ObjectCreated:*"],
|
|
224
|
+
"Filter": {"Key": {"FilterRules": [{"Name": "suffix", "Value": ".jpg"}]}}
|
|
225
|
+
}]
|
|
226
|
+
}'
|
|
227
|
+
|
|
228
|
+
# Schedule with EventBridge (cron)
|
|
229
|
+
aws events put-rule \
|
|
230
|
+
--name daily-cleanup \
|
|
231
|
+
--schedule-expression "cron(0 2 * * ? *)" \
|
|
232
|
+
--state ENABLED
|
|
233
|
+
|
|
234
|
+
aws lambda add-permission \
|
|
235
|
+
--function-name daily-cleanup \
|
|
236
|
+
--statement-id eventbridge \
|
|
237
|
+
--action lambda:InvokeFunction \
|
|
238
|
+
--principal events.amazonaws.com \
|
|
239
|
+
--source-arn arn:aws:events:us-east-1:123456789012:rule/daily-cleanup
|
|
240
|
+
|
|
241
|
+
aws events put-targets \
|
|
242
|
+
--rule daily-cleanup \
|
|
243
|
+
--targets '[{"Id":"1","Arn":"arn:aws:lambda:us-east-1:123456789012:function:daily-cleanup"}]'
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
## Function URLs (No API Gateway Needed)
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
# Create a function URL (public HTTPS endpoint)
|
|
250
|
+
aws lambda create-function-url-config \
|
|
251
|
+
--function-name my-api-handler \
|
|
252
|
+
--auth-type NONE \
|
|
253
|
+
--cors '{
|
|
254
|
+
"AllowOrigins": ["https://myapp.com"],
|
|
255
|
+
"AllowMethods": ["GET", "POST"],
|
|
256
|
+
"AllowHeaders": ["Content-Type"],
|
|
257
|
+
"MaxAge": 86400
|
|
258
|
+
}'
|
|
259
|
+
|
|
260
|
+
# Grant public invoke for function URL
|
|
261
|
+
aws lambda add-permission \
|
|
262
|
+
--function-name my-api-handler \
|
|
263
|
+
--statement-id function-url-public \
|
|
264
|
+
--action lambda:InvokeFunctionUrl \
|
|
265
|
+
--principal "*" \
|
|
266
|
+
--function-url-auth-type NONE
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
## Cold Start Optimization
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
# Enable provisioned concurrency to eliminate cold starts
|
|
273
|
+
aws lambda put-provisioned-concurrency-config \
|
|
274
|
+
--function-name my-api-handler \
|
|
275
|
+
--qualifier live \
|
|
276
|
+
--provisioned-concurrent-executions 10
|
|
277
|
+
|
|
278
|
+
# Set reserved concurrency (throttle limit)
|
|
279
|
+
aws lambda put-function-concurrency \
|
|
280
|
+
--function-name my-api-handler \
|
|
281
|
+
--reserved-concurrent-executions 100
|
|
282
|
+
|
|
283
|
+
# Enable SnapStart for Java functions (near-zero cold starts)
|
|
284
|
+
aws lambda update-function-configuration \
|
|
285
|
+
--function-name my-java-handler \
|
|
286
|
+
--snap-start '{"ApplyOn": "PublishedVersions"}'
|
|
287
|
+
aws lambda publish-version --function-name my-java-handler
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
Cold start reduction tips:
|
|
291
|
+
- Use `arm64` architecture (Graviton) for faster init and lower cost
|
|
292
|
+
- Minimize deployment package size; use layers for large dependencies
|
|
293
|
+
- Initialize SDK clients outside the handler function
|
|
294
|
+
- Avoid VPC unless required (VPC cold starts are longer)
|
|
295
|
+
- Use provisioned concurrency for latency-sensitive paths
|
|
296
|
+
|
|
297
|
+
## SAM Template
|
|
298
|
+
|
|
299
|
+
```yaml
|
|
300
|
+
# template.yaml - AWS SAM application
|
|
301
|
+
AWSTemplateFormatVersion: '2010-09-09'
|
|
302
|
+
Transform: AWS::Serverless-2016-10-31
|
|
303
|
+
Description: My serverless API
|
|
304
|
+
|
|
305
|
+
Globals:
|
|
306
|
+
Function:
|
|
307
|
+
Runtime: python3.12
|
|
308
|
+
Architectures: [arm64]
|
|
309
|
+
MemorySize: 256
|
|
310
|
+
Timeout: 30
|
|
311
|
+
Tracing: Active
|
|
312
|
+
Environment:
|
|
313
|
+
Variables:
|
|
314
|
+
STAGE: !Ref Stage
|
|
315
|
+
LOG_LEVEL: INFO
|
|
316
|
+
|
|
317
|
+
Parameters:
|
|
318
|
+
Stage:
|
|
319
|
+
Type: String
|
|
320
|
+
Default: dev
|
|
321
|
+
AllowedValues: [dev, staging, prod]
|
|
322
|
+
|
|
323
|
+
Resources:
|
|
324
|
+
ApiFunction:
|
|
325
|
+
Type: AWS::Serverless::Function
|
|
326
|
+
Properties:
|
|
327
|
+
FunctionName: !Sub "${Stage}-api-handler"
|
|
328
|
+
Handler: app.handler
|
|
329
|
+
CodeUri: src/
|
|
330
|
+
Layers:
|
|
331
|
+
- !Ref DepsLayer
|
|
332
|
+
Events:
|
|
333
|
+
GetItems:
|
|
334
|
+
Type: Api
|
|
335
|
+
Properties:
|
|
336
|
+
Path: /items
|
|
337
|
+
Method: get
|
|
338
|
+
PostItem:
|
|
339
|
+
Type: Api
|
|
340
|
+
Properties:
|
|
341
|
+
Path: /items
|
|
342
|
+
Method: post
|
|
343
|
+
Policies:
|
|
344
|
+
- DynamoDBCrudPolicy:
|
|
345
|
+
TableName: !Ref ItemsTable
|
|
346
|
+
|
|
347
|
+
QueueProcessor:
|
|
348
|
+
Type: AWS::Serverless::Function
|
|
349
|
+
Properties:
|
|
350
|
+
FunctionName: !Sub "${Stage}-queue-processor"
|
|
351
|
+
Handler: sqs_processor.handler
|
|
352
|
+
CodeUri: src/
|
|
353
|
+
Events:
|
|
354
|
+
SQSEvent:
|
|
355
|
+
Type: SQS
|
|
356
|
+
Properties:
|
|
357
|
+
Queue: !GetAtt ProcessingQueue.Arn
|
|
358
|
+
BatchSize: 10
|
|
359
|
+
FunctionResponseTypes:
|
|
360
|
+
- ReportBatchItemFailures
|
|
361
|
+
|
|
362
|
+
DepsLayer:
|
|
363
|
+
Type: AWS::Serverless::LayerVersion
|
|
364
|
+
Properties:
|
|
365
|
+
LayerName: common-deps
|
|
366
|
+
ContentUri: layer/
|
|
367
|
+
CompatibleRuntimes:
|
|
368
|
+
- python3.12
|
|
369
|
+
|
|
370
|
+
ItemsTable:
|
|
371
|
+
Type: AWS::DynamoDB::Table
|
|
372
|
+
Properties:
|
|
373
|
+
TableName: !Sub "${Stage}-items"
|
|
374
|
+
BillingMode: PAY_PER_REQUEST
|
|
375
|
+
AttributeDefinitions:
|
|
376
|
+
- AttributeName: id
|
|
377
|
+
AttributeType: S
|
|
378
|
+
KeySchema:
|
|
379
|
+
- AttributeName: id
|
|
380
|
+
KeyType: HASH
|
|
381
|
+
|
|
382
|
+
ProcessingQueue:
|
|
383
|
+
Type: AWS::SQS::Queue
|
|
384
|
+
Properties:
|
|
385
|
+
QueueName: !Sub "${Stage}-processing"
|
|
386
|
+
VisibilityTimeout: 360
|
|
387
|
+
|
|
388
|
+
Outputs:
|
|
389
|
+
ApiEndpoint:
|
|
390
|
+
Value: !Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod"
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
```bash
|
|
394
|
+
# SAM CLI commands
|
|
395
|
+
sam build
|
|
396
|
+
sam local invoke ApiFunction --event events/get-items.json
|
|
397
|
+
sam local start-api --port 3000
|
|
398
|
+
sam deploy --guided
|
|
399
|
+
sam logs --name ApiFunction --stack-name my-stack --tail
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
## Troubleshooting
|
|
403
|
+
|
|
404
|
+
| Problem | Cause | Fix |
|
|
405
|
+
|---|---|---|
|
|
406
|
+
| Function times out | Timeout too low or downstream slow | Increase timeout; check VPC/NAT config |
|
|
407
|
+
| Out of memory | Memory limit too small | Increase `--memory-size`; profile with CloudWatch Insights |
|
|
408
|
+
| Permission denied on AWS API | Execution role missing policy | Attach required policy to the execution role |
|
|
409
|
+
| Cold starts > 5s | Large package or VPC overhead | Use layers, arm64, provisioned concurrency; remove VPC if not needed |
|
|
410
|
+
| SQS messages reprocessed | Visibility timeout < function timeout | Set queue visibility timeout to 6x function timeout |
|
|
411
|
+
| Event source mapping disabled | Too many consecutive errors | Fix the function error; re-enable the mapping |
|
|
412
|
+
| Layer not found | Wrong region or deleted version | Verify layer ARN region matches function region |
|
|
413
|
+
| Canary deployment not shifting | Alias routing config wrong | Verify version numbers in routing config |
|
|
414
|
+
| Cannot invoke function URL | Missing resource-based policy | Add `lambda:InvokeFunctionUrl` permission |
|
|
415
|
+
|
|
416
|
+
## Related Skills
|
|
417
|
+
|
|
418
|
+
- aws-iam (`aws-iam`) - Execution roles and permissions
|
|
419
|
+
- terraform-aws (`terraform-aws`) - IaC deployment for Lambda
|
|
420
|
+
- aws-s3 (`aws-s3`) - S3 event triggers
|
|
421
|
+
- aws-vpc (`aws-vpc`) - VPC configuration for Lambda
|
|
422
|
+
- aws-cost-optimization (`aws-cost-optimization`) - Optimizing Lambda spend
|
|
423
|
+
|
|
424
|
+
## Limitations
|
|
425
|
+
|
|
426
|
+
- Infrastructure commands can disrupt services: confirm target host/scope and have backups/snapshots before mutating state.
|
|
427
|
+
- Docs-only import: upstream scripts and templates not bundled.
|
|
428
|
+
|