:doc:`Lambda <../../lambda>` / Client / create_capacity_provider

************************
create_capacity_provider
************************



.. py:method:: Lambda.Client.create_capacity_provider(**kwargs)

  

  Creates a capacity provider that manages compute resources for Lambda functions

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/CreateCapacityProvider>`_  


  **Request Syntax**
  ::

    response = client.create_capacity_provider(
        CapacityProviderName='string',
        VpcConfig={
            'SubnetIds': [
                'string',
            ],
            'SecurityGroupIds': [
                'string',
            ]
        },
        PermissionsConfig={
            'CapacityProviderOperatorRoleArn': 'string'
        },
        InstanceRequirements={
            'Architectures': [
                'x86_64'|'arm64',
            ],
            'AllowedInstanceTypes': [
                'string',
            ],
            'ExcludedInstanceTypes': [
                'string',
            ]
        },
        CapacityProviderScalingConfig={
            'MaxVCpuCount': 123,
            'ScalingMode': 'Auto'|'Manual',
            'ScalingPolicies': [
                {
                    'PredefinedMetricType': 'LambdaCapacityProviderAverageCPUUtilization',
                    'TargetValue': 123.0
                },
            ]
        },
        KmsKeyArn='string',
        Tags={
            'string': 'string'
        }
    )
    
  :type CapacityProviderName: string
  :param CapacityProviderName: **[REQUIRED]** 

    The name of the capacity provider.

    

  
  :type VpcConfig: dict
  :param VpcConfig: **[REQUIRED]** 

    The VPC configuration for the capacity provider, including subnet IDs and security group IDs where compute instances will be launched.

    

  
    - **SubnetIds** *(list) --* **[REQUIRED]** 

      A list of subnet IDs where the capacity provider launches compute instances.

      

    
      - *(string) --* 

      
  
    - **SecurityGroupIds** *(list) --* **[REQUIRED]** 

      A list of security group IDs that control network access for compute instances managed by the capacity provider.

      

    
      - *(string) --* 

      
  
  
  :type PermissionsConfig: dict
  :param PermissionsConfig: **[REQUIRED]** 

    The permissions configuration that specifies the IAM role ARN used by the capacity provider to manage compute resources.

    

  
    - **CapacityProviderOperatorRoleArn** *(string) --* **[REQUIRED]** 

      The ARN of the IAM role that the capacity provider uses to manage compute instances and other Amazon Web Services resources.

      

    
  
  :type InstanceRequirements: dict
  :param InstanceRequirements: 

    The instance requirements that specify the compute instance characteristics, including architectures and allowed or excluded instance types.

    

  
    - **Architectures** *(list) --* 

      A list of supported CPU architectures for compute instances. Valid values include ``x86_64`` and ``arm64``.

      

    
      - *(string) --* 

      
  
    - **AllowedInstanceTypes** *(list) --* 

      A list of EC2 instance types that the capacity provider is allowed to use. If not specified, all compatible instance types are allowed.

      

    
      - *(string) --* 

      
  
    - **ExcludedInstanceTypes** *(list) --* 

      A list of EC2 instance types that the capacity provider should not use, even if they meet other requirements.

      

    
      - *(string) --* 

      
  
  
  :type CapacityProviderScalingConfig: dict
  :param CapacityProviderScalingConfig: 

    The scaling configuration that defines how the capacity provider scales compute instances, including maximum vCPU count and scaling policies.

    

  
    - **MaxVCpuCount** *(integer) --* 

      The maximum number of vCPUs that the capacity provider can provision across all compute instances.

      

    
    - **ScalingMode** *(string) --* 

      The scaling mode that determines how the capacity provider responds to changes in demand.

      

    
    - **ScalingPolicies** *(list) --* 

      A list of scaling policies that define how the capacity provider scales compute instances based on metrics and thresholds.

      

    
      - *(dict) --* 

        A scaling policy for the capacity provider that automatically adjusts capacity to maintain a target value for a specific metric.

        

      
        - **PredefinedMetricType** *(string) --* **[REQUIRED]** 

          The predefined metric type to track for scaling decisions.

          

        
        - **TargetValue** *(float) --* **[REQUIRED]** 

          The target value for the metric that the scaling policy attempts to maintain through scaling actions.

          

        
      
  
  
  :type KmsKeyArn: string
  :param KmsKeyArn: 

    The ARN of the KMS key used to encrypt data associated with the capacity provider.

    

  
  :type Tags: dict
  :param Tags: 

    A list of tags to associate with the capacity provider.

    

  
    - *(string) --* 

    
      - *(string) --* 

      


  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'CapacityProvider': {
              'CapacityProviderArn': 'string',
              'State': 'Pending'|'Active'|'Failed'|'Deleting',
              'VpcConfig': {
                  'SubnetIds': [
                      'string',
                  ],
                  'SecurityGroupIds': [
                      'string',
                  ]
              },
              'PermissionsConfig': {
                  'CapacityProviderOperatorRoleArn': 'string'
              },
              'InstanceRequirements': {
                  'Architectures': [
                      'x86_64'|'arm64',
                  ],
                  'AllowedInstanceTypes': [
                      'string',
                  ],
                  'ExcludedInstanceTypes': [
                      'string',
                  ]
              },
              'CapacityProviderScalingConfig': {
                  'MaxVCpuCount': 123,
                  'ScalingMode': 'Auto'|'Manual',
                  'ScalingPolicies': [
                      {
                          'PredefinedMetricType': 'LambdaCapacityProviderAverageCPUUtilization',
                          'TargetValue': 123.0
                      },
                  ]
              },
              'KmsKeyArn': 'string',
              'LastModified': 'string'
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **CapacityProvider** *(dict) --* 

        Information about the capacity provider that was created.

        
        

        - **CapacityProviderArn** *(string) --* 

          The Amazon Resource Name (ARN) of the capacity provider.

          
        

        - **State** *(string) --* 

          The current state of the capacity provider.

          
        

        - **VpcConfig** *(dict) --* 

          The VPC configuration for the capacity provider.

          
          

          - **SubnetIds** *(list) --* 

            A list of subnet IDs where the capacity provider launches compute instances.

            
            

            - *(string) --* 
        
          

          - **SecurityGroupIds** *(list) --* 

            A list of security group IDs that control network access for compute instances managed by the capacity provider.

            
            

            - *(string) --* 
        
      
        

        - **PermissionsConfig** *(dict) --* 

          The permissions configuration for the capacity provider.

          
          

          - **CapacityProviderOperatorRoleArn** *(string) --* 

            The ARN of the IAM role that the capacity provider uses to manage compute instances and other Amazon Web Services resources.

            
      
        

        - **InstanceRequirements** *(dict) --* 

          The instance requirements for compute resources managed by the capacity provider.

          
          

          - **Architectures** *(list) --* 

            A list of supported CPU architectures for compute instances. Valid values include ``x86_64`` and ``arm64``.

            
            

            - *(string) --* 
        
          

          - **AllowedInstanceTypes** *(list) --* 

            A list of EC2 instance types that the capacity provider is allowed to use. If not specified, all compatible instance types are allowed.

            
            

            - *(string) --* 
        
          

          - **ExcludedInstanceTypes** *(list) --* 

            A list of EC2 instance types that the capacity provider should not use, even if they meet other requirements.

            
            

            - *(string) --* 
        
      
        

        - **CapacityProviderScalingConfig** *(dict) --* 

          The scaling configuration for the capacity provider.

          
          

          - **MaxVCpuCount** *(integer) --* 

            The maximum number of vCPUs that the capacity provider can provision across all compute instances.

            
          

          - **ScalingMode** *(string) --* 

            The scaling mode that determines how the capacity provider responds to changes in demand.

            
          

          - **ScalingPolicies** *(list) --* 

            A list of scaling policies that define how the capacity provider scales compute instances based on metrics and thresholds.

            
            

            - *(dict) --* 

              A scaling policy for the capacity provider that automatically adjusts capacity to maintain a target value for a specific metric.

              
              

              - **PredefinedMetricType** *(string) --* 

                The predefined metric type to track for scaling decisions.

                
              

              - **TargetValue** *(float) --* 

                The target value for the metric that the scaling policy attempts to maintain through scaling actions.

                
          
        
      
        

        - **KmsKeyArn** *(string) --* 

          The ARN of the KMS key used to encrypt the capacity provider's resources.

          
        

        - **LastModified** *(string) --* 

          The date and time when the capacity provider was last modified.

          
    
  
  **Exceptions**
  
  *   :py:class:`Lambda.Client.exceptions.InvalidParameterValueException`

  
  *   :py:class:`Lambda.Client.exceptions.ResourceConflictException`

  
  *   :py:class:`Lambda.Client.exceptions.ServiceException`

  
  *   :py:class:`Lambda.Client.exceptions.TooManyRequestsException`

  
  *   :py:class:`Lambda.Client.exceptions.CapacityProviderLimitExceededException`

  