

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 AWS Lambda 计算基础上运行构建
<a name="lambda"></a>

AWS Lambda compute 为您的构建提供优化的启动速度。 AWS Lambda 由于启动延迟较低，因此支持更快的构建。 AWS Lambda 还会自动缩放，因此构建无需在队列中等待运行。但是，有些用例 AWS Lambda 不支持，如果它们对您造成影响，请使用 EC2 计算。有关更多信息，请参阅 [AWS Lambda 计算的局限性](#lambda.limitations)。

**Topics**
+ [AWS Lambda上运行的精心策划的运行时环境 Docker 映像中将包含哪些工具和运行时？](#lambda.tools)
+ [如果精选映像未包括我需要的工具，该怎么办？](#lambda.custom)
+ [哪些区域支持 AWS Lambda 计算 CodeBuild？](#lambda.regions)
+ [AWS Lambda 计算的局限性](#lambda.limitations)
+ [使用 Lambda Java 部署 Lam AWS SAM b CodeBuild da 函数](sample-lambda-sam-gradle.md)
+ [使用 CodeBuild Lambda 创建单页的 React 应用程序 Node.js](sample-lambda-react-nodejs.md)
+ [使用 Lambda Python 更新 Lamb CodeBuild da 函数配置](sample-lambda-boto3-python.md)

## AWS Lambda上运行的精心策划的运行时环境 Docker 映像中将包含哪些工具和运行时？
<a name="lambda.tools"></a>

AWS Lambda 支持以下工具： AWS CLI v2、 AWS SAM CLI、git、go、Java、、Python Node.js、pip、Ruby 和.NET。

## 如果精选映像未包括我需要的工具，该怎么办？
<a name="lambda.custom"></a>

如果精选映像不包括您需要的工具，则可以提供包括所需工具的自定义环境 Docker 映像。

**注意**  
Lambda 不支持使用多架构容器映像的函数。有关更多信息，请参阅《AWS Lambda 开发人员指南》**中的[使用容器映像创建 Lambda 函数](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-reqs)。

请注意，您需要以下 Amazon ECR 权限才能使用 Lambda 计算的自定义映像：

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

****  

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

------

另请注意，要使用自定义映像，必须安装 `curl` 或 `wget`。

## 哪些区域支持 AWS Lambda 计算 CodeBuild？
<a name="lambda.regions"></a>

在中 CodeBuild，以下地区支持 AWS Lambda 计算 AWS 区域：美国东部（弗吉尼亚北部）、美国东部（俄亥俄州）、美国西部（俄勒冈）、亚太地区（孟买）、亚太地区（新加坡）、亚太地区（悉尼）、亚太地区（东京）、欧洲（法兰克福）、欧洲（爱尔兰）和南美洲（圣保罗）。有关 AWS 区域 何处 CodeBuild 可用的更多信息，请参阅[按地区划分的AWS 服务](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)。

## AWS Lambda 计算的局限性
<a name="lambda.limitations"></a>

有些用例 AWS Lambda 不支持，如果它们对您造成影响，请使用 EC2 计算：
+ AWS Lambda 不支持需要 root 权限的工具。对于 `yum` 或 `rpm` 之类的工具，请使用 EC2 计算类型或其他不需要 root 权限的工具。
+ AWS Lambda 不支持 Docker 的构建或运行。
+ AWS Lambda 不支持写入外部文件`/tmp`。包含的包管理器被配置为默认使用 `/tmp` 目录来下载和引用包。
+ AWS Lambda 不支持该环境类型`LINUX_GPU_CONTAINER`，Windows Server Core 2019 也不支持。
+ AWS Lambda 不支持缓存、自定义编译超时、队列超时、构建徽章、特权模式、自定义运行时环境或长度超过 15 分钟的运行时间。
+ AWS Lambda 不支持 VPC 连接、固定范围的 CodeBuild 源 IP 地址、EFS、安装证书或使用会话管理器进行 SSH 访问。