Working with AWS Lambda compute in AWS CodeBuild - AWS CodeBuild

Working with AWS Lambda compute in AWS CodeBuild

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

Which tools and runtimes will be included in the curated runtime environment docker images which run on AWS Lambda?

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

What if the curated image doesn't include the tools I need?

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 that you require the following Amazon ECR permissions to use custom images for Lambda compute:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "arn:aws:ecr:image-region:image-account-id:repository/image-repo" } ] }

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

Which regions support AWS Lambda compute in CodeBuild?

In CodeBuild, AWS Lambda compute is supported in the following AWS 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 AWS Regions where CodeBuild is available, see AWS Services by Region.

Limitations of AWS Lambda compute

There are some use-cases which AWS Lambda does not support, and if they impact you, use the EC2 compute:

  • AWS 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.

  • AWS Lambda doesn't support Docker builds or runs. You can use alternatives that don’t require root permissions, such as Podman.

  • AWS 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.

  • AWS Lambda doesn't support the environment type LINUX_GPU_CONTAINER and isn't supported on Windows Server Core 2019.

  • AWS Lambda doesn't support caching, batch builds, custom build timeouts, queue timeout, build badges, privileged mode, custom runtime environments, or runtimes longer than 15 minutes.

  • AWS Lambda doesn't support VPC connectivity, a fixed range of CodeBuild source IP addresses, EFS, semantic versioning, installing certificates, or SSH access with Session Manager.