Skip to content
v2.275.0

CfnCapacityProviderProps Struct ​

Properties for defining a CfnCapacityProvider.

Example ​

ts
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import { aws_ecs as ecs } from 'aws-cdk-lib';
const cfnCapacityProviderProps: ecs.CfnCapacityProviderProps = {
  autoScalingGroupProvider: {
    autoScalingGroupArn: 'autoScalingGroupArn',

    // the properties below are optional
    managedDraining: 'managedDraining',
    managedScaling: {
      instanceWarmupPeriod: 123,
      maximumScalingStepSize: 123,
      minimumScalingStepSize: 123,
      status: 'status',
      targetCapacity: 123,
    },
    managedTerminationProtection: 'managedTerminationProtection',
  },
  clusterName: 'clusterName',
  managedInstancesProvider: {
    infrastructureRoleArn: 'infrastructureRoleArn',
    instanceLaunchTemplate: {
      ec2InstanceProfileArn: 'ec2InstanceProfileArn',
      networkConfiguration: {
        securityGroups: ['securityGroups'],
        subnets: ['subnets'],
      },

      // the properties below are optional
      capacityOptionType: 'capacityOptionType',
      capacityReservations: {
        reservationGroupArn: 'reservationGroupArn',
        reservationPreference: 'reservationPreference',
      },
      fipsEnabled: false,
      instanceMetadataTagsPropagation: false,
      instanceRequirements: {
        memoryMiB: {
          min: 123,

          // the properties below are optional
          max: 123,
        },
        vCpuCount: {
          min: 123,

          // the properties below are optional
          max: 123,
        },

        // the properties below are optional
        acceleratorCount: {
          max: 123,
          min: 123,
        },
        acceleratorManufacturers: ['acceleratorManufacturers'],
        acceleratorNames: ['acceleratorNames'],
        acceleratorTotalMemoryMiB: {
          max: 123,
          min: 123,
        },
        acceleratorTypes: ['acceleratorTypes'],
        allowedInstanceTypes: ['allowedInstanceTypes'],
        bareMetal: 'bareMetal',
        baselineEbsBandwidthMbps: {
          max: 123,
          min: 123,
        },
        burstablePerformance: 'burstablePerformance',
        cpuManufacturers: ['cpuManufacturers'],
        excludedInstanceTypes: ['excludedInstanceTypes'],
        instanceGenerations: ['instanceGenerations'],
        localStorage: 'localStorage',
        localStorageTypes: ['localStorageTypes'],
        maxSpotPriceAsPercentageOfOptimalOnDemandPrice: 123,
        memoryGiBPerVCpu: {
          max: 123,
          min: 123,
        },
        networkBandwidthGbps: {
          max: 123,
          min: 123,
        },
        networkInterfaceCount: {
          max: 123,
          min: 123,
        },
        onDemandMaxPricePercentageOverLowestPrice: 123,
        requireHibernateSupport: false,
        spotMaxPricePercentageOverLowestPrice: 123,
        totalLocalStorageGb: {
          max: 123,
          min: 123,
        },
      },
      localStorageConfiguration: {
        useLocalStorage: false,
      },
      monitoring: 'monitoring',
      storageConfiguration: {
        storageSizeGiB: 123,
      },
    },

    // the properties below are optional
    autoRepairConfiguration: {
      actionsStatus: 'actionsStatus',
    },
    infrastructureOptimization: {
      scaleInAfter: 123,
    },
    propagateTags: 'propagateTags',
  },
  name: 'name',
  tags: [{
    key: 'key',
    value: 'value',
  }],
};

Properties ​

autoScalingGroupProvideroptionalIResolvable | CfnCapacityProvider.AutoScalingGroupProviderPropertyauto_scaling_group_provideroptionaltyping.Union[IResolvable, AutoScalingGroupProviderProperty]autoScalingGroupProvideroptionalIResolvableAutoScalingGroupProvideroptionalIResolvableAutoScalingGroupProvideroptionalinterface{}#
The Auto Scaling group settings for the capacity provider.
clusterNameoptionalstringcluster_nameoptionalstrclusterNameoptionalStringClusterNameoptionalstringClusterNameoptional*string#
The cluster that this capacity provider is associated with.

Managed instances capacity providers are cluster-scoped, meaning they can only be used within their associated cluster.

This is required for Managed instances.

managedInstancesProvideroptionalIResolvable | CfnCapacityProvider.ManagedInstancesProviderPropertymanaged_instances_provideroptionaltyping.Union[IResolvable, ManagedInstancesProviderProperty]managedInstancesProvideroptionalIResolvableManagedInstancesProvideroptionalIResolvableManagedInstancesProvideroptionalinterface{}#
The configuration for the Amazon ECS Managed Instances provider.

This includes the infrastructure role, the launch template configuration, and tag propagation settings.

nameoptionalstringnameoptionalstrnameoptionalStringNameoptionalstringNameoptional*string#
The name of the capacity provider.

If a name is specified, it cannot start with aws , ecs , or fargate . If no name is specified, a default name in the CFNStackName-CFNResourceName-RandomString format is used.

tagsoptionalCfnTag[]tagsoptionaltyping.List[CfnTag]tagsoptionalList<CfnTag>TagsoptionalCfnTag[]Tagsoptional*[]CfnTag#
The metadata that you apply to the capacity provider to help you categorize and organize it.
notes

Each tag consists of a key and an optional value. You define both.

The following basic restrictions apply to tags:

  • Maximum number of tags per resource - 50
  • For each resource, each tag key must be unique, and each tag key can have only one value.
  • Maximum key length - 128 Unicode characters in UTF-8
  • Maximum value length - 256 Unicode characters in UTF-8
  • If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : /