

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

# AWS::Serverless::CapacityProvider
<a name="sam-resource-capacityprovider"></a>

 为允许在客户拥有的 Amazon Elastic Compute Cloud 实例上运行 Lambda 托管实例的 AWS Lambda 函数创建容量提供程序。该资源是 Lambda 托管实例功能的一部分，该功能利用亚马逊定价模型为大规模 Lambda 工作负载提供成本优化。 EC2 

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

**注意**  
部署到时 AWS CloudFormation， AWS SAM 会将您的 AWS SAM 资源转换为 CloudFormation 资源。有关更多信息，请参阅 [生成的 CloudFormation 资源用于 AWS SAM](sam-specification-generated-resources.md)。

## 语法
<a name="sam-resource-capacityprovider-syntax"></a>

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

### YAML
<a name="sam-resource-capacityprovider-syntax.yaml"></a>

```
Type: AWS::Serverless::CapacityProvider
Properties:
  [CapacityProviderName](#sam-capacityprovider-capacityprovidername): String
  [VpcConfig](#sam-capacityprovider-vpcconfig): VpcConfig
  [OperatorRole](#sam-capacityprovider-operatorrole): String
  [Tags](#sam-capacityprovider-tags): Map
  [PropagateTags](#sam-capacityprovider-propagatetags): Boolean
  [InstanceRequirements](#sam-capacityprovider-instancerequirements): InstanceRequirements
  [ScalingConfig](#sam-capacityprovider-scalingconfig): ScalingConfig
  [KmsKeyArn](#sam-capacityprovider-kmskeyarn): String
```

## Properties
<a name="sam-resource-capacityprovider-properties"></a>

 `CapacityProviderName`   <a name="sam-capacityprovider-capacityprovidername"></a>
容量提供程序的名称。此名称在您的 AWS 账户和地区内必须是唯一的。  
*类型*：字符串  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::CapacityProvider`资源的`[CapacityProviderName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-capacityprovider.html#cfn-lambda-capacityprovider-capacityprovidername)`属性。

 `VpcConfig`   <a name="sam-capacityprovider-vpcconfig"></a>
容量提供商的 VPC 配置。指定将在其中启动 Amazon EC2 实例的 VPC 子网和安全组。  
*类型*：[VpcConfig](sam-property-capacityprovider-vpcconfig.md)  
*是否必需*：是  
*CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::CapacityProvider`资源的`[VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-capacityprovider.html#cfn-lambda-capacityprovider-vpcconfig)`属性。

 `OperatorRole`   <a name="sam-capacityprovider-operatorrole"></a>
 Lambda 操作员角色的 ARN，有权在客户账户中创建和管理 Amazon EC2 实例及相关资源。如果未提供，则会 AWS SAM 自动生成具有必要权限的角色。  
*类型*：字符串  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`[PermissionsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-capacityprovider.html#cfn-lambda-capacityprovider-permissionsconfig)``AWS::Lambda::CapacityProvider`资源的`[CapacityProviderOperatorRoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-capacityprovider-capacityproviderpermissionsconfig.html#cfn-lambda-capacityprovider-capacityproviderpermissionsconfig-capacityprovideroperatorrolearn)`属性。

 `Tags`   <a name="sam-capacityprovider-tags"></a>
应用于容量提供商及其关联资源的键值对映射。  
*类型*：映射  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::CapacityProvider`资源的`[Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-capacityprovider.html#cfn-lambda-capacityprovider-tags)`属性。中的`Tags`属性由键值对 AWS SAM 组成（而 CloudFormation 在此属性中则由标签对象的列表组成）。此外，还 AWS SAM 会自动向此 Lambda 函数以及为此函数生成的默认角色添加`lambda:createdBy:SAM`标签。

 `PropagateTags`   <a name="sam-capacityprovider-propagatetags"></a>
 表示是否将标签从 Tags 属性传递到`AWS::Serverless::CapacityProvider`生成的资源。将其设置`True`为可在生成的资源中传播标签。  
*类型*：布尔值  
*必需*：否  
*CloudFormation 兼容性*：此属性是独有的 AWS SAM ，没有 CloudFormation 等效属性。

 `InstanceRequirements`   <a name="sam-capacityprovider-instancerequirements"></a>
 容量提供商可以使用的计算实例类型的规范。这包括架构要求和 `allowed` /或`excluded`实例类型。  
*类型*：[InstanceRequirements](sam-property-capacityprovider-instancerequirements.md)  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::CapacityProvider`资源的`[InstanceRequirements](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-capacityprovider.html#cfn-lambda-capacityprovider-instancerequirements)`属性。

 `ScalingConfig`   <a name="sam-capacityprovider-scalingconfig"></a>
 容量提供商的扩展配置。定义容量提供商如何根据需求扩展 Amazon EC2 实例。  
*类型*：[ScalingConfig](sam-property-capacityprovider-scalingconfig.md)  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::CapacityProvider`资源的`[CapacityProviderScalingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-capacityprovider.html#cfn-lambda-capacityprovider-capacityproviderscalingconfig)`属性。

 `KmsKeyArn`   <a name="sam-capacityprovider-kmskeyarn"></a>
用于为容量提供商加密静态数据和传输中数据的密 AWS KMS 钥的 ARN。  
*类型*：字符串  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::CapacityProvider`资源的`[KmsKeyArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-capacityprovider.html#cfn-lambda-capacityprovider-kmskeyarn)`属性。

## 返回值
<a name="sam-resource-capacityprovider-return-values"></a>

### Ref
<a name="sam-resource-capacityprovider-return-values-ref"></a>

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

有关使用 `Ref` 函数的更多信息，请参阅*《AWS CloudFormation 用户指南》*中的 [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)。

### Fn:: GetAtt
<a name="sam-resource-capacityprovider-return-values-fn--getatt"></a>

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

有关使用 `Fn::GetAtt` 的更多信息，请参阅*《AWS CloudFormation 用户指南》*中的 [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html)。

`Arn`  <a name="Arn-fn::getatt"></a>
容量提供商的 ARN。

## 示例
<a name="sam-resource-capacityprovider-examples"></a>

### 基本容量提供商
<a name="sam-resource-capacityprovider-examples-basic"></a>

以下示例创建了一个具有 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
```

### 具有扩展功能的高级容量提供商
<a name="sam-resource-capacityprovider-examples-advanced"></a>

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

```
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
```