opencode-skills-collection 4.0.68 → 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.
Files changed (309) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +266 -1
  2. package/bundled-skills/access-review/SKILL.md +394 -0
  3. package/bundled-skills/access-review/references/details.md +121 -0
  4. package/bundled-skills/agent-evals/SKILL.md +420 -0
  5. package/bundled-skills/agent-observability/SKILL.md +346 -0
  6. package/bundled-skills/agent-observability/references/details.md +786 -0
  7. package/bundled-skills/ai-agent-security/SKILL.md +393 -0
  8. package/bundled-skills/ai-agent-security/references/details.md +912 -0
  9. package/bundled-skills/ai-coding-agent-guardrails/SKILL.md +442 -0
  10. package/bundled-skills/ai-coding-agent-guardrails/references/details.md +753 -0
  11. package/bundled-skills/ai-inference-service-mesh/SKILL.md +449 -0
  12. package/bundled-skills/ai-pipeline-orchestration/SKILL.md +287 -0
  13. package/bundled-skills/ai-red-teaming/SKILL.md +409 -0
  14. package/bundled-skills/ai-security-hardening/SKILL.md +343 -0
  15. package/bundled-skills/ai-sre-incident-response/SKILL.md +336 -0
  16. package/bundled-skills/alerting-oncall/SKILL.md +458 -0
  17. package/bundled-skills/alerting-oncall/references/details.md +84 -0
  18. package/bundled-skills/apk-redteam-pipeline/SKILL.md +446 -0
  19. package/bundled-skills/argocd-gitops/SKILL.md +469 -0
  20. package/bundled-skills/arm-templates/SKILL.md +438 -0
  21. package/bundled-skills/arm-templates/references/details.md +64 -0
  22. package/bundled-skills/asset-inventory/SKILL.md +412 -0
  23. package/bundled-skills/asset-inventory/references/details.md +127 -0
  24. package/bundled-skills/audit-logging/SKILL.md +476 -0
  25. package/bundled-skills/aws-cloudtrail/SKILL.md +486 -0
  26. package/bundled-skills/aws-cost-optimization/SKILL.md +331 -0
  27. package/bundled-skills/aws-ec2/SKILL.md +426 -0
  28. package/bundled-skills/aws-ecs-fargate/SKILL.md +388 -0
  29. package/bundled-skills/aws-iam/SKILL.md +463 -0
  30. package/bundled-skills/aws-lambda/SKILL.md +428 -0
  31. package/bundled-skills/aws-rds/SKILL.md +380 -0
  32. package/bundled-skills/aws-s3/SKILL.md +434 -0
  33. package/bundled-skills/aws-secrets-manager/SKILL.md +486 -0
  34. package/bundled-skills/aws-vpc/SKILL.md +436 -0
  35. package/bundled-skills/azure-ai-document-intelligence-ts/SKILL.md +1 -1
  36. package/bundled-skills/azure-aks/SKILL.md +423 -0
  37. package/bundled-skills/azure-devops/SKILL.md +457 -0
  38. package/bundled-skills/azure-functions-devsec/SKILL.md +436 -0
  39. package/bundled-skills/azure-keyvault/SKILL.md +455 -0
  40. package/bundled-skills/azure-keyvault/references/details.md +83 -0
  41. package/bundled-skills/azure-monitor-audit/SKILL.md +379 -0
  42. package/bundled-skills/azure-networking/SKILL.md +448 -0
  43. package/bundled-skills/azure-networking/references/details.md +135 -0
  44. package/bundled-skills/azure-sql/SKILL.md +413 -0
  45. package/bundled-skills/azure-sql/references/details.md +113 -0
  46. package/bundled-skills/azure-vms/SKILL.md +402 -0
  47. package/bundled-skills/azure-vms/references/details.md +134 -0
  48. package/bundled-skills/backup-recovery/SKILL.md +388 -0
  49. package/bundled-skills/bb-methodology/SKILL.md +451 -0
  50. package/bundled-skills/bb-methodology/references/details.md +120 -0
  51. package/bundled-skills/block-storage/SKILL.md +371 -0
  52. package/bundled-skills/blue-green-deploy/SKILL.md +453 -0
  53. package/bundled-skills/blue-green-deploy/references/details.md +90 -0
  54. package/bundled-skills/bug-bounty/SKILL.md +447 -0
  55. package/bundled-skills/bug-bounty/references/details.md +1316 -0
  56. package/bundled-skills/bugcrowd-reporting/SKILL.md +351 -0
  57. package/bundled-skills/business-continuity/SKILL.md +463 -0
  58. package/bundled-skills/career-ops/SKILL.md +186 -0
  59. package/bundled-skills/cdn-setup/SKILL.md +374 -0
  60. package/bundled-skills/change-management/SKILL.md +438 -0
  61. package/bundled-skills/change-management/references/details.md +105 -0
  62. package/bundled-skills/circleci/SKILL.md +475 -0
  63. package/bundled-skills/cis-benchmarks/SKILL.md +150 -0
  64. package/bundled-skills/cloudflare-pages/SKILL.md +318 -0
  65. package/bundled-skills/cloudflare-r2/SKILL.md +353 -0
  66. package/bundled-skills/cloudflare-workers/SKILL.md +415 -0
  67. package/bundled-skills/cloudflare-zero-trust/SKILL.md +361 -0
  68. package/bundled-skills/cloudformation/SKILL.md +461 -0
  69. package/bundled-skills/constraint-driven-development/SKILL.md +335 -0
  70. package/bundled-skills/constraint-driven-development/references/floor-guard.md +99 -0
  71. package/bundled-skills/container-hardening/SKILL.md +126 -0
  72. package/bundled-skills/container-registries/SKILL.md +435 -0
  73. package/bundled-skills/container-scanning/SKILL.md +416 -0
  74. package/bundled-skills/convex-backend/SKILL.md +338 -0
  75. package/bundled-skills/dast-scanning/SKILL.md +437 -0
  76. package/bundled-skills/database-backups/SKILL.md +425 -0
  77. package/bundled-skills/datadog/SKILL.md +487 -0
  78. package/bundled-skills/dependency-scanning/SKILL.md +457 -0
  79. package/bundled-skills/devcontainers-nix/SKILL.md +416 -0
  80. package/bundled-skills/disaster-recovery/SKILL.md +374 -0
  81. package/bundled-skills/disaster-recovery/references/details.md +219 -0
  82. package/bundled-skills/dns-management/SKILL.md +375 -0
  83. package/bundled-skills/docker-compose/SKILL.md +482 -0
  84. package/bundled-skills/docker-management/SKILL.md +426 -0
  85. package/bundled-skills/ebpf-observability/SKILL.md +436 -0
  86. package/bundled-skills/ebpf-observability/references/details.md +542 -0
  87. package/bundled-skills/elk-stack/SKILL.md +487 -0
  88. package/bundled-skills/enterprise-vpn-attack/SKILL.md +395 -0
  89. package/bundled-skills/evidence-hygiene/SKILL.md +404 -0
  90. package/bundled-skills/feature-flags/SKILL.md +426 -0
  91. package/bundled-skills/feature-flags/references/details.md +86 -0
  92. package/bundled-skills/fedramp-compliance/SKILL.md +453 -0
  93. package/bundled-skills/firebase-app-platform/SKILL.md +381 -0
  94. package/bundled-skills/firewall-config/SKILL.md +479 -0
  95. package/bundled-skills/gcp-audit-logs/SKILL.md +452 -0
  96. package/bundled-skills/gcp-audit-logs/references/details.md +56 -0
  97. package/bundled-skills/gcp-cloud-functions/SKILL.md +284 -0
  98. package/bundled-skills/gcp-cloud-sql/SKILL.md +277 -0
  99. package/bundled-skills/gcp-compute/SKILL.md +319 -0
  100. package/bundled-skills/gcp-gke/SKILL.md +307 -0
  101. package/bundled-skills/gcp-networking/SKILL.md +293 -0
  102. package/bundled-skills/gcp-secret-manager/SKILL.md +421 -0
  103. package/bundled-skills/gcp-secret-manager/references/details.md +131 -0
  104. package/bundled-skills/gdpr-compliance/SKILL.md +451 -0
  105. package/bundled-skills/gdpr-compliance/references/details.md +145 -0
  106. package/bundled-skills/geo-audit/SKILL.md +368 -0
  107. package/bundled-skills/geo-brand-mentions/SKILL.md +68 -0
  108. package/bundled-skills/geo-brand-mentions/references/details.md +471 -0
  109. package/bundled-skills/geo-citability/SKILL.md +350 -0
  110. package/bundled-skills/geo-compare/SKILL.md +340 -0
  111. package/bundled-skills/geo-content/SKILL.md +383 -0
  112. package/bundled-skills/geo-crawlers/SKILL.md +408 -0
  113. package/bundled-skills/geo-llmstxt/SKILL.md +464 -0
  114. package/bundled-skills/geo-platform-optimizer/SKILL.md +314 -0
  115. package/bundled-skills/geo-proposal/SKILL.md +378 -0
  116. package/bundled-skills/geo-prospect/SKILL.md +225 -0
  117. package/bundled-skills/geo-report/SKILL.md +436 -0
  118. package/bundled-skills/geo-report-pdf/SKILL.md +157 -0
  119. package/bundled-skills/geo-schema/SKILL.md +408 -0
  120. package/bundled-skills/geo-technical/SKILL.md +78 -0
  121. package/bundled-skills/geo-technical/references/details.md +543 -0
  122. package/bundled-skills/git-workflow/SKILL.md +460 -0
  123. package/bundled-skills/github-actions/SKILL.md +368 -0
  124. package/bundled-skills/gitlab-ci/SKILL.md +340 -0
  125. package/bundled-skills/gpu-kubernetes-operations/SKILL.md +468 -0
  126. package/bundled-skills/gpu-server-management/SKILL.md +236 -0
  127. package/bundled-skills/hashicorp-vault/SKILL.md +408 -0
  128. package/bundled-skills/helm-charts/SKILL.md +469 -0
  129. package/bundled-skills/hipaa-compliance/SKILL.md +451 -0
  130. package/bundled-skills/hunt-aspnet/SKILL.md +321 -0
  131. package/bundled-skills/hunt-ato/SKILL.md +184 -0
  132. package/bundled-skills/hunt-auth-bypass/SKILL.md +426 -0
  133. package/bundled-skills/hunt-auth-bypass/references/details.md +80 -0
  134. package/bundled-skills/hunt-brute-force/SKILL.md +341 -0
  135. package/bundled-skills/hunt-business-logic/SKILL.md +281 -0
  136. package/bundled-skills/hunt-cache-poison/SKILL.md +382 -0
  137. package/bundled-skills/hunt-captcha-bypass/SKILL.md +136 -0
  138. package/bundled-skills/hunt-cicd/SKILL.md +311 -0
  139. package/bundled-skills/hunt-clickjacking/SKILL.md +110 -0
  140. package/bundled-skills/hunt-cors/SKILL.md +335 -0
  141. package/bundled-skills/hunt-dom/SKILL.md +323 -0
  142. package/bundled-skills/hunt-exceptional-conditions/SKILL.md +111 -0
  143. package/bundled-skills/hunt-file-upload/SKILL.md +202 -0
  144. package/bundled-skills/hunt-fintech-graphql/SKILL.md +289 -0
  145. package/bundled-skills/hunt-forgot-password/SKILL.md +114 -0
  146. package/bundled-skills/hunt-grpc/SKILL.md +317 -0
  147. package/bundled-skills/hunt-host-header/SKILL.md +309 -0
  148. package/bundled-skills/hunt-html-injection/SKILL.md +106 -0
  149. package/bundled-skills/hunt-http-smuggling/SKILL.md +129 -0
  150. package/bundled-skills/hunt-http-smuggling/references/phase2h-smuggling-cachepoison.md +177 -0
  151. package/bundled-skills/hunt-idor/SKILL.md +434 -0
  152. package/bundled-skills/hunt-jwt-crypto/SKILL.md +221 -0
  153. package/bundled-skills/hunt-k8s/SKILL.md +337 -0
  154. package/bundled-skills/hunt-laravel/SKILL.md +255 -0
  155. package/bundled-skills/hunt-ldap/SKILL.md +351 -0
  156. package/bundled-skills/hunt-lfi/SKILL.md +311 -0
  157. package/bundled-skills/hunt-llm-ai/SKILL.md +289 -0
  158. package/bundled-skills/hunt-mfa-bypass/SKILL.md +177 -0
  159. package/bundled-skills/hunt-misc/SKILL.md +378 -0
  160. package/bundled-skills/hunt-nextjs/SKILL.md +299 -0
  161. package/bundled-skills/hunt-nodejs/SKILL.md +263 -0
  162. package/bundled-skills/hunt-nosqli/SKILL.md +210 -0
  163. package/bundled-skills/hunt-ntlm-info/SKILL.md +314 -0
  164. package/bundled-skills/hunt-oauth/SKILL.md +459 -0
  165. package/bundled-skills/hunt-open-redirect/SKILL.md +223 -0
  166. package/bundled-skills/hunt-race-condition/SKILL.md +381 -0
  167. package/bundled-skills/hunt-race-condition/references/details.md +159 -0
  168. package/bundled-skills/hunt-rag-vector/SKILL.md +212 -0
  169. package/bundled-skills/hunt-rce/SKILL.md +444 -0
  170. package/bundled-skills/hunt-rce/references/details.md +110 -0
  171. package/bundled-skills/hunt-saml/SKILL.md +156 -0
  172. package/bundled-skills/hunt-session/SKILL.md +342 -0
  173. package/bundled-skills/hunt-shadow-api/SKILL.md +198 -0
  174. package/bundled-skills/hunt-source-leak/SKILL.md +345 -0
  175. package/bundled-skills/hunt-spa-api/SKILL.md +163 -0
  176. package/bundled-skills/hunt-springboot/SKILL.md +285 -0
  177. package/bundled-skills/hunt-sqli/SKILL.md +466 -0
  178. package/bundled-skills/hunt-ssrf/SKILL.md +396 -0
  179. package/bundled-skills/hunt-ssrf/references/details.md +179 -0
  180. package/bundled-skills/hunt-ssti/SKILL.md +163 -0
  181. package/bundled-skills/hunt-subdomain/SKILL.md +379 -0
  182. package/bundled-skills/hunt-tls-network/SKILL.md +399 -0
  183. package/bundled-skills/hunt-xxe/SKILL.md +466 -0
  184. package/bundled-skills/i-have-adhd/SKILL.md +170 -0
  185. package/bundled-skills/identity-access-management/SKILL.md +382 -0
  186. package/bundled-skills/identity-access-management/references/details.md +524 -0
  187. package/bundled-skills/incident-management/SKILL.md +484 -0
  188. package/bundled-skills/incident-response/SKILL.md +448 -0
  189. package/bundled-skills/incident-response/references/details.md +113 -0
  190. package/bundled-skills/interview-me/SKILL.md +248 -0
  191. package/bundled-skills/iso27001-compliance/SKILL.md +460 -0
  192. package/bundled-skills/jenkins/SKILL.md +462 -0
  193. package/bundled-skills/jev-use/SKILL.md +158 -0
  194. package/bundled-skills/kubernetes-hardening/SKILL.md +154 -0
  195. package/bundled-skills/kubernetes-ops/SKILL.md +449 -0
  196. package/bundled-skills/kubernetes-ops/references/details.md +108 -0
  197. package/bundled-skills/kustomize/SKILL.md +478 -0
  198. package/bundled-skills/linux-administration/SKILL.md +367 -0
  199. package/bundled-skills/linux-hardening/SKILL.md +154 -0
  200. package/bundled-skills/llm-app-security/SKILL.md +389 -0
  201. package/bundled-skills/llm-app-security/references/details.md +674 -0
  202. package/bundled-skills/llm-caching/SKILL.md +334 -0
  203. package/bundled-skills/llm-cost-optimization/SKILL.md +311 -0
  204. package/bundled-skills/llm-fine-tuning/SKILL.md +329 -0
  205. package/bundled-skills/llm-gateway/SKILL.md +282 -0
  206. package/bundled-skills/llm-inference-scaling/SKILL.md +286 -0
  207. package/bundled-skills/llmops-platform-engineering/SKILL.md +472 -0
  208. package/bundled-skills/load-balancing/SKILL.md +403 -0
  209. package/bundled-skills/loki-logging/SKILL.md +479 -0
  210. package/bundled-skills/m365-entra-attack/SKILL.md +423 -0
  211. package/bundled-skills/mac-mini-llm-lab/SKILL.md +350 -0
  212. package/bundled-skills/mcp-server-security/SKILL.md +356 -0
  213. package/bundled-skills/mcp-server-security/references/details.md +745 -0
  214. package/bundled-skills/mdm-device-management/SKILL.md +404 -0
  215. package/bundled-skills/mdm-device-management/references/details.md +410 -0
  216. package/bundled-skills/meme-coin-audit/SKILL.md +402 -0
  217. package/bundled-skills/mid-engagement-ir-detection/SKILL.md +377 -0
  218. package/bundled-skills/model-registry-governance/SKILL.md +452 -0
  219. package/bundled-skills/model-serving-kubernetes/SKILL.md +339 -0
  220. package/bundled-skills/model-supply-chain-security/SKILL.md +427 -0
  221. package/bundled-skills/mongodb/SKILL.md +436 -0
  222. package/bundled-skills/multi-tenant-llm-hosting/SKILL.md +435 -0
  223. package/bundled-skills/multi-tenant-llm-hosting/references/details.md +211 -0
  224. package/bundled-skills/mysql/SKILL.md +390 -0
  225. package/bundled-skills/new-relic/SKILL.md +472 -0
  226. package/bundled-skills/nfs-storage/SKILL.md +356 -0
  227. package/bundled-skills/object-storage/SKILL.md +378 -0
  228. package/bundled-skills/offensive-osint/SKILL.md +443 -0
  229. package/bundled-skills/okta-attack/SKILL.md +436 -0
  230. package/bundled-skills/ollama-stack/SKILL.md +379 -0
  231. package/bundled-skills/openclaw-deployment-hardening/SKILL.md +135 -0
  232. package/bundled-skills/openclaw-local-mac-mini/SKILL.md +426 -0
  233. package/bundled-skills/openclaw-local-mac-mini/references/details.md +221 -0
  234. package/bundled-skills/openclaw-security-hardening/SKILL.md +135 -0
  235. package/bundled-skills/openshift/SKILL.md +485 -0
  236. package/bundled-skills/opentelemetry/SKILL.md +438 -0
  237. package/bundled-skills/opentelemetry/references/details.md +78 -0
  238. package/bundled-skills/opentofu-migration/SKILL.md +349 -0
  239. package/bundled-skills/osint-methodology/SKILL.md +460 -0
  240. package/bundled-skills/osint-methodology/references/details.md +1350 -0
  241. package/bundled-skills/pci-dss-compliance/SKILL.md +446 -0
  242. package/bundled-skills/penetration-testing/SKILL.md +152 -0
  243. package/bundled-skills/performance-tuning/SKILL.md +381 -0
  244. package/bundled-skills/planetscale/SKILL.md +297 -0
  245. package/bundled-skills/platform-engineering/SKILL.md +348 -0
  246. package/bundled-skills/platform-engineering/references/details.md +944 -0
  247. package/bundled-skills/podman/SKILL.md +405 -0
  248. package/bundled-skills/policy-as-code/SKILL.md +434 -0
  249. package/bundled-skills/policy-as-code/references/details.md +204 -0
  250. package/bundled-skills/postgresql-devsec/SKILL.md +378 -0
  251. package/bundled-skills/prometheus-grafana/SKILL.md +469 -0
  252. package/bundled-skills/prompt-injection-defense/SKILL.md +483 -0
  253. package/bundled-skills/rag-infrastructure/SKILL.md +269 -0
  254. package/bundled-skills/rag-observability-evals/SKILL.md +444 -0
  255. package/bundled-skills/rag-observability-evals/references/details.md +92 -0
  256. package/bundled-skills/recon-scope-triage/SKILL.md +128 -0
  257. package/bundled-skills/redis/SKILL.md +421 -0
  258. package/bundled-skills/redteam-report-template/SKILL.md +370 -0
  259. package/bundled-skills/report-writing/SKILL.md +426 -0
  260. package/bundled-skills/report-writing/references/details.md +187 -0
  261. package/bundled-skills/reverse-proxy/SKILL.md +420 -0
  262. package/bundled-skills/runbook-creation/SKILL.md +438 -0
  263. package/bundled-skills/runbook-creation/references/details.md +71 -0
  264. package/bundled-skills/saas-security-posture/SKILL.md +415 -0
  265. package/bundled-skills/sast-scanning/SKILL.md +444 -0
  266. package/bundled-skills/sbom-supply-chain/SKILL.md +433 -0
  267. package/bundled-skills/security-arsenal/SKILL.md +446 -0
  268. package/bundled-skills/security-arsenal/references/details.md +540 -0
  269. package/bundled-skills/security-automation/SKILL.md +146 -0
  270. package/bundled-skills/semantic-versioning/SKILL.md +434 -0
  271. package/bundled-skills/semantic-versioning/references/details.md +83 -0
  272. package/bundled-skills/service-mesh/SKILL.md +422 -0
  273. package/bundled-skills/soc2-compliance/SKILL.md +409 -0
  274. package/bundled-skills/sops-encryption/SKILL.md +124 -0
  275. package/bundled-skills/sre-dashboards/SKILL.md +143 -0
  276. package/bundled-skills/ssh-configuration/SKILL.md +324 -0
  277. package/bundled-skills/ssl-tls-management/SKILL.md +428 -0
  278. package/bundled-skills/ssl-tls-management/references/details.md +99 -0
  279. package/bundled-skills/startup-it-troubleshooting/SKILL.md +415 -0
  280. package/bundled-skills/supply-chain-attack-recon/SKILL.md +453 -0
  281. package/bundled-skills/supply-chain-attack-recon/references/details.md +258 -0
  282. package/bundled-skills/systemd-services/SKILL.md +379 -0
  283. package/bundled-skills/terraform-aws/SKILL.md +125 -0
  284. package/bundled-skills/terraform-azure/SKILL.md +415 -0
  285. package/bundled-skills/terraform-azure/references/details.md +231 -0
  286. package/bundled-skills/terraform-gcp/SKILL.md +369 -0
  287. package/bundled-skills/threat-modeling/SKILL.md +487 -0
  288. package/bundled-skills/user-management/SKILL.md +383 -0
  289. package/bundled-skills/using-agent-skills/SKILL.md +220 -0
  290. package/bundled-skills/vector-database-ops/SKILL.md +300 -0
  291. package/bundled-skills/vendor-management/SKILL.md +439 -0
  292. package/bundled-skills/vendor-management/references/details.md +109 -0
  293. package/bundled-skills/vercel-deployments/SKILL.md +296 -0
  294. package/bundled-skills/vllm-server/SKILL.md +236 -0
  295. package/bundled-skills/vmware-vcenter-attack/SKILL.md +412 -0
  296. package/bundled-skills/vpn-setup/SKILL.md +452 -0
  297. package/bundled-skills/vulnerability-scanning/SKILL.md +448 -0
  298. package/bundled-skills/waf-setup/SKILL.md +354 -0
  299. package/bundled-skills/waf-setup/references/details.md +211 -0
  300. package/bundled-skills/web2-recon/SKILL.md +440 -0
  301. package/bundled-skills/web2-recon/references/details.md +319 -0
  302. package/bundled-skills/web3-audit/SKILL.md +445 -0
  303. package/bundled-skills/web3-audit/references/details.md +224 -0
  304. package/bundled-skills/windows-hardening/SKILL.md +454 -0
  305. package/bundled-skills/windows-hardening/references/details.md +204 -0
  306. package/bundled-skills/windows-server/SKILL.md +318 -0
  307. package/bundled-skills/zero-trust/SKILL.md +461 -0
  308. package/package.json +1 -1
  309. package/skills_index.json +6943 -323
@@ -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
+