🟢 Easy
Lambda — Serverless Compute
Serverless, no servers to manage, auto-scales, event-driven (S3, DynamoDB, Glue, CloudWatch) or time-based, stateless, supports Python/Node/Java/C#/Go. From file: mainly used for triggers.
🟡 Intermediate
Layers
Predefined packages (e.g., pandas layers) or custom packages via AWS CLI to use within Lambda.
🟡 Intermediate
Limitations
| Limit | Value |
|---|---|
| Timeout | 15 minutes |
| Memory | 10 GB |
| Deployment package | 50 MB (250 MB via S3) |
| Concurrency | 1000 per region (increasable) |
| Cold start | Latency on first invoke |
🟡 Intermediate
Boto3 — Invoke Lambda
Python
import boto3
lambda_client = boto3.client('s3', region_name='us-east-1')
response = lambda_client.invoke(
FunctionName='my_lambda_function',
InvocationType='RequestResponse'
)
print(response['Payload'].read().decode())
🔴 Advanced
Invoke Glue Job via Lambda
Python
import boto3, json
def lambda_handler(event, context):
# event has S3 Records: bucket name and key
bucketname = event['Records'][0]['s3']['bucket']['name']
key = event['Records'][0]['s3']['object']['key']
glue_client = boto3.client('glue', region_name='us-east-1')
response = glue_client.start_job_run(
JobName='my_glue_job',
Arguments={'--arg1':'value1'}
)
return {'statusCode':200,'body': json.dumps('Glue job started')}
Event contains Records[0].s3.bucket.name and object.key. Context has function name, memory, remaining time, request ID.