DevDocsDev Docs
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:

OptionDescription
--function-nameFunction name (required)
--runtimeRuntime identifier
--handlerEntry point
--zip-filePath to ZIP file
--codeS3 location
--roleExecution role ARN
--memory-sizeMemory in MB (128-10240)
--timeoutTimeout in seconds (1-900)
--environmentEnvironment 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 \
  --publish

Update 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-789

Get 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.zip

List 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 10

Delete Function

aws lambda delete-function --function-name my-function

Invoking 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.json

Asynchronous Invocation

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

Dry Run

aws lambda invoke \
  --function-name my-function \
  --invocation-type DryRun \
  --payload '{"key": "value"}' \
  response.json

Versions 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-function

Create 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 3

Delete Alias

aws lambda delete-alias \
  --function-name my-function \
  --name prod

Event 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 100

List Event Source Mappings

aws lambda list-event-source-mappings --function-name my-function

Update Event Source Mapping

aws lambda update-event-source-mapping \
  --uuid abc-123-def \
  --batch-size 50

Delete Event Source Mapping

aws lambda delete-event-source-mapping --uuid abc-123-def

Layers

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 arm64

List Layers

aws lambda list-layers

# List layer versions
aws lambda list-layer-versions --layer-name my-layer

Add Layer to Function

aws lambda update-function-configuration \
  --function-name my-function \
  --layers arn:aws:lambda:us-east-1:123456789012:layer:my-layer:1

Delete Layer Version

aws lambda delete-layer-version \
  --layer-name my-layer \
  --version-number 1

Permissions

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-topic

Get Policy

aws lambda get-policy --function-name my-function

Remove Permission

aws lambda remove-permission \
  --function-name my-function \
  --statement-id api-gateway

Concurrency

Get Concurrency

aws lambda get-function-concurrency --function-name my-function

Set Reserved Concurrency

aws lambda put-function-concurrency \
  --function-name my-function \
  --reserved-concurrent-executions 100

Delete Reserved Concurrency

aws lambda delete-function-concurrency --function-name my-function

Provisioned 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 prod

URL 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_IAM

Get Function URL

aws lambda get-function-url-config --function-name my-function

Delete Function URL

aws lambda delete-function-url-config --function-name my-function

Tags

# 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

On this page