AWS::Serverless::CapacityProvider - Amazon Serverless Application Model
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWS::Serverless::CapacityProvider

为允许在客户拥有的 Amazon 弹性计算云实例上运行 Lambda 托管实例的 Amazon Lambda 函数创建容量提供程序。该资源是 Lambda 托管实例功能的一部分,该功能利用定价模型为大规模 Lambda 工作负载提供成本优化。 EC2

容量提供商管理 EC2 实例的生命周期,并提供必要的基础架构,让 Lambda 函数在客户拥有的计算资源上执行,同时维护无服务器编程模型。

注意

部署到时 Amazon CloudFormation, Amazon SAM 会将您的 Amazon SAM 资源转换为 Amazon CloudFormation 资源。有关更多信息,请参阅 为 Amazon SAM 生成的 Amazon CloudFormation 资源

语法

要在 Amazon Serverless Application Model (Amazon SAM) 模板中声明此实体,请使用以下语法。

YAML

Type: AWS::Serverless::CapacityProvider Properties: CapacityProviderName: String VpcConfig: VpcConfig OperatorRole: String Tags: Map PropagateTags: Boolean InstanceRequirements: InstanceRequirements ScalingConfig: ScalingConfig KMSKeyArn: String

Properties

CapacityProviderName

容量提供程序的名称。此名称在您的 Amazon 账户和地区内必须是唯一的。

类型:字符串

必需:否

Amazon CloudFormation 兼容性:此属性类似于AWS::Lambda::CapacityProvider资源的CapacityProviderName属性。

VpcConfig

容量提供商的 VPC 配置。指定将在其中启动 Amazon EC2 实例的 VPC 子网和安全组。

类型VpcConfig

必需:是

Amazon CloudFormation 兼容性:此属性直接传递给AWS::Lambda::CapacityProvider资源的VpcConfig属性。

OperatorRole

有权在客户账户中创建和管理亚马逊 EC2 实例及相关资源的 Lambda 操作员角色的 ARN。如果未提供,则会 Amazon SAM 自动生成具有必要权限的角色。

类型:字符串

必需:否

Amazon CloudFormation 兼容性:此属性直接传递给AWS::Lambda::CapacityProvider资源的PermissionsConfig属性。

Tags

应用于容量提供商及其关联资源的键值对映射。

类型:映射

必需:否

Amazon CloudFormation 兼容性:此属性直接传递给AWS::Lambda::CapacityProvider资源的Tags属性。中的Tags属性由键值对 Amazon SAM 组成(而 Amazon CloudFormation 在此属性中则由标签对象的列表组成)。此外,还 Amazon SAM 会自动向此 Lambda 函数以及为此函数生成的默认角色添加lambda:createdBy:SAM标签。

PropagateTags

表示是否将标签从 Tags 属性传递到AWS::Serverless::CapacityProvider生成的资源。将其设置True为可在生成的资源中传播标签。

类型:布尔值

必需:否

Amazon CloudFormation 兼容性:此属性是独有的 Amazon SAM ,没有 Amazon CloudFormation 等效属性。

InstanceRequirements

容量提供商可以使用的计算实例类型的规范。这包括架构要求和 allowed /或excluded实例类型。

类型InstanceRequirements

必需:否

Amazon CloudFormation 兼容性:将此属性 Amazon SAM 映射到InstanceRequirements

ScalingConfig

容量提供商的扩展配置。定义容量提供商如何根据需求扩展 Amazon EC2 实例。

类型ScalingConfig

必需:否

Amazon CloudFormation 兼容性:此属性直接传递给AWS::Lambda::CapacityProvider资源的CapacityProviderScalingConfig属性

KMSKeyArn

用于为容量提供商加密静态数据和传输中数据的密 Amazon KMS 钥的 ARN。

类型:字符串

必需:否

Amazon CloudFormation 兼容性:此属性直接传递给AWS::Lambda::Function资源的KmsKeyArn属性。

返回值

Ref

当向Ref内部函数提供此资源的逻辑 ID 时,它会返回容量提供者的名称。

有关使用 Ref 函数的更多信息,请参阅《Amazon CloudFormation 用户指南》中的 Ref

Fn:: GetAtt

Fn::GetAtt 返回一个此类型指定属性的值。以下为可用属性和示例返回值。

有关使用 Fn::GetAtt 的更多信息,请参阅《Amazon CloudFormation 用户指南》中的 Fn::GetAtt

Arn

容量提供商的 ARN。

示例

基本容量提供商

以下示例创建了一个具有 VPC 配置的基本容量提供商。

MyCapacityProvider: Type: AWS::Serverless::CapacityProvider Properties: CapacityProviderName: my-capacity-provider VpcConfig: SubnetIds: - subnet-12345678 - subnet-87654321 SecurityGroupIds: - sg-12345678 Tags: Environment: Production Team: ServerlessTeam

具有扩展功能的高级容量提供商

以下示例创建了一个具有自定义实例要求和扩展配置的容量提供商。

AdvancedCapacityProvider: Type: AWS::Serverless::CapacityProvider Properties: CapacityProviderName: advanced-capacity-provider VpcConfig: SubnetIds: - subnet-12345678 - subnet-87654321 SecurityGroupIds: - sg-12345678 OperatorRole: arn:aws:iam::123456789012:role/MyCapacityProviderRole PropagateTags: 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-123456789012 Tags: Environment: Production CostCenter: Engineering