本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS::Serverless::CapacityProvider
为允许在客户拥有的 Amazon Elastic Compute Cloud 实例上运行 Lambda 托管实例的 AWS Lambda 函数创建容量提供程序。该资源是 Lambda 托管实例功能的一部分,该功能利用亚马逊定价模型为大规模 Lambda 工作负载提供成本优化。 EC2
容量提供商管理 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:ScalingConfigKmsKeyArn:String
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 兼容性:此属性直接传递给
PermissionsConfigAWS::Lambda::CapacityProvider资源的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属性。 -
KmsKeyArn -
用于为容量提供商加密静态数据和传输中数据的密 AWS KMS 钥的 ARN。
类型:字符串
必需:否
CloudFormation 兼容性:此属性直接传递给
AWS::Lambda::CapacityProvider资源的KmsKeyArn属性。
返回值
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-123456789012Tags: Environment: Production CostCenter: Engineering