View a markdown version of this page

容量提供者 - 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 (標籤)

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

PropagateTags

設定標籤傳播,以自動將標籤套用至容量提供者啟動的受管資源 (Amazon EC2 執行個體、Amazon EBS 磁碟區和 ENIs)。使用標籤傳播來強制執行成本分配、SCPs和合規要求。如需詳細資訊,請參閱標籤傳播

管理容量提供者

更新容量提供者

您可以使用 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 監控容量提供者指派和存取模式

後續步驟