本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
容量提供者
容量提供者是執行 Lambda 受管執行個體的基礎。它可做為函數的安全界限,並定義 Lambda 將代表您佈建和管理的運算資源。
建立容量提供者時,您可以指定:
-
VPC 組態 - 執行個體將執行的子網路和安全群組
-
許可 - Lambda 管理 EC2 資源的 IAM 角色
-
執行個體需求 (選用) - 架構和執行個體類型
偏好設定 -
擴展組態 (選用) - Lambda 如何擴展您的執行個體
了解容量提供者做為安全界限
容量提供者可做為 VPC 中 Lambda 函數的安全界限,取代 Firecracker 型隔離。函式在執行個體內的容器中執行,但與 Firecracker microVMs 不同,容器在函式之間不提供強大的安全隔離。
關鍵安全概念:
-
容量提供者:定義 Lambda 函數信任層級的安全界限
-
容器隔離:容器不是安全提供者 - 不要依賴它們來確保不受信任工作負載之間的安全
-
信任分離:使用不同的容量提供者來分隔不受互信的工作負載
建立容量提供者
您可以使用 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
必要參數
CapacityProviderName
-
容量提供者的唯一名稱
-
在您的 AWS 帳戶中必須是唯一的
VpcConfig
-
SubnetIds (必要):至少一個子網路,最多 16 個。跨多個可用區域使用子網路以實現彈性
-
SecurityGroupIds (選用):執行個體的安全群組。如果未指定,則預設為 VPC 預設安全群組
PermissionsConfig
-
CapacityProviderOperatorRoleArn (必要):允許 Lambda 管理容量提供者中 EC2 資源的 IAM 角色
選用的參數
InstanceRequirements
為您的容量提供者指定架構和執行個體類型
-
架構:選擇
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 (標籤)
新增標籤以組織和管理容量提供者。
管理容量提供者
更新容量提供者
您可以使用 UpdateCapacityProvider API 更新容量提供者的特定屬性。
aws lambda update-capacity-provider \ --capacity-provider-name my-capacity-provider \ --capacity-provider-scaling-config ScalingMode=Auto
刪除容量提供者
您可以使用 DeleteCapacityProvider API 刪除不再需要的容量提供者。
aws lambda delete-capacity-provider \ --capacity-provider-name my-capacity-provider
注意:您無法刪除已連接函數版本的容量提供者。
檢視容量提供者詳細資訊
使用 GetCapacityProvider API 擷取容量提供者的相關資訊。
aws lambda get-capacity-provider \ --capacity-provider-name my-capacity-provider
容量提供者狀態
容量提供者可以處於下列其中一種狀態:
-
待定:正在建立容量提供者
-
作用中:容量提供者已就緒可供使用
-
失敗:容量提供者建立失敗
-
刪除:正在刪除容量提供者
配額
-
每個帳戶的容量提供者上限:1,000
-
每個容量提供者的函數版本上限:100 (無法增加)
最佳實務
-
依信任層級分隔:為具有不同安全需求的工作負載建立不同的容量提供者
-
使用描述性名稱:命名容量提供者,以清楚指出其預期用途和信任層級 (例如
production-trusted、dev-sandbox) -
使用多個可用區域:指定跨多個AZs子網路以獲得高可用性
-
讓 Lambda 選擇執行個體類型:除非您有特定的硬體需求,否則允許 Lambda 選擇最佳執行個體類型以獲得最佳可用性
-
監控用量:使用 AWS CloudTrail 監控容量提供者指派和存取模式