

# Run builds on Amazon Lambda compute
<a name="lambda"></a>

Amazon Lambda compute offers optimized start-up speeds for your builds. Amazon Lambda supports faster builds due to a lower start-up latency. Amazon Lambda also automatically scales, so builds aren’t waiting in queue to run. However, there are some use-cases which Amazon Lambda does not support, and if they impact you, use the EC2 compute. For more information, see [Limitations of Amazon Lambda compute](#lambda.limitations).

**Topics**
+ [Which tools and runtimes will be included in the curated runtime environment docker images which run on Amazon Lambda?](#lambda.tools)
+ [What if the curated image doesn't include the tools I need?](#lambda.custom)
+ [Which regions support Amazon Lambda compute in CodeBuild?](#lambda.regions)
+ [Limitations of Amazon Lambda compute](#lambda.limitations)
+ [Deploy a Lambda function using Amazon SAM with CodeBuild Lambda Java](sample-lambda-sam-gradle.md)
+ [Create a single page React app with CodeBuild Lambda Node.js](sample-lambda-react-nodejs.md)
+ [Update a Lambda function configuration with CodeBuild Lambda Python](sample-lambda-boto3-python.md)

## Which tools and runtimes will be included in the curated runtime environment docker images which run on Amazon Lambda?
<a name="lambda.tools"></a>

Amazon Lambda supports the following tools: Amazon CLI v2, Amazon SAM CLI, git, go, Java, Node.js, Python, pip, Ruby, and .NET.

## What if the curated image doesn't include the tools I need?
<a name="lambda.custom"></a>

If the curated image doesn't include the tools you need, you can provide a custom environment Docker image that includes the necessary tools.

**Note**  
Lambda does not support functions that use multi-architecture container images. For more information, see [Create a Lambda function using a container image ](https://docs.amazonaws.cn/lambda/latest/dg/images-create.html#images-reqs) in the *Amazon Lambda Developer Guide*.

Note that you require the following Amazon ECR permissions to use custom images for Lambda compute:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecr:GetAuthorizationToken"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage"
            ],
            "Resource": "arn:aws-cn:ecr:us-east-1:{{111122223333}}:repository/{{image-repo}}"
        }
    ]
}
```

------

Also note that `curl` or `wget` must be installed in order to use custom images.

## Which regions support Amazon Lambda compute in CodeBuild?
<a name="lambda.regions"></a>

In CodeBuild, Amazon Lambda compute is supported in the following Amazon Web Services Regions: US East (N. Virginia), US East (Ohio), US West (Oregon), Asia Pacific (Mumbai), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Europe (Frankfurt), Europe (Ireland), and South America (São Paulo). For more information about Amazon Web Services Regions where CodeBuild is available, see [Amazon Services by Region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/).

## Limitations of Amazon Lambda compute
<a name="lambda.limitations"></a>

There are some use-cases which Amazon Lambda does not support, and if they impact you, use the EC2 compute:
+ Amazon Lambda doesn't support tools that require root permissions. For tools such as `yum` or `rpm`, use the EC2 compute type or other tools that don't require root permissions.
+ Amazon Lambda doesn't support Docker builds or runs.
+ Amazon Lambda doesn't support writing to files outside `/tmp`. The included package managers are configured to use the `/tmp` directory by default for downloading and referencing packages.
+ Amazon Lambda doesn't support the environment type `LINUX_GPU_CONTAINER` and isn't supported on Windows Server Core 2019.
+ Amazon Lambda doesn't support caching, custom build timeouts, queue timeout, build badges, privileged mode, custom runtime environments, or runtimes longer than 15 minutes.
+ Amazon Lambda doesn't support VPC connectivity, a fixed range of CodeBuild source IP addresses, EFS, installing certificates, or SSH access with Session Manager.