Lambda
Lambda CLI Reference
AWS CLI commands for Lambda
Complete reference for AWS Lambda CLI commands with examples.
Function Management
Create Function
# Create from ZIP file
aws lambda create-function \
--function-name my-function \
--runtime nodejs20.x \
--handler index.handler \
--zip-file fileb://function.zip \
--role arn:aws:iam::123456789012:role/lambda-role
# Create from S3
aws lambda create-function \
--function-name my-function \
--runtime python3.12 \
--handler app.handler \
--code S3Bucket=my-bucket,S3Key=function.zip \
--role arn:aws:iam::123456789012:role/lambda-role
# With environment variables
aws lambda create-function \
--function-name my-function \
--runtime nodejs20.x \
--handler index.handler \
--zip-file fileb://function.zip \
--role arn:aws:iam::123456789012:role/lambda-role \
--environment Variables="{TABLE_NAME=users,STAGE=prod}"Common Options:
| Option | Description |
|---|---|
--function-name | Function name (required) |
--runtime | Runtime identifier |
--handler | Entry point |
--zip-file | Path to ZIP file |
--code | S3 location |
--role | Execution role ARN |
--memory-size | Memory in MB (128-10240) |
--timeout | Timeout in seconds (1-900) |
--environment | Environment variables |
Update Function Code
# Update from ZIP
aws lambda update-function-code \
--function-name my-function \
--zip-file fileb://function.zip
# Update from S3
aws lambda update-function-code \
--function-name my-function \
--s3-bucket my-bucket \
--s3-key function.zip
# Publish new version
aws lambda update-function-code \
--function-name my-function \
--zip-file fileb://function.zip \
--publishUpdate Function Configuration
# Update memory and timeout
aws lambda update-function-configuration \
--function-name my-function \
--memory-size 512 \
--timeout 30
# Update environment variables
aws lambda update-function-configuration \
--function-name my-function \
--environment Variables="{TABLE_NAME=users,STAGE=prod}"
# Update runtime
aws lambda update-function-configuration \
--function-name my-function \
--runtime nodejs20.x
# Add VPC configuration
aws lambda update-function-configuration \
--function-name my-function \
--vpc-config SubnetIds=subnet-123,subnet-456,SecurityGroupIds=sg-789Get Function
# Get function details
aws lambda get-function --function-name my-function
# Get function configuration only
aws lambda get-function-configuration --function-name my-function
# Download function code
aws lambda get-function \
--function-name my-function \
--query 'Code.Location' \
--output text | xargs curl -o function.zipList Functions
# List all functions
aws lambda list-functions
# List function names only
aws lambda list-functions \
--query 'Functions[*].FunctionName' \
--output text
# List with pagination
aws lambda list-functions --max-items 10Delete Function
aws lambda delete-function --function-name my-functionInvoking Functions
Synchronous Invocation
# Invoke and get response
aws lambda invoke \
--function-name my-function \
--payload '{"key": "value"}' \
response.json
# Invoke with CLI payload
aws lambda invoke \
--function-name my-function \
--cli-binary-format raw-in-base64-out \
--payload '{"name": "John"}' \
response.jsonAsynchronous Invocation
aws lambda invoke \
--function-name my-function \
--invocation-type Event \
--payload '{"key": "value"}' \
response.jsonDry Run
aws lambda invoke \
--function-name my-function \
--invocation-type DryRun \
--payload '{"key": "value"}' \
response.jsonVersions and Aliases
Publish Version
aws lambda publish-version \
--function-name my-function \
--description "Version 1.0.0"List Versions
aws lambda list-versions-by-function --function-name my-functionCreate Alias
aws lambda create-alias \
--function-name my-function \
--name prod \
--function-version 1
# Alias with weighted routing
aws lambda create-alias \
--function-name my-function \
--name prod \
--function-version 2 \
--routing-config AdditionalVersionWeights={"1"=0.1}Update Alias
aws lambda update-alias \
--function-name my-function \
--name prod \
--function-version 3Delete Alias
aws lambda delete-alias \
--function-name my-function \
--name prodEvent Source Mappings
Create Event Source Mapping
# SQS
aws lambda create-event-source-mapping \
--function-name my-function \
--event-source-arn arn:aws:sqs:us-east-1:123456789012:my-queue \
--batch-size 10
# DynamoDB Streams
aws lambda create-event-source-mapping \
--function-name my-function \
--event-source-arn arn:aws:dynamodb:us-east-1:123456789012:table/my-table/stream/timestamp \
--starting-position LATEST \
--batch-size 100
# Kinesis
aws lambda create-event-source-mapping \
--function-name my-function \
--event-source-arn arn:aws:kinesis:us-east-1:123456789012:stream/my-stream \
--starting-position TRIM_HORIZON \
--batch-size 100List Event Source Mappings
aws lambda list-event-source-mappings --function-name my-functionUpdate Event Source Mapping
aws lambda update-event-source-mapping \
--uuid abc-123-def \
--batch-size 50Delete Event Source Mapping
aws lambda delete-event-source-mapping --uuid abc-123-defLayers
Publish Layer Version
aws lambda publish-layer-version \
--layer-name my-layer \
--description "Common utilities" \
--zip-file fileb://layer.zip \
--compatible-runtimes nodejs18.x nodejs20.x \
--compatible-architectures x86_64 arm64List Layers
aws lambda list-layers
# List layer versions
aws lambda list-layer-versions --layer-name my-layerAdd Layer to Function
aws lambda update-function-configuration \
--function-name my-function \
--layers arn:aws:lambda:us-east-1:123456789012:layer:my-layer:1Delete Layer Version
aws lambda delete-layer-version \
--layer-name my-layer \
--version-number 1Permissions
Add Permission
# Allow API Gateway
aws lambda add-permission \
--function-name my-function \
--statement-id api-gateway \
--action lambda:InvokeFunction \
--principal apigateway.amazonaws.com \
--source-arn arn:aws:execute-api:us-east-1:123456789012:api-id/*
# Allow S3
aws lambda add-permission \
--function-name my-function \
--statement-id s3-trigger \
--action lambda:InvokeFunction \
--principal s3.amazonaws.com \
--source-arn arn:aws:s3:::my-bucket \
--source-account 123456789012
# Allow SNS
aws lambda add-permission \
--function-name my-function \
--statement-id sns-trigger \
--action lambda:InvokeFunction \
--principal sns.amazonaws.com \
--source-arn arn:aws:sns:us-east-1:123456789012:my-topicGet Policy
aws lambda get-policy --function-name my-functionRemove Permission
aws lambda remove-permission \
--function-name my-function \
--statement-id api-gatewayConcurrency
Get Concurrency
aws lambda get-function-concurrency --function-name my-functionSet Reserved Concurrency
aws lambda put-function-concurrency \
--function-name my-function \
--reserved-concurrent-executions 100Delete Reserved Concurrency
aws lambda delete-function-concurrency --function-name my-functionProvisioned Concurrency
# Set provisioned concurrency
aws lambda put-provisioned-concurrency-config \
--function-name my-function \
--qualifier prod \
--provisioned-concurrent-executions 50
# Get provisioned concurrency
aws lambda get-provisioned-concurrency-config \
--function-name my-function \
--qualifier prod
# Delete provisioned concurrency
aws lambda delete-provisioned-concurrency-config \
--function-name my-function \
--qualifier prodURL Configuration
Create Function URL
aws lambda create-function-url-config \
--function-name my-function \
--auth-type NONE
# With IAM auth
aws lambda create-function-url-config \
--function-name my-function \
--auth-type AWS_IAMGet Function URL
aws lambda get-function-url-config --function-name my-functionDelete Function URL
aws lambda delete-function-url-config --function-name my-functionTags
# Tag function
aws lambda tag-resource \
--resource arn:aws:lambda:us-east-1:123456789012:function:my-function \
--tags Environment=Production,Team=Backend
# List tags
aws lambda list-tags \
--resource arn:aws:lambda:us-east-1:123456789012:function:my-function
# Remove tags
aws lambda untag-resource \
--resource arn:aws:lambda:us-east-1:123456789012:function:my-function \
--tag-keys Environment