本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS::Serverless::CapacityProvider
为允许在客户拥有的亚马逊弹性计算云实例上运行 Lambda 托管实例的 AWS Lambda 函数创建容量提供商。该资源是 Lambda 托管实例功能的一部分,该功能通过利用 Amazon EC2 定价模型为大规模 Lambda 工作负载提供成本优化。
容量提供商管理 Amazon EC2 实例的生命周期,为 Lambda 函数提供必要的基础设施,以便在维护无服务器编程模型的同时,在客户拥有的计算资源上执行。
注意
当您部署到时 AWS CloudFormation, AWS SAM 将您的 AWS SAM 资源转换为 CloudFormation 资源。有关更多信息,请参阅 生成 CloudFormation 的资源 AWS SAM。
语法
要在您的 AWS Serverless Application Model (AWS SAM) 模板中声明此实体,请使用以下语法。
YAML
Type: AWS::Serverless::CapacityProvider Properties: CapacityProviderName:StringVpcConfig:VpcConfigOperatorRole:StringTags:MapPropagateTags:BooleanInstanceRequirements:InstanceRequirementsScalingConfig:ScalingConfigLoggingConfig:CapacityProviderLoggingConfigKmsKeyArn:StringManagedResourceTags:ManagedResourceTags
Properties
-
CapacityProviderName -
容量提供程序的名称。此名称在您的 AWS 账户和地区中必须是唯一的。
类型:字符串
必需:否
CloudFormation 兼容性:此属性直接传递给
AWS::Lambda::CapacityProvider资源的CapacityProviderName属性。 -
VpcConfig -
容量提供商的 VPC 配置。指定将在其中启动 Amazon EC2 实例的 VPC 子网和安全组。
类型:VpcConfig
是否必需:是
CloudFormation 兼容性:此属性直接传递给
AWS::Lambda::CapacityProvider资源的VpcConfig属性。 -
OperatorRole -
Lambda 的操作员角色的 ARN,有权在客户账户中创建和管理 Amazon EC2 实例和相关资源。如果未提供,则 AWS SAM 自动生成具有必要权限的角色。
类型:字符串
必需:否
CloudFormation 兼容性:此属性直接传递给
AWS::Lambda::CapacityProvider资源PermissionsConfig的CapacityProviderOperatorRoleArn属性。 -
适用于容量提供者及其关联资源的键值对映射。
类型:映射
必需:否
CloudFormation 兼容性:此属性直接传递给
AWS::Lambda::CapacityProvider资源的Tags属性。中的Tags属性由键值对 AWS SAM 组成(而 CloudFormation 此属性由标签对象列表组成)。此外,还 AWS SAM 会自动向此 Lambda 函数以及为此函数生成的默认角色添加lambda:createdBy:SAM标签。 -
指明是否将标签从 Tags 属性传递给
AWS::Serverless::CapacityProvider生成的资源。将此设置True为可在生成的资源中传播标签。类型:布尔值
必需:否
CloudFormation 兼容性:此属性是独有的 AWS SAM ,没有 CloudFormation 等效项。
-
InstanceRequirements -
容量提供商可以使用的计算实例类型的规范。这包括架构要求和
allowed/或excluded实例类型。必需:否
CloudFormation 兼容性:此属性直接传递给
AWS::Lambda::CapacityProvider资源的InstanceRequirements属性。 -
ScalingConfig -
容量提供商的扩展配置。定义容量提供商如何根据需求扩展 Amazon EC2 实例。
必需:否
CloudFormation 兼容性:此属性直接传递给
AWS::Lambda::CapacityProvider资源的CapacityProviderScalingConfig属性。 -
LoggingConfig -
用于
LoggingConfig为容量提供者配置系统日志。系统日志捕获扩展活动和操作事件,并将它们以可配置的 CloudWatch日志级别发送到 Amazon 日志组。类型:CapacityProviderLoggingConfig
必需:否
CloudFormation 兼容性:此属性直接传递给
AWS::Lambda::CapacityProvider资源TelemetryConfig的LoggingConfig属性。 -
KmsKeyArn -
用于为容量提供商加密静态和传输中的数据的 AWS KMS 密钥的 ARN。
类型:字符串
必需:否
CloudFormation 兼容性:此属性直接传递给
AWS::Lambda::CapacityProvider资源的KmsKeyArn属性。 -
将显式标签应用于容量提供商代表您预置的 Amazon 弹性计算云实例和其他托管资源。
必需:否
CloudFormation 兼容性: AWS SAM 使用此属性来构造
AWS::Lambda::CapacityProvider资源的PropagateTags属性。
返回值
Ref
当向Ref内部函数提供此资源的逻辑 ID 时,它将返回容量提供者的名称。
有关使用 Ref 函数的更多信息,请参阅《AWS CloudFormation 用户指南》中的 Ref。
Fn:: GetAtt
Fn::GetAtt 返回一个此类型指定属性的值。以下为可用属性和示例返回值。
有关使用 Fn::GetAtt 的更多信息,请参阅《AWS CloudFormation 用户指南》中的 Fn::GetAtt。
Arn-
容量提供程序的 ARN。
示例
基本容量提供商
以下示例使用 VPC 配置创建基本容量提供商。
MyCapacityProvider: Type: AWS::Serverless::CapacityProvider Properties: CapacityProviderName:my-capacity-providerVpcConfig: SubnetIds: -subnet-12345678-subnet-87654321SecurityGroupIds: -sg-12345678Tags: Environment: Production Team: ServerlessTeam
具有扩展功能的高级容量提供商
以下示例创建了一个具有自定义实例要求和扩展配置的容量提供商。
AdvancedCapacityProvider: Type: AWS::Serverless::CapacityProvider Properties: CapacityProviderName:advanced-capacity-providerVpcConfig: SubnetIds: -subnet-12345678-subnet-87654321SecurityGroupIds: -sg-12345678OperatorRole: arn:aws:iam::123456789012:role/MyCapacityProviderRolePropagateTags: true InstanceRequirements: Architectures: - x86_64 ExcludedTypes: - t2.micro ScalingConfig: MaxInstanceCount: 10 ManualScalingPolicies: AverageCPUUtilization: 70.0 KmsKeyArn: arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012LoggingConfig: LogGroup: /aws/lambda/capacity-provider/advanced-capacity-providerSystemLogLevel: INFO ManagedResourceTags: Tags: CostCenter:cc-1234Environment:ProductionTags: Environment: Production CostCenter: Engineering