

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 AWS Lambda 運算上執行組建
<a name="lambda"></a>

AWS Lambda 運算為您的組建提供最佳化的啟動速度。 AWS Lambda 支援更快的組建，因為啟動延遲較低。 AWS Lambda 也會自動擴展，因此組建不會在佇列中等待執行。不過，有些使用案例 AWS Lambda 不支援，如果它們會影響您，請使用 EC2 運算。如需詳細資訊，請參閱[AWS Lambda 運算的限制](#lambda.limitations)。

**Topics**
+ [在 上執行的精選執行時間環境Docker 映像中，會包含哪些工具和執行時間 AWS Lambda？](#lambda.tools)
+ [如果策劃的映像不包含我需要的工具，該怎麼辦？](#lambda.custom)
+ [哪些區域支援 CodeBuild 中的 AWS Lambda 運算？](#lambda.regions)
+ [AWS Lambda 運算的限制](#lambda.limitations)
+ [使用 AWS SAM 搭配 CodeBuild Lambda Java 部署 Lambda 函數](sample-lambda-sam-gradle.md)
+ [使用 CodeBuild Lambda Node.js 建立單一頁面 React 應用程式](sample-lambda-react-nodejs.md)
+ [使用 CodeBuild Lambda Python 更新 Lambda 函數組態](sample-lambda-boto3-python.md)

## 在 上執行的精選執行時間環境Docker 映像中，會包含哪些工具和執行時間 AWS Lambda？
<a name="lambda.tools"></a>

AWS Lambda 支援下列工具： AWS CLI v2、 AWS SAM CLI、git、go、Java、Node.js、Python、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}}"
        }
    ]
}
```

------

另請注意，`wget`必須安裝 `curl`或 才能使用自訂映像。

## 哪些區域支援 CodeBuild 中的 AWS Lambda 運算？
<a name="lambda.regions"></a>

在 CodeBuild 中，以下支援 AWS Lambda 運算 AWS 區域：美國東部 （維吉尼亞北部）、美國東部 （俄亥俄）、美國西部 （奧勒岡）、亞太區域 （孟買）、亞太區域 （新加坡）、亞太區域 （雪梨）、亞太區域 （東京）、歐洲 （法蘭克福）、歐洲 （愛爾蘭） 和南美洲 （聖保羅）。如需 CodeBuild 可用位置的詳細資訊 AWS 區域 ，請參閱[AWS 依區域的服務](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)。

## AWS Lambda 運算的限制
<a name="lambda.limitations"></a>

有些使用案例 AWS Lambda 不支援，如果它們影響到您，請使用 EC2 運算：
+ AWS Lambda 不支援需要根許可的工具。對於 `yum`或 等工具`rpm`，請使用 EC2 運算類型或其他不需要根許可的工具。
+ AWS Lambda 不支援 Docker 組建或執行。
+ AWS Lambda 不支援寫入 外部的檔案`/tmp`。包含的套件管理員預設會設定為使用 `/tmp`目錄來下載和參考套件。
+ AWS Lambda 不支援 環境類型，`LINUX_GPU_CONTAINER`Windows Server Core 2019 也不支援。
+ AWS Lambda 不支援快取、自訂建置逾時、佇列逾時、建置徽章、特殊權限模式、自訂執行時間環境或超過 15 分鐘的執行時間。
+ AWS Lambda 不支援使用 Session Manager 進行 VPC 連線、固定範圍的 CodeBuild 來源 IP 地址、EFS、安裝憑證或 SSH 存取。