Skip to content

/lambda

AWS Lambda serverless functions for event-driven compute. Use when creating functions, configuring triggers, debugging invocations, optimizing cold starts, setting up event source mappings, or managing layers.

From plugin
aws-agent-skills
1.2k18 skills
Install
$ npx -y skills add itsmostafa/aws-agent-skills --skill lambda --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/lambda

Context preview

The summary Claude sees to decide when to auto-load this skill.

AWS Lambda serverless functions for event-driven compute. Use when creating functions, configuring triggers, debugging invocations, optimizing cold starts, setting up event source mappings, or managing layers.

SKILL.md

lambda.SKILL.md
name: lambda
description: AWS Lambda serverless functions for event-driven compute. Use when creating functions, configuring triggers, debugging invocations, optimizing cold starts, setting up event source mappings, or managing layers.
last_updated: "2026-01-07"
doc_source: https://docs.aws.amazon.com/lambda/latest/dg/

AWS Lambda

AWS Lambda runs code without provisioning servers. You pay only for compute time consumed. Lambda automatically scales from a few requests per day to thousands per second.

Table of Contents

  • [Core Concepts](#core-concepts)
  • [Common Patterns](#common-patterns)
  • [CLI Reference](#cli-reference)
  • [Best Practices](#best-practices)
  • [Troubleshooting](#troubleshooting)
  • [References](#references)

Core Concepts

Function

Your code packaged with configuration. Includes runtime, handler, memory, timeout, and IAM role.

Invocation Types

| Type | Description | Use Case | |------|-------------|----------| | **Synchronous** | Caller waits for response | API Gateway, direct invoke | | **Asynchronous** | Fire and forget | S3, SNS, EventBridge | | **Poll-based** | Lambda polls source | SQS, Kinesis, DynamoDB Streams |

Execution Environment

Lambda creates execution environments to run your function. Components:

  • **Cold start**: New environment initialization
  • **Warm start**: Reusing existing environment
  • **Handler**: Entry point function
  • **Context**: Runtime information

Layers

Reusable packages of libraries, dependencies, or custom runtimes (up to 5 per function).

Common Patterns

Create a Python Function

**AWS CLI:**

# Create deployment package
zip function.zip lambda_function.py

# Create function
aws lambda create-function \
  --function-name MyFunction \
  --runtime python3.12 \
  --role arn:aws:iam::123456789012:role/lambda-role \
  --handler lambda_function.handler \
  --zip-file fileb://function.zip \
  --timeout 30 \
  --memory-size 256

# Update function code
aws lambda update-function-code \
  --function-name MyFunction \
  --zip-file fileb://function.zip

**boto3:**

import boto3
import zipfile
import io

lambda_client = boto3.client('lambda')

# Create zip in memory
zip_buffer = io.BytesIO()
with zipfile.ZipFile(zip_buffer, 'w') as zf:
    zf.writestr('lambda_function.py', '''
def handler(event, context):
    return {"statusCode": 200, "body": "Hello"}
''')
zip_buffer.seek(0)

# Create function
lambda_client.create_function(
    FunctionName='MyFunction',
    Runtime='python3.12',
    Role='arn:aws:iam::123456789012:role/lambda-role',
    Handler='lambda_function.handler',
    Code={'ZipFile': zip_buffer.read()},
    Timeout=30,
    MemorySize=256
)

Add S3 Trigger

# Add permission for S3 to invoke Lambda
aws lambda add-permission \
  --function-name MyFunction \
  --statement-id s3-trigger \
  --action lambda:InvokeFunction \
  --principal s3.amazonaws.com \
  --source-arn arn:aws:s3:::my-bucket \
  --source-account 123456789012

# Configure S3 notification (see S3 skill)

Add SQS Event Source

aws lambda create-event-source-mapping \
  --function-name MyFunction \
  --event-source-arn arn:aws:sqs:us-east-1:123456789012:my-queue \
  --batch-size 10 \
  --maximum-batching-window-in-seconds 5

Environment Variables

aws lambda update-function-configuration \
  --function-name MyFunction \
  --environment "Variables={DB_HOST=mydb.cluster-xyz.us-east-1.rds.amazonaws.com,LOG_LEVEL=INFO}"

Create and Attach Layer

# Create layer
zip -r layer.zip python/

aws lambda publish-layer-version \
  --layer-name my-dependencies \
  --compatible-runtimes python3.12 \
  --zip-file fileb://layer.zip

# Attach to function
aws lambda update-function-configuration \
  --function-name MyFunction \
  --layers arn:aws:lambda:us-east-1:123456789012:layer:my-dependencies:1

Invoke Function

# Synchronous invoke
aws lambda invoke \
  --function-name MyFunction \
  --payload '{"key": "value"}' \
  response.json

# Asynchronous invoke
aws lambda invoke \
  --function-name MyFunction \
  --invocation-type Event \
  --payload '{"key": "value"}' \
  response.json

CLI Reference

Function Management

| Command | Description | |---------|-------------| | `aws lambda create-function` | Create new function | | `aws lambda update-function-code` | Update function code | | `aws lambda update-function-configuration` | Update settings | | `aws lambda delete-function` | Delete function | | `aws lambda list-functions` | List all functions | | `aws lambda get-function` | Get function details |

Invocation

| Command | Description | |---------|-------------| | `aws lambda invoke` | Invoke function | | `aws lambda invoke-async` | Async invoke (deprecated) |

Event Sources

| Command | Description | |---------|-------------| | `aws lambda create-event-source-mapping` | Add event source | | `aws lambda list-event-source-mappings` | List mappings | | `aws lambda update-event-source-mapping` | Update mapping | | `aws lambda delete-event-source-mapping` | Remove mapping |

Permissions

| Command | Description | |---------|-------------| | `aws lambda add-permission` | Add resource-based policy | | `aws lambda remove-permission` | Remove permission | | `aws lambda get-policy` | View resource policy |

Best Practices

Performance

  • **Right-size memory**: More memory = more CPU = faster execution
  • **Minimize cold starts**: Keep functions warm, use Provisioned Concurrency
  • **Optimize package size**: Smaller packages deploy faster
  • **Use layers** for shared dependencies
  • **Initialize outside handler**: Reuse connections across invocations
# GOOD: Initialize outside handler
import boto3
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('MyTable')

def handler(event, context):
    # Reuses existing connection
    return table.get_item(Key={'id': event['id']})

Security

  • **Least privilege IAM rol
Read more
Ships withaws-agent-skills

Supercharge Claude Code with AWS cloud engineering skills across 18 core AWS services.

Get the whole plugin, auto-invoked
Stats
1,155
Stars
443
Forks
Active
Maintenance
Python
Language
MIT
License
6d ago
Last commit
7y ago
Created

Repo: itsmostafa/aws-agent-skills

Other skills on aws-agent-skills.