容量提供者 - AWS Lambda

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

容量提供者

容量提供者是執行 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_64arm64。預設值為 x86_64

  • AllowedInstanceTypes:指定允許的執行個體類型。範例:m5.8xlarge

  • ExcludedInstanceTypes:使用萬用字元指定排除的執行個體類型。您只能指定其中一個 AllowedInstanceTypes 或 ExcludedInstanceTypes

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

CapacityProviderScalingConfig

設定 Lambda 如何擴展您的執行個體:

  • ScalingModeAuto針對自動擴展將 設定為 ,或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 (無法增加)

最佳實務

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

  2. 使用描述性名稱:命名容量提供者,以清楚指出其預期用途和信任層級 (例如 production-trusteddev-sandbox)

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

  4. 讓 Lambda 選擇執行個體類型:除非您有特定的硬體需求,否則允許 Lambda 選擇最佳執行個體類型以獲得最佳可用性

  5. 監控用量:使用 AWS CloudTrail 監控容量提供者指派和存取模式

後續步驟