

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

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

# VpcConfig
<a name="sam-property-capacityprovider-vpcconfig"></a>

为容量提供商配置 VPC 设置，包括将在其中 EC2 启动实例的子网和安全组。

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

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

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

```
[SubnetIds](#sam-capacityprovider-vpcconfig-subnetids): List
[SecurityGroupIds](#sam-capacityprovider-vpcconfig-securitygroupids): List
```

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

 `SubnetIds`   <a name="sam-capacityprovider-vpcconfig-subnetids"></a>
将在 IDs 其中启动 EC2 实例的子网列表。必须至少指定一个子网。  
*类型*：列表  
*是否必需*：是  
*CloudFormation 兼容性*：此属性直接传递给`[VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-capacityprovider.html#cfn-lambda-capacityprovider-vpcconfig) ``AWS::Lambda::CapacityProvider`资源的`[SubnetIds](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-capacityprovider-capacityprovidervpcconfig.html#cfn-lambda-capacityprovider-capacityprovidervpcconfig-subnetids)`属性。

 `SecurityGroupIds`   <a name="sam-capacityprovider-vpcconfig-securitygroupids"></a>
 IDs 要与 EC2 实例关联的安全组列表。如果未指定，则将使用 VPC 的默认安全组。  
*类型*：列表  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`AWS::Lambda::CapacityProvider`资源`[VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-capacityprovider.html#cfn-lambda-capacityprovider-vpcconfig)`属性的属性。`[SecurityGroupIds](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-capacityprovider-capacityprovidervpcconfig.html#cfn-lambda-capacityprovider-capacityprovidervpcconfig-securitygroupids)`

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

### VPC 配置
<a name="sam-property-capacityprovider-vpcconfig-examples-basic"></a>

以下示例显示了具有多个子网和安全组的 VPC 配置。

```
VpcConfig:
  SubnetIds:
    - subnet-12345678
    - subnet-87654321
  SecurityGroupIds:
    - sg-12345678
    - sg-87654321
```

# InstanceRequirements
<a name="sam-property-capacityprovider-instancerequirements"></a>

指定将由容量提供商启动的 EC2 实例的要求，包括架构和实例类型限制。

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

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

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

```
[Architectures](#sam-capacityprovider-instancerequirements-architectures): List
[AllowedTypes](#sam-capacityprovider-instancerequirements-allowedtypes): List
[ExcludedTypes](#sam-capacityprovider-instancerequirements-excludedtypes): List
```

**注意**  
您可以选择在为容量提供商定义实例要求`ExcludedTypes`时指定其中一个`AllowedTypes`或一个，但不能同时指定两者。

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

 `Architectures`   <a name="sam-capacityprovider-instancerequirements-architectures"></a>
容量提供程序实例的指令集架构。  
*有效值*：`x86_64` 或 `arm64`  
*类型*：列表  
*必需*：否  
*默认值*：`x86_64`  
*CloudFormation 兼容性*：此属性直接传递给`[InstanceRequirements](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-capacityprovider.html#cfn-lambda-capacityprovider-instancerequirements)``AWS::Lambda::CapacityProvider`资源的`[Architectures](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-capacityprovider-instancerequirements.html#cfn-lambda-capacityprovider-instancerequirements-architectures)`属性。

 `AllowedTypes`   <a name="sam-capacityprovider-instancerequirements-allowedtypes"></a>
容量提供程序 EC2 实例允许的实例类型列表。  
*类型*：列表  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`[InstanceRequirements](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-capacityprovider.html#cfn-lambda-capacityprovider-instancerequirements)``AWS::Lambda::CapacityProvider`资源的`[AllowedInstanceTypes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-capacityprovider-instancerequirements.html#cfn-lambda-capacityprovider-instancerequirements-allowedinstancetypes)`属性。

 `ExcludedTypes`   <a name="sam-capacityprovider-instancerequirements-excludedtypes"></a>
要从容量提供程序中排除的 EC2 实例类型列表。  
*类型*：列表  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`[InstanceRequirements](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-capacityprovider.html#cfn-lambda-capacityprovider-instancerequirements)``AWS::Lambda::CapacityProvider`资源的`[ExcludedInstanceTypes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-capacityprovider-instancerequirements.html#cfn-lambda-capacityprovider-instancerequirements-excludedinstancetypes)`属性。

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

### 实例要求配置
<a name="sam-property-capacityprovider-instancerequirements-examples-basic"></a>

以下示例显示了具有特定架构和实例类型限制的实例要求。

```
InstanceRequirements:
  Architectures:
    - x86_64
  ExcludedTypes:
    - t2.micro
```

# ScalingConfig
<a name="sam-property-capacityprovider-scalingconfig"></a>

配置容量提供商如何根据需求扩展 EC2 实例，包括最大实例限制和扩展策略。

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

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

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

```
[MaxVCpuCount](#sam-capacityprovider-scalingconfig-maxvcpucount): Integer
[AverageCPUUtilization](#sam-capacityprovider-scalingconfig-averagecpuutilization): Double
```

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

 `MaxVCpuCount`   <a name="sam-capacityprovider-scalingconfig-maxvcpucount"></a>
容量提供者可以在所有计算实例中配置的最大 v CPUs 数。  
*类型*：整数  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`[CapacityProviderScalingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-capacityprovider.html#cfn-lambda-capacityprovider-capacityproviderscalingconfig)``AWS::Lambda::CapacityProvider`资源的`[MaxVCpuCount](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-capacityprovider-capacityproviderscalingconfig.html#cfn-lambda-capacityprovider-capacityproviderscalingconfig-maxvcpucount)`属性。

 `AverageCPUUtilization`   <a name="sam-capacityprovider-scalingconfig-averagecpuutilization"></a>
扩展决策的目标平均 CPU 利用率百分比 (0-100)。当平均 CPU 使用率超过此阈值时，容量提供商将扩展 Amazon EC2 实例。指定后， AWS SAM 将`[CapacityProviderScalingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-capacityprovider.html#cfn-lambda-capacityprovider-capacityproviderscalingconfig)`构造设置为、`[ScalingMode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-capacityprovider-capacityproviderscalingconfig.html#cfn-lambda-capacityprovider-capacityproviderscalingconfig-scalingmode)`设置为`'Manual'`的`AWS::Lambda::CapacityProvider``[ScalingPolicies](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-capacityprovider-capacityproviderscalingconfig.html#cfn-lambda-capacityprovider-capacityproviderscalingconfig-scalingpolicies)`资源。`[{PredefinedMetricType: 'LambdaCapacityProviderAverageCPUUtilization', TargetValue: <this value>}]`  
*类型*：双精度  
*必需*：否  
*CloudFormation 兼容性*：此属性是独有的 AWS SAM ，没有 CloudFormation 等效属性。

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

### 扩展配置
<a name="sam-property-capacityprovider-scalingconfig-examples-basic"></a>

以下示例显示了具有最大 VCpu 计数和平均 CPU 利用率的扩展配置。

```
ScalingConfig:
  MaxVCpuCount: 10
  AverageCPUUtilization: 70.0
```