Agent skill · software engineering · davila7

aws-serverless

Specialized skill for building production-ready serverless applications on AWS. Covers Lambda functions, API Gateway, DynamoDB, SQS/SNS event-driven patterns, SAM/CDK deployment, and cold start optimization.

Why this skill is useful

Adds executable scripts and patterns for building serverless applications on AWS, including Lambda functions and API Gateway integrations that aren't in public docs.

What it needs

Requires aws-cli installed locally. Requires aws account access. About 3k tokens when loaded. Last updated 2026-08-06. 30,138 stars on the source repository.

What this skill does

AWS Serverless Patterns Lambda Handler Pattern Proper Lambda function structure with error handling When to use: ['Any Lambda function implementation', 'API handlers, event processors, scheduled tasks'] javascript // Node.js Lambda Handler // handler.js // Initialize outside handler (reused across invocations) const { DynamoDBClient } = require('@aws-sdk/client-dynamodb'); const { DynamoDBDocumentClient, GetCommand } = require('@aws-sdk/lib-dynamodb'); const client = new DynamoDBClient({}); const docClient = DynamoDBDocumentClient.from(client); // Handler function exports.handler = async (event, context) => { // Optional: Don't wait for event loop to clear (Node.js) context.callbackWaitsForEmptyEventLoop = false; try { // Parse input based on event source const body = typeof event.body === 'string' ? JSON.parse(event.body) : event.body; // Business logic const result = await processRequest(body); // Return API Gateway compatible response return { statusCode: 200, headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '' }, body: JSON.stringify(result) }; } catch (error) { console.error('Error:', JSON.stringify({ error: error.message, stack: error.stack, requestId: context.awsRequestId })); return { statusCode: error.statusCode 500, headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ error: error.message 'Internal server error' }) }; } }; async function processRequest(data) { // Your business logic here const result = await docClient.send(new GetCommand({ TableName: process.env.TABLENAME, Key: { id: data.id } })); return result.Item; } python Python Lambda Handler handler.py import json import os import logging import boto3 from botocore.exceptions import ClientError Initialize outside handler (reused across invocations) logger = logging.getLogger() logger.setLevel(logging.INFO) dynamodb = boto3.resource('dynamodb') table = dynamodb.Table(os.environ['TABLENAME']) def handler(event, context): try: # Parse i javascript Event-D …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills davila7/aws-serverless

View the source on GitHub

Browse the @skills marketplace