View a markdown version of this page

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 托管实例功能的一部分,该功能通过利用 Amazon EC2 定价模型为大规模 Lambda 工作负载提供成本优化。

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

注意

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

语法

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

Properties

CapacityProviderName

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

类型:字符串

必需:否

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

VpcConfig

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

类型:VpcConfig

是否必需:是

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

OperatorRole

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

类型:字符串

必需:否

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

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 兼容性:此属性直接传递给AWS::Lambda::CapacityProvider资源的InstanceRequirements属性。

ScalingConfig

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

类型:ScalingConfig

必需:否

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

LoggingConfig

用于LoggingConfig为容量提供商配置系统日志记录。系统日志捕获扩展活动和操作事件,并将其发送到可配置 CloudWatch日志级别的 Amazon 日志组。

类型:CapacityProviderLoggingConfig

必需:否

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

KmsKeyArn

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

类型:字符串

必需:否

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

ManagedResourceTags

将显式标签应用于容量提供商代表您配置的 Amazon 弹性计算云实例和其他托管资源。

类型:ManagedResourceTags

必需:否

Amazon CloudFormation 兼容性: Amazon SAM 使用此PropagateTags属性来构造AWS::Lambda::CapacityProvider资源的属性。

返回值

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: MaxVCpuCount: 10 AverageCPUUtilization: 70.0 KmsKeyArn: arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 LoggingConfig: LogGroup: /aws/lambda/capacity-provider/advanced-capacity-provider SystemLogLevel: INFO ManagedResourceTags: Tags: CostCenter: cc-1234 Environment: Production Tags: Environment: Production CostCenter: Engineering