

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

# 容量提供者
<a name="lambda-managed-instances-capacity-providers"></a>

容量提供者是執行 Lambda 受管執行個體的基礎。它可做為函數的安全界限，並定義 Lambda 將代表您佈建和管理的運算資源。

當您建立容量提供者時，您可以指定：
+ **VPC 組態** - 執行個體將執行的子網路和安全群組
+ **許可** - Lambda 管理 EC2 資源的 IAM 角色
+ **執行個體需求** （選用） - 架構和[執行個體類型](https://aws.amazon.com/lambda/pricing/#:~:text=EPU%20pricing%20applies.-,Management%20Fees,-Pricing%20Example%3A%20High)偏好設定
+ **擴展組態 **（選用） - Lambda 如何擴展您的執行個體

## 了解容量提供者做為安全界限
<a name="lambda-managed-instances-capacity-provider-security-boundary"></a>

容量提供者可做為 VPC 內 Lambda 函數的安全界限，取代 Firecracker 型隔離。函數在執行個體內的容器中執行，但與 Firecracker microVMs 不同，容器在函數之間不提供強大的安全隔離。

**關鍵安全概念：**
+ **容量提供者：**定義 Lambda 函數信任層級的安全界限
+ **容器隔離：**容器不是安全提供者 - 不要依賴它們來確保不受信任工作負載之間的安全
+ **信任分離：**使用不同的容量提供者來分離非相互信任的工作負載

## 建立容量提供者
<a name="lambda-managed-instances-creating-capacity-provider"></a>

您可以使用 AWS CLI、 AWS 管理主控台或 AWS SDKs建立容量提供者。

**使用 AWS CLI：**

```
aws lambda create-capacity-provider \
  --capacity-provider-name my-capacity-provider \
  --vpc-config SubnetIds=subnet-12345,subnet-67890,subnet-11111,SecurityGroupIds=sg-12345 \
  --permissions-config CapacityProviderOperatorRoleArn=arn:aws:iam::123456789012:role/MyOperatorRole \
  --instance-requirements Architectures=x86_64 \
  --capacity-provider-scaling-config ScalingMode=Auto
```

### 必要參數
<a name="lambda-managed-instances-capacity-provider-required-params"></a>

**CapacityProviderName**
+ 容量提供者的唯一名稱
+ 在您的 AWS 帳戶中必須是唯一的

**VpcConfig**
+ **SubnetIds** （必要）：至少一個子網路，最多 16 個。跨多個可用區域使用子網路以實現彈性
+ **SecurityGroupIds** （選用）：執行個體的安全群組。如果未指定，則預設為 VPC 預設安全群組

**PermissionsConfig**
+ **CapacityProviderOperatorRoleArn** （必要）：允許 Lambda 管理容量提供者中 EC2 資源的 IAM 角色

### 選用的參數
<a name="lambda-managed-instances-capacity-provider-optional-params"></a>

**InstanceRequirements**

為您的容量提供者指定架構和[執行個體類型](https://aws.amazon.com/lambda/pricing/#:~:text=EPU%20pricing%20applies.-,Management%20Fees,-Pricing%20Example%3A%20High)：
+ **架構**：選擇 `x86_64`或 `arm64`。預設值為 `x86_64`
+ **AllowedInstanceTypes**：指定允許的執行個體類型。範例：`m5.8xlarge`
+ **ExcludedInstanceTypes**：使用萬用字元指定排除的執行個體類型。您只能指定其中一個 AllowedInstanceTypes 或 ExcludedInstanceTypes

根據預設，Lambda 會為您的工作負載選擇最佳執行個體類型。我們建議您讓 Lambda 受管執行個體為您選擇執行個體類型，因為限制可能的執行個體類型數量可能會導致可用性降低。

**CapacityProviderScalingConfig**

設定 Lambda 如何擴展您的執行個體：
+ **ScalingMode**：將 設定為 `Auto` 以進行自動擴展或`Manual`手動控制。預設值為 `Auto`
+ **MaxVCpuCount**：容量提供者的 vCPUs數目上限。預設為 400。
+ **ScalingPolicies**：定義 CPU 和記憶體使用率的目標追蹤擴展政策

**KmsKeyArn**

指定 EBS 加密的 AWS KMS 金鑰。如果未指定，則預設為 AWS 受管金鑰。

**Tags** (標籤)

新增標籤以組織和管理容量提供者。

## 管理容量提供者
<a name="lambda-managed-instances-managing-capacity-providers"></a>

### 更新容量提供者
<a name="lambda-managed-instances-updating-capacity-provider"></a>

您可以使用 `UpdateCapacityProvider` API 更新容量提供者的特定屬性。

```
aws lambda update-capacity-provider \
  --capacity-provider-name my-capacity-provider \
  --capacity-provider-scaling-config ScalingMode=Auto
```

### 刪除容量提供者
<a name="lambda-managed-instances-deleting-capacity-provider"></a>

您可以使用 `DeleteCapacityProvider` API 刪除不再需要的容量提供者。

```
aws lambda delete-capacity-provider \
  --capacity-provider-name my-capacity-provider
```

**注意：**您無法刪除已連接函數版本的容量提供者。

### 檢視容量提供者詳細資訊
<a name="lambda-managed-instances-viewing-capacity-provider"></a>

使用 `GetCapacityProvider` API 擷取容量提供者的相關資訊。

```
aws lambda get-capacity-provider \
  --capacity-provider-name my-capacity-provider
```

## 容量提供者狀態
<a name="lambda-managed-instances-capacity-provider-states"></a>

容量提供者可以處於下列其中一種狀態：
+ **待定**：正在建立容量提供者
+ **作用中**：容量提供者已就緒可供使用
+ **失敗**：容量提供者建立失敗
+ **刪除**：正在刪除容量提供者

## 配額
<a name="lambda-managed-instances-capacity-provider-quotas"></a>
+ **每個帳戶的容量提供者上限**：1，000
+ **每個容量提供者的函數版本上限**：100 （無法增加）

## 最佳實務
<a name="lambda-managed-instances-capacity-provider-best-practices"></a>

1. **依信任層級分隔**：為具有不同安全需求的工作負載建立不同的容量提供者

1. **使用描述性名稱**：命名容量提供者，以清楚指出其預期用途和信任層級 （例如 `production-trusted`、`dev-sandbox`)

1. **使用多個可用區域**：指定跨多個AZs子網路以獲得高可用性

1. **讓 Lambda 選擇執行個體類型**：除非您有特定的硬體需求，否則允許 Lambda 為可用性選取最佳的執行個體類型

1. **監控用量**：使用 AWS CloudTrail 監控容量提供者指派和存取模式

## 後續步驟
<a name="lambda-managed-instances-capacity-provider-next-steps"></a>
+ 了解[擴展 Lambda 受管執行個體](lambda-managed-instances-scaling.md)
+ 了解 [Lambda 受管執行個體的安全性和許可](lambda-managed-instances-security.md)
+ [為您的容量提供者設定 VPC 連線](lambda-managed-instances-networking.md)
+ 檢閱 [Java](lambda-managed-instances-java-runtime.md)、[Node.js](lambda-managed-instances-nodejs-runtime.md) 和 [Python](lambda-managed-instances-python-runtime.md) 的執行時間特定指南