aws-cdk-lib 2.218.0__py3-none-any.whl → 2.220.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of aws-cdk-lib might be problematic. Click here for more details.
- aws_cdk/__init__.py +31 -36
- aws_cdk/_jsii/__init__.py +1 -1
- aws_cdk/_jsii/{aws-cdk-lib@2.218.0.jsii.tgz → aws-cdk-lib@2.220.0.jsii.tgz} +0 -0
- aws_cdk/aws_amazonmq/__init__.py +98 -87
- aws_cdk/aws_apigateway/__init__.py +39 -0
- aws_cdk/aws_applicationsignals/__init__.py +450 -2
- aws_cdk/aws_arcregionswitch/__init__.py +8 -0
- aws_cdk/aws_backup/__init__.py +29 -0
- aws_cdk/aws_batch/__init__.py +109 -7
- aws_cdk/aws_bcmdataexports/__init__.py +9 -0
- aws_cdk/aws_bedrock/__init__.py +384 -1
- aws_cdk/aws_bedrockagentcore/__init__.py +7862 -1568
- aws_cdk/aws_cloudfront/experimental/__init__.py +4 -0
- aws_cdk/aws_cloudfront_origins/__init__.py +87 -6
- aws_cdk/aws_cloudwatch/__init__.py +5 -5
- aws_cdk/aws_codebuild/__init__.py +339 -62
- aws_cdk/aws_cognito/__init__.py +6 -4
- aws_cdk/aws_connect/__init__.py +9 -9
- aws_cdk/aws_cur/__init__.py +5 -3
- aws_cdk/aws_datasync/__init__.py +44 -22
- aws_cdk/aws_datazone/__init__.py +35 -33
- aws_cdk/aws_dax/__init__.py +12 -3
- aws_cdk/aws_dms/__init__.py +3 -5
- aws_cdk/aws_ec2/__init__.py +2721 -30
- aws_cdk/aws_ecs/__init__.py +2900 -90
- aws_cdk/aws_eks/__init__.py +114 -9
- aws_cdk/aws_entityresolution/__init__.py +18 -0
- aws_cdk/aws_fsx/__init__.py +4 -4
- aws_cdk/aws_greengrassv2/__init__.py +29 -0
- aws_cdk/aws_imagebuilder/__init__.py +397 -0
- aws_cdk/aws_iotsitewise/__init__.py +136 -80
- aws_cdk/aws_kinesis/__init__.py +95 -4
- aws_cdk/aws_lambda/__init__.py +43 -0
- aws_cdk/aws_lightsail/__init__.py +584 -0
- aws_cdk/aws_logs/__init__.py +57 -0
- aws_cdk/aws_lookoutmetrics/__init__.py +14 -2
- aws_cdk/aws_m2/__init__.py +59 -13
- aws_cdk/aws_medialive/__init__.py +108 -0
- aws_cdk/aws_msk/__init__.py +4 -2
- aws_cdk/aws_mwaa/__init__.py +5 -5
- aws_cdk/aws_neptune/__init__.py +133 -70
- aws_cdk/aws_networkfirewall/__init__.py +6 -2
- aws_cdk/aws_networkmanager/__init__.py +29 -0
- aws_cdk/aws_observabilityadmin/__init__.py +1227 -83
- aws_cdk/aws_omics/__init__.py +7 -1
- aws_cdk/aws_opensearchservice/__init__.py +64 -0
- aws_cdk/aws_opsworkscm/__init__.py +0 -29
- aws_cdk/aws_pcs/__init__.py +224 -33
- aws_cdk/aws_pinpoint/__init__.py +58 -0
- aws_cdk/aws_quicksight/__init__.py +118 -0
- aws_cdk/aws_rds/__init__.py +62 -37
- aws_cdk/aws_refactorspaces/__init__.py +18 -6
- aws_cdk/aws_route53/__init__.py +138 -8
- aws_cdk/aws_s3/__init__.py +29 -2
- aws_cdk/aws_s3objectlambda/__init__.py +44 -12
- aws_cdk/aws_servicecatalog/__init__.py +103 -106
- aws_cdk/aws_smsvoice/__init__.py +319 -0
- aws_cdk/aws_ssmquicksetup/__init__.py +3 -3
- aws_cdk/aws_synthetics/__init__.py +21 -1
- {aws_cdk_lib-2.218.0.dist-info → aws_cdk_lib-2.220.0.dist-info}/METADATA +2 -2
- {aws_cdk_lib-2.218.0.dist-info → aws_cdk_lib-2.220.0.dist-info}/RECORD +65 -65
- {aws_cdk_lib-2.218.0.dist-info → aws_cdk_lib-2.220.0.dist-info}/LICENSE +0 -0
- {aws_cdk_lib-2.218.0.dist-info → aws_cdk_lib-2.220.0.dist-info}/NOTICE +0 -0
- {aws_cdk_lib-2.218.0.dist-info → aws_cdk_lib-2.220.0.dist-info}/WHEEL +0 -0
- {aws_cdk_lib-2.218.0.dist-info → aws_cdk_lib-2.220.0.dist-info}/top_level.txt +0 -0
aws_cdk/aws_ecs/__init__.py
CHANGED
|
@@ -1696,6 +1696,108 @@ ecs.Ec2Service(self, "EC2Service",
|
|
|
1696
1696
|
)
|
|
1697
1697
|
```
|
|
1698
1698
|
|
|
1699
|
+
### Managed Instances Capacity Providers
|
|
1700
|
+
|
|
1701
|
+
Managed Instances Capacity Providers allow you to use AWS-managed EC2 instances for your ECS tasks while providing more control over instance selection than standard Fargate. AWS handles the instance lifecycle, patching, and maintenance while you can specify detailed instance requirements.
|
|
1702
|
+
|
|
1703
|
+
To create a Managed Instances Capacity Provider, you need to specify the required EC2 instance profile, and networking configuration. You can also define detailed instance requirements to control which types of instances are used for your workloads.
|
|
1704
|
+
|
|
1705
|
+
```python
|
|
1706
|
+
# vpc: ec2.Vpc
|
|
1707
|
+
# infrastructure_role: iam.Role
|
|
1708
|
+
# instance_profile: iam.InstanceProfile
|
|
1709
|
+
|
|
1710
|
+
|
|
1711
|
+
cluster = ecs.Cluster(self, "Cluster", vpc=vpc)
|
|
1712
|
+
|
|
1713
|
+
# Create a Managed Instances Capacity Provider
|
|
1714
|
+
mi_capacity_provider = ecs.ManagedInstancesCapacityProvider(self, "MICapacityProvider",
|
|
1715
|
+
infrastructure_role=infrastructure_role,
|
|
1716
|
+
ec2_instance_profile=instance_profile,
|
|
1717
|
+
subnets=vpc.private_subnets,
|
|
1718
|
+
security_groups=[ec2.SecurityGroup(self, "MISecurityGroup", vpc=vpc)],
|
|
1719
|
+
instance_requirements=ec2.InstanceRequirementsConfig(
|
|
1720
|
+
v_cpu_count_min=1,
|
|
1721
|
+
memory_min=Size.gibibytes(2),
|
|
1722
|
+
cpu_manufacturers=[ec2.CpuManufacturer.INTEL],
|
|
1723
|
+
accelerator_manufacturers=[ec2.AcceleratorManufacturer.NVIDIA]
|
|
1724
|
+
),
|
|
1725
|
+
propagate_tags=ecs.PropagateManagedInstancesTags.CAPACITY_PROVIDER
|
|
1726
|
+
)
|
|
1727
|
+
|
|
1728
|
+
# Add the capacity provider to the cluster
|
|
1729
|
+
cluster.add_managed_instances_capacity_provider(mi_capacity_provider)
|
|
1730
|
+
|
|
1731
|
+
task_definition = ecs.Ec2TaskDefinition(self, "TaskDef")
|
|
1732
|
+
|
|
1733
|
+
task_definition.add_container("web",
|
|
1734
|
+
image=ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample"),
|
|
1735
|
+
memory_reservation_mi_b=256
|
|
1736
|
+
)
|
|
1737
|
+
|
|
1738
|
+
ecs.Ec2Service(self, "EC2Service",
|
|
1739
|
+
cluster=cluster,
|
|
1740
|
+
task_definition=task_definition,
|
|
1741
|
+
min_healthy_percent=100,
|
|
1742
|
+
capacity_provider_strategies=[ecs.CapacityProviderStrategy(
|
|
1743
|
+
capacity_provider=mi_capacity_provider.capacity_provider_name,
|
|
1744
|
+
weight=1
|
|
1745
|
+
)
|
|
1746
|
+
]
|
|
1747
|
+
)
|
|
1748
|
+
```
|
|
1749
|
+
|
|
1750
|
+
You can specify detailed instance requirements to control which types of instances are used:
|
|
1751
|
+
|
|
1752
|
+
```python
|
|
1753
|
+
# infrastructure_role: iam.Role
|
|
1754
|
+
# instance_profile: iam.InstanceProfile
|
|
1755
|
+
# vpc: ec2.Vpc
|
|
1756
|
+
|
|
1757
|
+
|
|
1758
|
+
mi_capacity_provider = ecs.ManagedInstancesCapacityProvider(self, "MICapacityProvider",
|
|
1759
|
+
infrastructure_role=infrastructure_role,
|
|
1760
|
+
ec2_instance_profile=instance_profile,
|
|
1761
|
+
subnets=vpc.private_subnets,
|
|
1762
|
+
instance_requirements=ec2.InstanceRequirementsConfig(
|
|
1763
|
+
# Required: CPU and memory constraints
|
|
1764
|
+
v_cpu_count_min=2,
|
|
1765
|
+
v_cpu_count_max=8,
|
|
1766
|
+
memory_min=Size.gibibytes(4),
|
|
1767
|
+
memory_max=Size.gibibytes(32),
|
|
1768
|
+
|
|
1769
|
+
# CPU preferences
|
|
1770
|
+
cpu_manufacturers=[ec2.CpuManufacturer.INTEL, ec2.CpuManufacturer.AMD],
|
|
1771
|
+
instance_generations=[ec2.InstanceGeneration.CURRENT],
|
|
1772
|
+
|
|
1773
|
+
# Instance type filtering
|
|
1774
|
+
allowed_instance_types=["m5.*", "c5.*"],
|
|
1775
|
+
|
|
1776
|
+
# Performance characteristics
|
|
1777
|
+
burstable_performance=ec2.BurstablePerformance.EXCLUDED,
|
|
1778
|
+
bare_metal=ec2.BareMetal.EXCLUDED,
|
|
1779
|
+
|
|
1780
|
+
# Accelerator requirements (for ML/AI workloads)
|
|
1781
|
+
accelerator_types=[ec2.AcceleratorType.GPU],
|
|
1782
|
+
accelerator_manufacturers=[ec2.AcceleratorManufacturer.NVIDIA],
|
|
1783
|
+
accelerator_names=[ec2.AcceleratorName.T4, ec2.AcceleratorName.V100],
|
|
1784
|
+
accelerator_count_min=1,
|
|
1785
|
+
|
|
1786
|
+
# Storage requirements
|
|
1787
|
+
local_storage=ec2.LocalStorage.REQUIRED,
|
|
1788
|
+
local_storage_types=[ec2.LocalStorageType.SSD],
|
|
1789
|
+
total_local_storage_gBMin=100,
|
|
1790
|
+
|
|
1791
|
+
# Network requirements
|
|
1792
|
+
network_interface_count_min=2,
|
|
1793
|
+
network_bandwidth_gbps_min=10,
|
|
1794
|
+
|
|
1795
|
+
# Cost optimization
|
|
1796
|
+
on_demand_max_price_percentage_over_lowest_price=10
|
|
1797
|
+
)
|
|
1798
|
+
)
|
|
1799
|
+
```
|
|
1800
|
+
|
|
1699
1801
|
### Cluster Default Provider Strategy
|
|
1700
1802
|
|
|
1701
1803
|
A capacity provider strategy determines whether ECS tasks are launched on EC2 instances or Fargate/Fargate Spot. It can be specified at the cluster, service, or task level, and consists of one or more capacity providers. You can specify an optional base and weight value for finer control of how tasks are launched. The `base` specifies a minimum number of tasks on one capacity provider, and the `weight`s of each capacity provider determine how tasks are distributed after `base` is satisfied.
|
|
@@ -2271,8 +2373,10 @@ from ..aws_ec2 import (
|
|
|
2271
2373
|
IKeyPair as _IKeyPair_bc344eda,
|
|
2272
2374
|
IMachineImage as _IMachineImage_0e8bd50b,
|
|
2273
2375
|
ISecurityGroup as _ISecurityGroup_acf8a799,
|
|
2376
|
+
ISubnet as _ISubnet_d57d1229,
|
|
2274
2377
|
IVpc as _IVpc_f30d5663,
|
|
2275
2378
|
InstanceArchitecture as _InstanceArchitecture_7721cb36,
|
|
2379
|
+
InstanceRequirementsConfig as _InstanceRequirementsConfig_1b353659,
|
|
2276
2380
|
InstanceType as _InstanceType_f64915b9,
|
|
2277
2381
|
MachineImageConfig as _MachineImageConfig_187edaee,
|
|
2278
2382
|
SubnetSelection as _SubnetSelection_e57d76df,
|
|
@@ -2313,6 +2417,7 @@ from ..aws_elasticloadbalancingv2 import (
|
|
|
2313
2417
|
from ..aws_iam import (
|
|
2314
2418
|
Grant as _Grant_a7ae64f8,
|
|
2315
2419
|
IGrantable as _IGrantable_71c4f5de,
|
|
2420
|
+
IInstanceProfile as _IInstanceProfile_10d5ce2c,
|
|
2316
2421
|
IRole as _IRole_235f5d8e,
|
|
2317
2422
|
PolicyStatement as _PolicyStatement_0fe33853,
|
|
2318
2423
|
)
|
|
@@ -6757,6 +6862,8 @@ class CapacityProviderStrategy:
|
|
|
6757
6862
|
jsii_struct_bases=[],
|
|
6758
6863
|
name_mapping={
|
|
6759
6864
|
"auto_scaling_group_provider": "autoScalingGroupProvider",
|
|
6865
|
+
"cluster_name": "clusterName",
|
|
6866
|
+
"managed_instances_provider": "managedInstancesProvider",
|
|
6760
6867
|
"name": "name",
|
|
6761
6868
|
"tags": "tags",
|
|
6762
6869
|
},
|
|
@@ -6766,12 +6873,16 @@ class CfnCapacityProviderProps:
|
|
|
6766
6873
|
self,
|
|
6767
6874
|
*,
|
|
6768
6875
|
auto_scaling_group_provider: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCapacityProvider.AutoScalingGroupProviderProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
6876
|
+
cluster_name: typing.Optional[builtins.str] = None,
|
|
6877
|
+
managed_instances_provider: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCapacityProvider.ManagedInstancesProviderProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
6769
6878
|
name: typing.Optional[builtins.str] = None,
|
|
6770
6879
|
tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
6771
6880
|
) -> None:
|
|
6772
6881
|
'''Properties for defining a ``CfnCapacityProvider``.
|
|
6773
6882
|
|
|
6774
6883
|
:param auto_scaling_group_provider: The Auto Scaling group settings for the capacity provider.
|
|
6884
|
+
:param cluster_name:
|
|
6885
|
+
:param managed_instances_provider: The configuration for the Amazon ECS Managed Instances provider. This includes the infrastructure role, the launch template configuration, and tag propagation settings.
|
|
6775
6886
|
:param name: 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.
|
|
6776
6887
|
:param tags: The metadata that you apply to the capacity provider to help you categorize and organize it. 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: + - = . _ : /
|
|
6777
6888
|
|
|
@@ -6799,6 +6910,87 @@ class CfnCapacityProviderProps:
|
|
|
6799
6910
|
),
|
|
6800
6911
|
managed_termination_protection="managedTerminationProtection"
|
|
6801
6912
|
),
|
|
6913
|
+
cluster_name="clusterName",
|
|
6914
|
+
managed_instances_provider=ecs.CfnCapacityProvider.ManagedInstancesProviderProperty(
|
|
6915
|
+
infrastructure_role_arn="infrastructureRoleArn",
|
|
6916
|
+
instance_launch_template=ecs.CfnCapacityProvider.InstanceLaunchTemplateProperty(
|
|
6917
|
+
ec2_instance_profile_arn="ec2InstanceProfileArn",
|
|
6918
|
+
network_configuration=ecs.CfnCapacityProvider.ManagedInstancesNetworkConfigurationProperty(
|
|
6919
|
+
subnets=["subnets"],
|
|
6920
|
+
|
|
6921
|
+
# the properties below are optional
|
|
6922
|
+
security_groups=["securityGroups"]
|
|
6923
|
+
),
|
|
6924
|
+
|
|
6925
|
+
# the properties below are optional
|
|
6926
|
+
instance_requirements=ecs.CfnCapacityProvider.InstanceRequirementsRequestProperty(
|
|
6927
|
+
memory_mi_b=ecs.CfnCapacityProvider.MemoryMiBRequestProperty(
|
|
6928
|
+
min=123,
|
|
6929
|
+
|
|
6930
|
+
# the properties below are optional
|
|
6931
|
+
max=123
|
|
6932
|
+
),
|
|
6933
|
+
v_cpu_count=ecs.CfnCapacityProvider.VCpuCountRangeRequestProperty(
|
|
6934
|
+
min=123,
|
|
6935
|
+
|
|
6936
|
+
# the properties below are optional
|
|
6937
|
+
max=123
|
|
6938
|
+
),
|
|
6939
|
+
|
|
6940
|
+
# the properties below are optional
|
|
6941
|
+
accelerator_count=ecs.CfnCapacityProvider.AcceleratorCountRequestProperty(
|
|
6942
|
+
max=123,
|
|
6943
|
+
min=123
|
|
6944
|
+
),
|
|
6945
|
+
accelerator_manufacturers=["acceleratorManufacturers"],
|
|
6946
|
+
accelerator_names=["acceleratorNames"],
|
|
6947
|
+
accelerator_total_memory_mi_b=ecs.CfnCapacityProvider.AcceleratorTotalMemoryMiBRequestProperty(
|
|
6948
|
+
max=123,
|
|
6949
|
+
min=123
|
|
6950
|
+
),
|
|
6951
|
+
accelerator_types=["acceleratorTypes"],
|
|
6952
|
+
allowed_instance_types=["allowedInstanceTypes"],
|
|
6953
|
+
bare_metal="bareMetal",
|
|
6954
|
+
baseline_ebs_bandwidth_mbps=ecs.CfnCapacityProvider.BaselineEbsBandwidthMbpsRequestProperty(
|
|
6955
|
+
max=123,
|
|
6956
|
+
min=123
|
|
6957
|
+
),
|
|
6958
|
+
burstable_performance="burstablePerformance",
|
|
6959
|
+
cpu_manufacturers=["cpuManufacturers"],
|
|
6960
|
+
excluded_instance_types=["excludedInstanceTypes"],
|
|
6961
|
+
instance_generations=["instanceGenerations"],
|
|
6962
|
+
local_storage="localStorage",
|
|
6963
|
+
local_storage_types=["localStorageTypes"],
|
|
6964
|
+
max_spot_price_as_percentage_of_optimal_on_demand_price=123,
|
|
6965
|
+
memory_gi_bPer_vCpu=ecs.CfnCapacityProvider.MemoryGiBPerVCpuRequestProperty(
|
|
6966
|
+
max=123,
|
|
6967
|
+
min=123
|
|
6968
|
+
),
|
|
6969
|
+
network_bandwidth_gbps=ecs.CfnCapacityProvider.NetworkBandwidthGbpsRequestProperty(
|
|
6970
|
+
max=123,
|
|
6971
|
+
min=123
|
|
6972
|
+
),
|
|
6973
|
+
network_interface_count=ecs.CfnCapacityProvider.NetworkInterfaceCountRequestProperty(
|
|
6974
|
+
max=123,
|
|
6975
|
+
min=123
|
|
6976
|
+
),
|
|
6977
|
+
on_demand_max_price_percentage_over_lowest_price=123,
|
|
6978
|
+
require_hibernate_support=False,
|
|
6979
|
+
spot_max_price_percentage_over_lowest_price=123,
|
|
6980
|
+
total_local_storage_gb=ecs.CfnCapacityProvider.TotalLocalStorageGBRequestProperty(
|
|
6981
|
+
max=123,
|
|
6982
|
+
min=123
|
|
6983
|
+
)
|
|
6984
|
+
),
|
|
6985
|
+
monitoring="monitoring",
|
|
6986
|
+
storage_configuration=ecs.CfnCapacityProvider.ManagedInstancesStorageConfigurationProperty(
|
|
6987
|
+
storage_size_gi_b=123
|
|
6988
|
+
)
|
|
6989
|
+
),
|
|
6990
|
+
|
|
6991
|
+
# the properties below are optional
|
|
6992
|
+
propagate_tags="propagateTags"
|
|
6993
|
+
),
|
|
6802
6994
|
name="name",
|
|
6803
6995
|
tags=[CfnTag(
|
|
6804
6996
|
key="key",
|
|
@@ -6809,11 +7001,17 @@ class CfnCapacityProviderProps:
|
|
|
6809
7001
|
if __debug__:
|
|
6810
7002
|
type_hints = typing.get_type_hints(_typecheckingstub__48080bdf05dc1c4ca9ab46c833774163f6afcd0d1551b378b8d59e67bc180c3f)
|
|
6811
7003
|
check_type(argname="argument auto_scaling_group_provider", value=auto_scaling_group_provider, expected_type=type_hints["auto_scaling_group_provider"])
|
|
7004
|
+
check_type(argname="argument cluster_name", value=cluster_name, expected_type=type_hints["cluster_name"])
|
|
7005
|
+
check_type(argname="argument managed_instances_provider", value=managed_instances_provider, expected_type=type_hints["managed_instances_provider"])
|
|
6812
7006
|
check_type(argname="argument name", value=name, expected_type=type_hints["name"])
|
|
6813
7007
|
check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
|
|
6814
7008
|
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
6815
7009
|
if auto_scaling_group_provider is not None:
|
|
6816
7010
|
self._values["auto_scaling_group_provider"] = auto_scaling_group_provider
|
|
7011
|
+
if cluster_name is not None:
|
|
7012
|
+
self._values["cluster_name"] = cluster_name
|
|
7013
|
+
if managed_instances_provider is not None:
|
|
7014
|
+
self._values["managed_instances_provider"] = managed_instances_provider
|
|
6817
7015
|
if name is not None:
|
|
6818
7016
|
self._values["name"] = name
|
|
6819
7017
|
if tags is not None:
|
|
@@ -6830,6 +7028,27 @@ class CfnCapacityProviderProps:
|
|
|
6830
7028
|
result = self._values.get("auto_scaling_group_provider")
|
|
6831
7029
|
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.AutoScalingGroupProviderProperty"]], result)
|
|
6832
7030
|
|
|
7031
|
+
@builtins.property
|
|
7032
|
+
def cluster_name(self) -> typing.Optional[builtins.str]:
|
|
7033
|
+
'''
|
|
7034
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-capacityprovider.html#cfn-ecs-capacityprovider-clustername
|
|
7035
|
+
'''
|
|
7036
|
+
result = self._values.get("cluster_name")
|
|
7037
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
7038
|
+
|
|
7039
|
+
@builtins.property
|
|
7040
|
+
def managed_instances_provider(
|
|
7041
|
+
self,
|
|
7042
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.ManagedInstancesProviderProperty"]]:
|
|
7043
|
+
'''The configuration for the Amazon ECS Managed Instances provider.
|
|
7044
|
+
|
|
7045
|
+
This includes the infrastructure role, the launch template configuration, and tag propagation settings.
|
|
7046
|
+
|
|
7047
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-capacityprovider.html#cfn-ecs-capacityprovider-managedinstancesprovider
|
|
7048
|
+
'''
|
|
7049
|
+
result = self._values.get("managed_instances_provider")
|
|
7050
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.ManagedInstancesProviderProperty"]], result)
|
|
7051
|
+
|
|
6833
7052
|
@builtins.property
|
|
6834
7053
|
def name(self) -> typing.Optional[builtins.str]:
|
|
6835
7054
|
'''The name of the capacity provider.
|
|
@@ -7370,7 +7589,7 @@ class CfnServiceProps:
|
|
|
7370
7589
|
:param enable_ecs_managed_tags: Specifies whether to turn on Amazon ECS managed tags for the tasks within the service. For more information, see `Tagging your Amazon ECS resources <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html>`_ in the *Amazon Elastic Container Service Developer Guide* . When you use Amazon ECS managed tags, you must set the ``propagateTags`` request parameter.
|
|
7371
7590
|
:param enable_execute_command: Determines whether the execute command functionality is turned on for the service. If ``true`` , the execute command functionality is turned on for all containers in tasks as part of the service.
|
|
7372
7591
|
:param force_new_deployment: Determines whether to force a new deployment of the service. By default, deployments aren't forced. You can use this option to start a new deployment with no service definition changes. For example, you can update a service's tasks to use a newer Docker image with the same image/tag combination ( ``my_image:latest`` ) or to roll Fargate tasks onto a newer platform version.
|
|
7373
|
-
:param health_check_grace_period_seconds: The period of time, in seconds, that the Amazon
|
|
7592
|
+
:param health_check_grace_period_seconds: The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing, VPC Lattice, and container health checks after a task has first started. If you do not specify a health check grace period value, the default value of 0 is used. If you do not use any of the health checks, then ``healthCheckGracePeriodSeconds`` is unused. If your service has more running tasks than desired, unhealthy tasks in the grace period might be stopped to reach the desired count.
|
|
7374
7593
|
:param launch_type: The launch type on which to run your service. For more information, see `Amazon ECS Launch Types <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
|
|
7375
7594
|
:param load_balancers: A list of load balancer objects to associate with the service. If you specify the ``Role`` property, ``LoadBalancers`` must be specified as well. For information about the number of load balancers that you can specify per service, see `Service Load Balancing <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html>`_ in the *Amazon Elastic Container Service Developer Guide* . .. epigraph:: To remove this property from your service resource, specify an empty ``LoadBalancer`` array.
|
|
7376
7595
|
:param network_configuration: The network configuration for the service. This parameter is required for task definitions that use the ``awsvpc`` network mode to receive their own elastic network interface, and it is not supported for other network modes. For more information, see `Task Networking <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
|
|
@@ -7788,7 +8007,7 @@ class CfnServiceProps:
|
|
|
7788
8007
|
|
|
7789
8008
|
@builtins.property
|
|
7790
8009
|
def health_check_grace_period_seconds(self) -> typing.Optional[jsii.Number]:
|
|
7791
|
-
'''The period of time, in seconds, that the Amazon
|
|
8010
|
+
'''The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing, VPC Lattice, and container health checks after a task has first started.
|
|
7792
8011
|
|
|
7793
8012
|
If you do not specify a health check grace period value, the default value of 0 is used. If you do not use any of the health checks, then ``healthCheckGracePeriodSeconds`` is unused.
|
|
7794
8013
|
|
|
@@ -8116,7 +8335,7 @@ class CfnTaskDefinitionProps:
|
|
|
8116
8335
|
:param pid_mode: The process namespace to use for the containers in the task. The valid values are ``host`` or ``task`` . On Fargate for Linux containers, the only valid value is ``task`` . For example, monitoring sidecars might need ``pidMode`` to access information about other containers running in the same task. If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same process namespace. If no value is specified, the default is a private namespace for each container. If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. .. epigraph:: This parameter is not supported for Windows containers. > This parameter is only supported for tasks that are hosted on AWS Fargate if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate.
|
|
8117
8336
|
:param placement_constraints: An array of placement constraint objects to use for tasks. .. epigraph:: This parameter isn't supported for tasks run on AWS Fargate .
|
|
8118
8337
|
:param proxy_configuration: The configuration details for the App Mesh proxy. Your Amazon ECS container instances require at least version 1.26.0 of the container agent and at least version 1.26.0-1 of the ``ecs-init`` package to use a proxy configuration. If your container instances are launched from the Amazon ECS optimized AMI version ``20190301`` or later, they contain the required versions of the container agent and ``ecs-init`` . For more information, see `Amazon ECS-optimized Linux AMI <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
|
|
8119
|
-
:param requires_compatibilities: The task launch types the task definition was validated against. The valid values are ``EC2`` , ``FARGATE`` , and ``EXTERNAL`` . For more information, see `Amazon ECS launch types <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
|
|
8338
|
+
:param requires_compatibilities: The task launch types the task definition was validated against. The valid values are ``MANAGED_INSTANCES`` , ``EC2`` , ``FARGATE`` , and ``EXTERNAL`` . For more information, see `Amazon ECS launch types <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
|
|
8120
8339
|
:param runtime_platform: The operating system that your tasks definitions run on. A platform family is specified only for tasks using the Fargate launch type.
|
|
8121
8340
|
:param tags: The metadata that you apply to the task definition to help you categorize and organize them. Each tag consists of a key and an optional value. You define both of them. 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: + - = . _ : /
|
|
8122
8341
|
:param task_role_arn: The short name or full Amazon Resource Name (ARN) of the AWS Identity and Access Management role that grants containers in the task permission to call AWS APIs on your behalf. For more information, see `Amazon ECS Task Role <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html>`_ in the *Amazon Elastic Container Service Developer Guide* . IAM roles for tasks on Windows require that the ``-EnableTaskIAMRole`` option is set when you launch the Amazon ECS-optimized Windows AMI. Your containers must also run some configuration code to use the feature. For more information, see `Windows IAM roles for tasks <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html>`_ in the *Amazon Elastic Container Service Developer Guide* . .. epigraph:: String validation is done on the ECS side. If an invalid string value is given for ``TaskRoleArn`` , it may cause the Cloudformation job to hang.
|
|
@@ -8625,7 +8844,7 @@ class CfnTaskDefinitionProps:
|
|
|
8625
8844
|
def requires_compatibilities(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
8626
8845
|
'''The task launch types the task definition was validated against.
|
|
8627
8846
|
|
|
8628
|
-
The valid values are ``EC2`` , ``FARGATE`` , and ``EXTERNAL`` . For more information, see `Amazon ECS launch types <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
|
|
8847
|
+
The valid values are ``MANAGED_INSTANCES`` , ``EC2`` , ``FARGATE`` , and ``EXTERNAL`` . For more information, see `Amazon ECS launch types <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
|
|
8629
8848
|
|
|
8630
8849
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-requirescompatibilities
|
|
8631
8850
|
'''
|
|
@@ -10174,6 +10393,14 @@ class Compatibility(enum.Enum):
|
|
|
10174
10393
|
'''The task can specify either the EC2 or Fargate launch types.'''
|
|
10175
10394
|
EXTERNAL = "EXTERNAL"
|
|
10176
10395
|
'''The task should specify the External launch type.'''
|
|
10396
|
+
MANAGED_INSTANCES = "MANAGED_INSTANCES"
|
|
10397
|
+
'''The task should specify the Managed Instances launch type.'''
|
|
10398
|
+
EC2_AND_MANAGED_INSTANCES = "EC2_AND_MANAGED_INSTANCES"
|
|
10399
|
+
'''The task can specify either the EC2 or Managed Instances launch types.'''
|
|
10400
|
+
FARGATE_AND_MANAGED_INSTANCES = "FARGATE_AND_MANAGED_INSTANCES"
|
|
10401
|
+
'''The task can specify either the Fargate or Managed Instances launch types.'''
|
|
10402
|
+
FARGATE_AND_EC2_AND_MANAGED_INSTANCES = "FARGATE_AND_EC2_AND_MANAGED_INSTANCES"
|
|
10403
|
+
'''The task can specify either the Fargate, EC2 or Managed Instances launch types.'''
|
|
10177
10404
|
|
|
10178
10405
|
|
|
10179
10406
|
class ContainerDefinition(
|
|
@@ -12357,32 +12584,24 @@ class ContainerImage(
|
|
|
12357
12584
|
|
|
12358
12585
|
Example::
|
|
12359
12586
|
|
|
12360
|
-
#
|
|
12361
|
-
|
|
12362
|
-
|
|
12363
|
-
|
|
12364
|
-
|
|
12365
|
-
|
|
12366
|
-
|
|
12367
|
-
|
|
12368
|
-
|
|
12369
|
-
|
|
12370
|
-
|
|
12371
|
-
|
|
12372
|
-
|
|
12373
|
-
|
|
12374
|
-
|
|
12375
|
-
|
|
12376
|
-
|
|
12377
|
-
min_healthy_percent=100,
|
|
12378
|
-
capacity_provider_strategies=[ecs.CapacityProviderStrategy(
|
|
12379
|
-
capacity_provider="FARGATE_SPOT",
|
|
12380
|
-
weight=2
|
|
12381
|
-
), ecs.CapacityProviderStrategy(
|
|
12382
|
-
capacity_provider="FARGATE",
|
|
12383
|
-
weight=1
|
|
12587
|
+
# my_file_system: efs.IFileSystem
|
|
12588
|
+
# my_job_role: iam.Role
|
|
12589
|
+
|
|
12590
|
+
my_file_system.grant_read(my_job_role)
|
|
12591
|
+
|
|
12592
|
+
job_defn = batch.EcsJobDefinition(self, "JobDefn",
|
|
12593
|
+
container=batch.EcsEc2ContainerDefinition(self, "containerDefn",
|
|
12594
|
+
image=ecs.ContainerImage.from_registry("public.ecr.aws/amazonlinux/amazonlinux:latest"),
|
|
12595
|
+
memory=cdk.Size.mebibytes(2048),
|
|
12596
|
+
cpu=256,
|
|
12597
|
+
volumes=[batch.EcsVolume.efs(
|
|
12598
|
+
name="myVolume",
|
|
12599
|
+
file_system=my_file_system,
|
|
12600
|
+
container_path="/Volumes/myVolume",
|
|
12601
|
+
use_job_role=True
|
|
12602
|
+
)],
|
|
12603
|
+
job_role=my_job_role
|
|
12384
12604
|
)
|
|
12385
|
-
]
|
|
12386
12605
|
)
|
|
12387
12606
|
'''
|
|
12388
12607
|
|
|
@@ -14348,30 +14567,33 @@ class Ec2ServiceProps(BaseServiceOptions):
|
|
|
14348
14567
|
|
|
14349
14568
|
Example::
|
|
14350
14569
|
|
|
14351
|
-
#
|
|
14352
|
-
|
|
14570
|
+
# task_definition: ecs.TaskDefinition
|
|
14571
|
+
# cluster: ecs.Cluster
|
|
14353
14572
|
|
|
14354
|
-
# Create an ECS cluster
|
|
14355
|
-
cluster = ecs.Cluster(self, "Cluster", vpc=vpc)
|
|
14356
14573
|
|
|
14357
|
-
# Add
|
|
14358
|
-
|
|
14359
|
-
|
|
14360
|
-
|
|
14574
|
+
# Add a container to the task definition
|
|
14575
|
+
specific_container = task_definition.add_container("Container",
|
|
14576
|
+
image=ecs.ContainerImage.from_registry("/aws/aws-example-app"),
|
|
14577
|
+
memory_limit_mi_b=2048
|
|
14361
14578
|
)
|
|
14362
14579
|
|
|
14363
|
-
|
|
14364
|
-
|
|
14365
|
-
|
|
14366
|
-
|
|
14367
|
-
memory_limit_mi_b=512
|
|
14580
|
+
# Add a port mapping
|
|
14581
|
+
specific_container.add_port_mappings(
|
|
14582
|
+
container_port=7600,
|
|
14583
|
+
protocol=ecs.Protocol.TCP
|
|
14368
14584
|
)
|
|
14369
14585
|
|
|
14370
|
-
|
|
14371
|
-
ecs_service = ecs.Ec2Service(self, "Service",
|
|
14586
|
+
ecs.Ec2Service(self, "Service",
|
|
14372
14587
|
cluster=cluster,
|
|
14373
14588
|
task_definition=task_definition,
|
|
14374
|
-
min_healthy_percent=100
|
|
14589
|
+
min_healthy_percent=100,
|
|
14590
|
+
cloud_map_options=ecs.CloudMapOptions(
|
|
14591
|
+
# Create SRV records - useful for bridge networking
|
|
14592
|
+
dns_record_type=cloudmap.DnsRecordType.SRV,
|
|
14593
|
+
# Targets port TCP port 7600 `specificContainer`
|
|
14594
|
+
container=specific_container,
|
|
14595
|
+
container_port=7600
|
|
14596
|
+
)
|
|
14375
14597
|
)
|
|
14376
14598
|
'''
|
|
14377
14599
|
if isinstance(circuit_breaker, dict):
|
|
@@ -21722,6 +21944,12 @@ class ITaskDefinition(_IResource_c80c4260, typing_extensions.Protocol):
|
|
|
21722
21944
|
'''Return true if the task definition can be run on a Fargate cluster.'''
|
|
21723
21945
|
...
|
|
21724
21946
|
|
|
21947
|
+
@builtins.property
|
|
21948
|
+
@jsii.member(jsii_name="isManagedInstancesCompatible")
|
|
21949
|
+
def is_managed_instances_compatible(self) -> builtins.bool:
|
|
21950
|
+
'''Return true if the task definition can be run on Managed Instances.'''
|
|
21951
|
+
...
|
|
21952
|
+
|
|
21725
21953
|
@builtins.property
|
|
21726
21954
|
@jsii.member(jsii_name="networkMode")
|
|
21727
21955
|
def network_mode(self) -> "NetworkMode":
|
|
@@ -21781,6 +22009,12 @@ class _ITaskDefinitionProxy(
|
|
|
21781
22009
|
'''Return true if the task definition can be run on a Fargate cluster.'''
|
|
21782
22010
|
return typing.cast(builtins.bool, jsii.get(self, "isFargateCompatible"))
|
|
21783
22011
|
|
|
22012
|
+
@builtins.property
|
|
22013
|
+
@jsii.member(jsii_name="isManagedInstancesCompatible")
|
|
22014
|
+
def is_managed_instances_compatible(self) -> builtins.bool:
|
|
22015
|
+
'''Return true if the task definition can be run on Managed Instances.'''
|
|
22016
|
+
return typing.cast(builtins.bool, jsii.get(self, "isManagedInstancesCompatible"))
|
|
22017
|
+
|
|
21784
22018
|
@builtins.property
|
|
21785
22019
|
@jsii.member(jsii_name="networkMode")
|
|
21786
22020
|
def network_mode(self) -> "NetworkMode":
|
|
@@ -22013,6 +22247,16 @@ class InferenceAccelerator:
|
|
|
22013
22247
|
)
|
|
22014
22248
|
|
|
22015
22249
|
|
|
22250
|
+
@jsii.enum(jsii_type="aws-cdk-lib.aws_ecs.InstanceMonitoring")
|
|
22251
|
+
class InstanceMonitoring(enum.Enum):
|
|
22252
|
+
'''The monitoring configuration for EC2 instances.'''
|
|
22253
|
+
|
|
22254
|
+
BASIC = "BASIC"
|
|
22255
|
+
'''Basic monitoring (5-minute intervals).'''
|
|
22256
|
+
DETAILED = "DETAILED"
|
|
22257
|
+
'''Detailed monitoring (1-minute intervals).'''
|
|
22258
|
+
|
|
22259
|
+
|
|
22016
22260
|
@jsii.enum(jsii_type="aws-cdk-lib.aws_ecs.IpcMode")
|
|
22017
22261
|
class IpcMode(enum.Enum):
|
|
22018
22262
|
'''The IPC resource namespace to use for the containers in the task.'''
|
|
@@ -23565,6 +23809,383 @@ class MachineImageType(enum.Enum):
|
|
|
23565
23809
|
'''Bottlerocket AMI.'''
|
|
23566
23810
|
|
|
23567
23811
|
|
|
23812
|
+
class ManagedInstancesCapacityProvider(
|
|
23813
|
+
_constructs_77d1e7e8.Construct,
|
|
23814
|
+
metaclass=jsii.JSIIMeta,
|
|
23815
|
+
jsii_type="aws-cdk-lib.aws_ecs.ManagedInstancesCapacityProvider",
|
|
23816
|
+
):
|
|
23817
|
+
'''A Managed Instances Capacity Provider.
|
|
23818
|
+
|
|
23819
|
+
This allows an ECS cluster to use
|
|
23820
|
+
Managed Instances for task placement with managed infrastructure.
|
|
23821
|
+
|
|
23822
|
+
:exampleMetadata: infused
|
|
23823
|
+
|
|
23824
|
+
Example::
|
|
23825
|
+
|
|
23826
|
+
# vpc: ec2.Vpc
|
|
23827
|
+
# infrastructure_role: iam.Role
|
|
23828
|
+
# instance_profile: iam.InstanceProfile
|
|
23829
|
+
|
|
23830
|
+
|
|
23831
|
+
cluster = ecs.Cluster(self, "Cluster", vpc=vpc)
|
|
23832
|
+
|
|
23833
|
+
# Create a Managed Instances Capacity Provider
|
|
23834
|
+
mi_capacity_provider = ecs.ManagedInstancesCapacityProvider(self, "MICapacityProvider",
|
|
23835
|
+
infrastructure_role=infrastructure_role,
|
|
23836
|
+
ec2_instance_profile=instance_profile,
|
|
23837
|
+
subnets=vpc.private_subnets,
|
|
23838
|
+
security_groups=[ec2.SecurityGroup(self, "MISecurityGroup", vpc=vpc)],
|
|
23839
|
+
instance_requirements=ec2.InstanceRequirementsConfig(
|
|
23840
|
+
v_cpu_count_min=1,
|
|
23841
|
+
memory_min=Size.gibibytes(2),
|
|
23842
|
+
cpu_manufacturers=[ec2.CpuManufacturer.INTEL],
|
|
23843
|
+
accelerator_manufacturers=[ec2.AcceleratorManufacturer.NVIDIA]
|
|
23844
|
+
),
|
|
23845
|
+
propagate_tags=ecs.PropagateManagedInstancesTags.CAPACITY_PROVIDER
|
|
23846
|
+
)
|
|
23847
|
+
|
|
23848
|
+
# Add the capacity provider to the cluster
|
|
23849
|
+
cluster.add_managed_instances_capacity_provider(mi_capacity_provider)
|
|
23850
|
+
|
|
23851
|
+
task_definition = ecs.Ec2TaskDefinition(self, "TaskDef")
|
|
23852
|
+
|
|
23853
|
+
task_definition.add_container("web",
|
|
23854
|
+
image=ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample"),
|
|
23855
|
+
memory_reservation_mi_b=256
|
|
23856
|
+
)
|
|
23857
|
+
|
|
23858
|
+
ecs.Ec2Service(self, "EC2Service",
|
|
23859
|
+
cluster=cluster,
|
|
23860
|
+
task_definition=task_definition,
|
|
23861
|
+
min_healthy_percent=100,
|
|
23862
|
+
capacity_provider_strategies=[ecs.CapacityProviderStrategy(
|
|
23863
|
+
capacity_provider=mi_capacity_provider.capacity_provider_name,
|
|
23864
|
+
weight=1
|
|
23865
|
+
)
|
|
23866
|
+
]
|
|
23867
|
+
)
|
|
23868
|
+
'''
|
|
23869
|
+
|
|
23870
|
+
def __init__(
|
|
23871
|
+
self,
|
|
23872
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
23873
|
+
id: builtins.str,
|
|
23874
|
+
*,
|
|
23875
|
+
ec2_instance_profile: _IInstanceProfile_10d5ce2c,
|
|
23876
|
+
subnets: typing.Sequence[_ISubnet_d57d1229],
|
|
23877
|
+
capacity_provider_name: typing.Optional[builtins.str] = None,
|
|
23878
|
+
infrastructure_role: typing.Optional[_IRole_235f5d8e] = None,
|
|
23879
|
+
instance_requirements: typing.Optional[typing.Union[_InstanceRequirementsConfig_1b353659, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
23880
|
+
monitoring: typing.Optional[InstanceMonitoring] = None,
|
|
23881
|
+
propagate_tags: typing.Optional["PropagateManagedInstancesTags"] = None,
|
|
23882
|
+
security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
|
|
23883
|
+
task_volume_storage: typing.Optional[_Size_7b441c34] = None,
|
|
23884
|
+
) -> None:
|
|
23885
|
+
'''
|
|
23886
|
+
:param scope: -
|
|
23887
|
+
:param id: -
|
|
23888
|
+
:param ec2_instance_profile: The EC2 instance profile that will be attached to instances launched by this capacity provider. This instance profile must contain the necessary IAM permissions for ECS container instances to register with the cluster and run tasks. At minimum, it should include permissions for ECS agent communication, ECR image pulling, and CloudWatch logging.
|
|
23889
|
+
:param subnets: The VPC subnets where EC2 instances will be launched. This array must be non-empty and should contain subnets from the VPC where you want the managed instances to be deployed.
|
|
23890
|
+
:param capacity_provider_name: 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. If the stack name starts with ``aws``, ``ecs``, or ``fargate``, a unique resource name is generated that starts with ``cp-``. Default: CloudFormation-generated name
|
|
23891
|
+
:param infrastructure_role: The IAM role that ECS uses to manage the infrastructure for the capacity provider. This role is used by ECS to perform actions such as launching and terminating instances, managing Auto Scaling Groups, and other infrastructure operations required for the managed instances capacity provider. Default: - A new role will be created with the AmazonECSInfrastructureRolePolicyForManagedInstances managed policy
|
|
23892
|
+
:param instance_requirements: The instance requirements configuration for EC2 instance selection. This allows you to specify detailed requirements for instance selection including vCPU count ranges, memory ranges, CPU manufacturers (Intel, AMD, AWS Graviton), instance generations, network performance requirements, and many other criteria. ECS will automatically select appropriate instance types that meet these requirements. Default: - no specific instance requirements, ECS will choose appropriate instances
|
|
23893
|
+
:param monitoring: The CloudWatch monitoring configuration for the EC2 instances. Determines the granularity of CloudWatch metrics collection for the instances. Detailed monitoring incurs additional costs but provides better observability. Default: - no enhanced monitoring (basic monitoring only)
|
|
23894
|
+
:param propagate_tags: Specifies whether to propagate tags from the capacity provider to the launched instances. When set to CAPACITY_PROVIDER, tags applied to the capacity provider resource will be automatically applied to all EC2 instances launched by this capacity provider. Default: PropagateManagedInstancesTags.NONE - no tag propagation
|
|
23895
|
+
:param security_groups: The security groups to associate with the launched EC2 instances. These security groups control the network traffic allowed to and from the instances. If not specified, the default security group of the VPC containing the subnets will be used. Default: - default security group of the VPC
|
|
23896
|
+
:param task_volume_storage: The size of the task volume storage attached to each instance. This storage is used for container images, container logs, and temporary files. Larger storage may be needed for workloads with large container images or applications that generate significant temporary data. Default: Size.gibibytes(80)
|
|
23897
|
+
'''
|
|
23898
|
+
if __debug__:
|
|
23899
|
+
type_hints = typing.get_type_hints(_typecheckingstub__718bb820f1409b5f15556f2e394659a060bda46e302dbb4e973a6484f24497de)
|
|
23900
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
23901
|
+
check_type(argname="argument id", value=id, expected_type=type_hints["id"])
|
|
23902
|
+
props = ManagedInstancesCapacityProviderProps(
|
|
23903
|
+
ec2_instance_profile=ec2_instance_profile,
|
|
23904
|
+
subnets=subnets,
|
|
23905
|
+
capacity_provider_name=capacity_provider_name,
|
|
23906
|
+
infrastructure_role=infrastructure_role,
|
|
23907
|
+
instance_requirements=instance_requirements,
|
|
23908
|
+
monitoring=monitoring,
|
|
23909
|
+
propagate_tags=propagate_tags,
|
|
23910
|
+
security_groups=security_groups,
|
|
23911
|
+
task_volume_storage=task_volume_storage,
|
|
23912
|
+
)
|
|
23913
|
+
|
|
23914
|
+
jsii.create(self.__class__, self, [scope, id, props])
|
|
23915
|
+
|
|
23916
|
+
@jsii.member(jsii_name="bind")
|
|
23917
|
+
def bind(self, cluster: ICluster) -> None:
|
|
23918
|
+
'''Associates the capacity provider with the specified cluster.
|
|
23919
|
+
|
|
23920
|
+
This method is called by the cluster when adding the capacity provider.
|
|
23921
|
+
|
|
23922
|
+
:param cluster: -
|
|
23923
|
+
'''
|
|
23924
|
+
if __debug__:
|
|
23925
|
+
type_hints = typing.get_type_hints(_typecheckingstub__86f1df235e6255faeece6081f964f386186a84532c53bb8fad57fd4ab50e809d)
|
|
23926
|
+
check_type(argname="argument cluster", value=cluster, expected_type=type_hints["cluster"])
|
|
23927
|
+
return typing.cast(None, jsii.invoke(self, "bind", [cluster]))
|
|
23928
|
+
|
|
23929
|
+
@jsii.python.classproperty
|
|
23930
|
+
@jsii.member(jsii_name="PROPERTY_INJECTION_ID")
|
|
23931
|
+
def PROPERTY_INJECTION_ID(cls) -> builtins.str:
|
|
23932
|
+
'''Uniquely identifies this class.'''
|
|
23933
|
+
return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
|
|
23934
|
+
|
|
23935
|
+
@builtins.property
|
|
23936
|
+
@jsii.member(jsii_name="capacityProviderName")
|
|
23937
|
+
def capacity_provider_name(self) -> builtins.str:
|
|
23938
|
+
'''Capacity provider name.'''
|
|
23939
|
+
return typing.cast(builtins.str, jsii.get(self, "capacityProviderName"))
|
|
23940
|
+
|
|
23941
|
+
|
|
23942
|
+
@jsii.data_type(
|
|
23943
|
+
jsii_type="aws-cdk-lib.aws_ecs.ManagedInstancesCapacityProviderProps",
|
|
23944
|
+
jsii_struct_bases=[],
|
|
23945
|
+
name_mapping={
|
|
23946
|
+
"ec2_instance_profile": "ec2InstanceProfile",
|
|
23947
|
+
"subnets": "subnets",
|
|
23948
|
+
"capacity_provider_name": "capacityProviderName",
|
|
23949
|
+
"infrastructure_role": "infrastructureRole",
|
|
23950
|
+
"instance_requirements": "instanceRequirements",
|
|
23951
|
+
"monitoring": "monitoring",
|
|
23952
|
+
"propagate_tags": "propagateTags",
|
|
23953
|
+
"security_groups": "securityGroups",
|
|
23954
|
+
"task_volume_storage": "taskVolumeStorage",
|
|
23955
|
+
},
|
|
23956
|
+
)
|
|
23957
|
+
class ManagedInstancesCapacityProviderProps:
|
|
23958
|
+
def __init__(
|
|
23959
|
+
self,
|
|
23960
|
+
*,
|
|
23961
|
+
ec2_instance_profile: _IInstanceProfile_10d5ce2c,
|
|
23962
|
+
subnets: typing.Sequence[_ISubnet_d57d1229],
|
|
23963
|
+
capacity_provider_name: typing.Optional[builtins.str] = None,
|
|
23964
|
+
infrastructure_role: typing.Optional[_IRole_235f5d8e] = None,
|
|
23965
|
+
instance_requirements: typing.Optional[typing.Union[_InstanceRequirementsConfig_1b353659, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
23966
|
+
monitoring: typing.Optional[InstanceMonitoring] = None,
|
|
23967
|
+
propagate_tags: typing.Optional["PropagateManagedInstancesTags"] = None,
|
|
23968
|
+
security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
|
|
23969
|
+
task_volume_storage: typing.Optional[_Size_7b441c34] = None,
|
|
23970
|
+
) -> None:
|
|
23971
|
+
'''The options for creating a Managed Instances Capacity Provider.
|
|
23972
|
+
|
|
23973
|
+
:param ec2_instance_profile: The EC2 instance profile that will be attached to instances launched by this capacity provider. This instance profile must contain the necessary IAM permissions for ECS container instances to register with the cluster and run tasks. At minimum, it should include permissions for ECS agent communication, ECR image pulling, and CloudWatch logging.
|
|
23974
|
+
:param subnets: The VPC subnets where EC2 instances will be launched. This array must be non-empty and should contain subnets from the VPC where you want the managed instances to be deployed.
|
|
23975
|
+
:param capacity_provider_name: 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. If the stack name starts with ``aws``, ``ecs``, or ``fargate``, a unique resource name is generated that starts with ``cp-``. Default: CloudFormation-generated name
|
|
23976
|
+
:param infrastructure_role: The IAM role that ECS uses to manage the infrastructure for the capacity provider. This role is used by ECS to perform actions such as launching and terminating instances, managing Auto Scaling Groups, and other infrastructure operations required for the managed instances capacity provider. Default: - A new role will be created with the AmazonECSInfrastructureRolePolicyForManagedInstances managed policy
|
|
23977
|
+
:param instance_requirements: The instance requirements configuration for EC2 instance selection. This allows you to specify detailed requirements for instance selection including vCPU count ranges, memory ranges, CPU manufacturers (Intel, AMD, AWS Graviton), instance generations, network performance requirements, and many other criteria. ECS will automatically select appropriate instance types that meet these requirements. Default: - no specific instance requirements, ECS will choose appropriate instances
|
|
23978
|
+
:param monitoring: The CloudWatch monitoring configuration for the EC2 instances. Determines the granularity of CloudWatch metrics collection for the instances. Detailed monitoring incurs additional costs but provides better observability. Default: - no enhanced monitoring (basic monitoring only)
|
|
23979
|
+
:param propagate_tags: Specifies whether to propagate tags from the capacity provider to the launched instances. When set to CAPACITY_PROVIDER, tags applied to the capacity provider resource will be automatically applied to all EC2 instances launched by this capacity provider. Default: PropagateManagedInstancesTags.NONE - no tag propagation
|
|
23980
|
+
:param security_groups: The security groups to associate with the launched EC2 instances. These security groups control the network traffic allowed to and from the instances. If not specified, the default security group of the VPC containing the subnets will be used. Default: - default security group of the VPC
|
|
23981
|
+
:param task_volume_storage: The size of the task volume storage attached to each instance. This storage is used for container images, container logs, and temporary files. Larger storage may be needed for workloads with large container images or applications that generate significant temporary data. Default: Size.gibibytes(80)
|
|
23982
|
+
|
|
23983
|
+
:exampleMetadata: infused
|
|
23984
|
+
|
|
23985
|
+
Example::
|
|
23986
|
+
|
|
23987
|
+
# vpc: ec2.Vpc
|
|
23988
|
+
# infrastructure_role: iam.Role
|
|
23989
|
+
# instance_profile: iam.InstanceProfile
|
|
23990
|
+
|
|
23991
|
+
|
|
23992
|
+
cluster = ecs.Cluster(self, "Cluster", vpc=vpc)
|
|
23993
|
+
|
|
23994
|
+
# Create a Managed Instances Capacity Provider
|
|
23995
|
+
mi_capacity_provider = ecs.ManagedInstancesCapacityProvider(self, "MICapacityProvider",
|
|
23996
|
+
infrastructure_role=infrastructure_role,
|
|
23997
|
+
ec2_instance_profile=instance_profile,
|
|
23998
|
+
subnets=vpc.private_subnets,
|
|
23999
|
+
security_groups=[ec2.SecurityGroup(self, "MISecurityGroup", vpc=vpc)],
|
|
24000
|
+
instance_requirements=ec2.InstanceRequirementsConfig(
|
|
24001
|
+
v_cpu_count_min=1,
|
|
24002
|
+
memory_min=Size.gibibytes(2),
|
|
24003
|
+
cpu_manufacturers=[ec2.CpuManufacturer.INTEL],
|
|
24004
|
+
accelerator_manufacturers=[ec2.AcceleratorManufacturer.NVIDIA]
|
|
24005
|
+
),
|
|
24006
|
+
propagate_tags=ecs.PropagateManagedInstancesTags.CAPACITY_PROVIDER
|
|
24007
|
+
)
|
|
24008
|
+
|
|
24009
|
+
# Add the capacity provider to the cluster
|
|
24010
|
+
cluster.add_managed_instances_capacity_provider(mi_capacity_provider)
|
|
24011
|
+
|
|
24012
|
+
task_definition = ecs.Ec2TaskDefinition(self, "TaskDef")
|
|
24013
|
+
|
|
24014
|
+
task_definition.add_container("web",
|
|
24015
|
+
image=ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample"),
|
|
24016
|
+
memory_reservation_mi_b=256
|
|
24017
|
+
)
|
|
24018
|
+
|
|
24019
|
+
ecs.Ec2Service(self, "EC2Service",
|
|
24020
|
+
cluster=cluster,
|
|
24021
|
+
task_definition=task_definition,
|
|
24022
|
+
min_healthy_percent=100,
|
|
24023
|
+
capacity_provider_strategies=[ecs.CapacityProviderStrategy(
|
|
24024
|
+
capacity_provider=mi_capacity_provider.capacity_provider_name,
|
|
24025
|
+
weight=1
|
|
24026
|
+
)
|
|
24027
|
+
]
|
|
24028
|
+
)
|
|
24029
|
+
'''
|
|
24030
|
+
if isinstance(instance_requirements, dict):
|
|
24031
|
+
instance_requirements = _InstanceRequirementsConfig_1b353659(**instance_requirements)
|
|
24032
|
+
if __debug__:
|
|
24033
|
+
type_hints = typing.get_type_hints(_typecheckingstub__efa15b9a00384128ebdb40ffd56f7e66e8863f1c3a6b8d4cf8bc61fb9e822e92)
|
|
24034
|
+
check_type(argname="argument ec2_instance_profile", value=ec2_instance_profile, expected_type=type_hints["ec2_instance_profile"])
|
|
24035
|
+
check_type(argname="argument subnets", value=subnets, expected_type=type_hints["subnets"])
|
|
24036
|
+
check_type(argname="argument capacity_provider_name", value=capacity_provider_name, expected_type=type_hints["capacity_provider_name"])
|
|
24037
|
+
check_type(argname="argument infrastructure_role", value=infrastructure_role, expected_type=type_hints["infrastructure_role"])
|
|
24038
|
+
check_type(argname="argument instance_requirements", value=instance_requirements, expected_type=type_hints["instance_requirements"])
|
|
24039
|
+
check_type(argname="argument monitoring", value=monitoring, expected_type=type_hints["monitoring"])
|
|
24040
|
+
check_type(argname="argument propagate_tags", value=propagate_tags, expected_type=type_hints["propagate_tags"])
|
|
24041
|
+
check_type(argname="argument security_groups", value=security_groups, expected_type=type_hints["security_groups"])
|
|
24042
|
+
check_type(argname="argument task_volume_storage", value=task_volume_storage, expected_type=type_hints["task_volume_storage"])
|
|
24043
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
24044
|
+
"ec2_instance_profile": ec2_instance_profile,
|
|
24045
|
+
"subnets": subnets,
|
|
24046
|
+
}
|
|
24047
|
+
if capacity_provider_name is not None:
|
|
24048
|
+
self._values["capacity_provider_name"] = capacity_provider_name
|
|
24049
|
+
if infrastructure_role is not None:
|
|
24050
|
+
self._values["infrastructure_role"] = infrastructure_role
|
|
24051
|
+
if instance_requirements is not None:
|
|
24052
|
+
self._values["instance_requirements"] = instance_requirements
|
|
24053
|
+
if monitoring is not None:
|
|
24054
|
+
self._values["monitoring"] = monitoring
|
|
24055
|
+
if propagate_tags is not None:
|
|
24056
|
+
self._values["propagate_tags"] = propagate_tags
|
|
24057
|
+
if security_groups is not None:
|
|
24058
|
+
self._values["security_groups"] = security_groups
|
|
24059
|
+
if task_volume_storage is not None:
|
|
24060
|
+
self._values["task_volume_storage"] = task_volume_storage
|
|
24061
|
+
|
|
24062
|
+
@builtins.property
|
|
24063
|
+
def ec2_instance_profile(self) -> _IInstanceProfile_10d5ce2c:
|
|
24064
|
+
'''The EC2 instance profile that will be attached to instances launched by this capacity provider.
|
|
24065
|
+
|
|
24066
|
+
This instance profile must contain the necessary IAM permissions for ECS container instances
|
|
24067
|
+
to register with the cluster and run tasks. At minimum, it should include permissions for
|
|
24068
|
+
ECS agent communication, ECR image pulling, and CloudWatch logging.
|
|
24069
|
+
'''
|
|
24070
|
+
result = self._values.get("ec2_instance_profile")
|
|
24071
|
+
assert result is not None, "Required property 'ec2_instance_profile' is missing"
|
|
24072
|
+
return typing.cast(_IInstanceProfile_10d5ce2c, result)
|
|
24073
|
+
|
|
24074
|
+
@builtins.property
|
|
24075
|
+
def subnets(self) -> typing.List[_ISubnet_d57d1229]:
|
|
24076
|
+
'''The VPC subnets where EC2 instances will be launched.
|
|
24077
|
+
|
|
24078
|
+
This array must be non-empty and should contain subnets from the VPC where you want
|
|
24079
|
+
the managed instances to be deployed.
|
|
24080
|
+
'''
|
|
24081
|
+
result = self._values.get("subnets")
|
|
24082
|
+
assert result is not None, "Required property 'subnets' is missing"
|
|
24083
|
+
return typing.cast(typing.List[_ISubnet_d57d1229], result)
|
|
24084
|
+
|
|
24085
|
+
@builtins.property
|
|
24086
|
+
def capacity_provider_name(self) -> typing.Optional[builtins.str]:
|
|
24087
|
+
'''The name of the capacity provider.
|
|
24088
|
+
|
|
24089
|
+
If a name is specified, it cannot start with ``aws``, ``ecs``, or ``fargate``.
|
|
24090
|
+
If no name is specified, a default name in the CFNStackName-CFNResourceName-RandomString format is used.
|
|
24091
|
+
If the stack name starts with ``aws``, ``ecs``, or ``fargate``, a unique resource name
|
|
24092
|
+
is generated that starts with ``cp-``.
|
|
24093
|
+
|
|
24094
|
+
:default: CloudFormation-generated name
|
|
24095
|
+
'''
|
|
24096
|
+
result = self._values.get("capacity_provider_name")
|
|
24097
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
24098
|
+
|
|
24099
|
+
@builtins.property
|
|
24100
|
+
def infrastructure_role(self) -> typing.Optional[_IRole_235f5d8e]:
|
|
24101
|
+
'''The IAM role that ECS uses to manage the infrastructure for the capacity provider.
|
|
24102
|
+
|
|
24103
|
+
This role is used by ECS to perform actions such as launching and terminating instances,
|
|
24104
|
+
managing Auto Scaling Groups, and other infrastructure operations required for the
|
|
24105
|
+
managed instances capacity provider.
|
|
24106
|
+
|
|
24107
|
+
:default: - A new role will be created with the AmazonECSInfrastructureRolePolicyForManagedInstances managed policy
|
|
24108
|
+
'''
|
|
24109
|
+
result = self._values.get("infrastructure_role")
|
|
24110
|
+
return typing.cast(typing.Optional[_IRole_235f5d8e], result)
|
|
24111
|
+
|
|
24112
|
+
@builtins.property
|
|
24113
|
+
def instance_requirements(
|
|
24114
|
+
self,
|
|
24115
|
+
) -> typing.Optional[_InstanceRequirementsConfig_1b353659]:
|
|
24116
|
+
'''The instance requirements configuration for EC2 instance selection.
|
|
24117
|
+
|
|
24118
|
+
This allows you to specify detailed requirements for instance selection including
|
|
24119
|
+
vCPU count ranges, memory ranges, CPU manufacturers (Intel, AMD, AWS Graviton),
|
|
24120
|
+
instance generations, network performance requirements, and many other criteria.
|
|
24121
|
+
ECS will automatically select appropriate instance types that meet these requirements.
|
|
24122
|
+
|
|
24123
|
+
:default: - no specific instance requirements, ECS will choose appropriate instances
|
|
24124
|
+
'''
|
|
24125
|
+
result = self._values.get("instance_requirements")
|
|
24126
|
+
return typing.cast(typing.Optional[_InstanceRequirementsConfig_1b353659], result)
|
|
24127
|
+
|
|
24128
|
+
@builtins.property
|
|
24129
|
+
def monitoring(self) -> typing.Optional[InstanceMonitoring]:
|
|
24130
|
+
'''The CloudWatch monitoring configuration for the EC2 instances.
|
|
24131
|
+
|
|
24132
|
+
Determines the granularity of CloudWatch metrics collection for the instances.
|
|
24133
|
+
Detailed monitoring incurs additional costs but provides better observability.
|
|
24134
|
+
|
|
24135
|
+
:default: - no enhanced monitoring (basic monitoring only)
|
|
24136
|
+
'''
|
|
24137
|
+
result = self._values.get("monitoring")
|
|
24138
|
+
return typing.cast(typing.Optional[InstanceMonitoring], result)
|
|
24139
|
+
|
|
24140
|
+
@builtins.property
|
|
24141
|
+
def propagate_tags(self) -> typing.Optional["PropagateManagedInstancesTags"]:
|
|
24142
|
+
'''Specifies whether to propagate tags from the capacity provider to the launched instances.
|
|
24143
|
+
|
|
24144
|
+
When set to CAPACITY_PROVIDER, tags applied to the capacity provider resource will be
|
|
24145
|
+
automatically applied to all EC2 instances launched by this capacity provider.
|
|
24146
|
+
|
|
24147
|
+
:default: PropagateManagedInstancesTags.NONE - no tag propagation
|
|
24148
|
+
'''
|
|
24149
|
+
result = self._values.get("propagate_tags")
|
|
24150
|
+
return typing.cast(typing.Optional["PropagateManagedInstancesTags"], result)
|
|
24151
|
+
|
|
24152
|
+
@builtins.property
|
|
24153
|
+
def security_groups(self) -> typing.Optional[typing.List[_ISecurityGroup_acf8a799]]:
|
|
24154
|
+
'''The security groups to associate with the launched EC2 instances.
|
|
24155
|
+
|
|
24156
|
+
These security groups control the network traffic allowed to and from the instances.
|
|
24157
|
+
If not specified, the default security group of the VPC containing the subnets will be used.
|
|
24158
|
+
|
|
24159
|
+
:default: - default security group of the VPC
|
|
24160
|
+
'''
|
|
24161
|
+
result = self._values.get("security_groups")
|
|
24162
|
+
return typing.cast(typing.Optional[typing.List[_ISecurityGroup_acf8a799]], result)
|
|
24163
|
+
|
|
24164
|
+
@builtins.property
|
|
24165
|
+
def task_volume_storage(self) -> typing.Optional[_Size_7b441c34]:
|
|
24166
|
+
'''The size of the task volume storage attached to each instance.
|
|
24167
|
+
|
|
24168
|
+
This storage is used for container images, container logs, and temporary files.
|
|
24169
|
+
Larger storage may be needed for workloads with large container images or
|
|
24170
|
+
applications that generate significant temporary data.
|
|
24171
|
+
|
|
24172
|
+
:default: Size.gibibytes(80)
|
|
24173
|
+
'''
|
|
24174
|
+
result = self._values.get("task_volume_storage")
|
|
24175
|
+
return typing.cast(typing.Optional[_Size_7b441c34], result)
|
|
24176
|
+
|
|
24177
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
24178
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
24179
|
+
|
|
24180
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
24181
|
+
return not (rhs == self)
|
|
24182
|
+
|
|
24183
|
+
def __repr__(self) -> str:
|
|
24184
|
+
return "ManagedInstancesCapacityProviderProps(%s)" % ", ".join(
|
|
24185
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
24186
|
+
)
|
|
24187
|
+
|
|
24188
|
+
|
|
23568
24189
|
@jsii.data_type(
|
|
23569
24190
|
jsii_type="aws-cdk-lib.aws_ecs.ManagedStorageConfiguration",
|
|
23570
24191
|
jsii_struct_bases=[],
|
|
@@ -24560,6 +25181,64 @@ class PrimaryTaskSetReference:
|
|
|
24560
25181
|
)
|
|
24561
25182
|
|
|
24562
25183
|
|
|
25184
|
+
@jsii.enum(jsii_type="aws-cdk-lib.aws_ecs.PropagateManagedInstancesTags")
|
|
25185
|
+
class PropagateManagedInstancesTags(enum.Enum):
|
|
25186
|
+
'''Propagate tags for Managed Instances.
|
|
25187
|
+
|
|
25188
|
+
:exampleMetadata: infused
|
|
25189
|
+
|
|
25190
|
+
Example::
|
|
25191
|
+
|
|
25192
|
+
# vpc: ec2.Vpc
|
|
25193
|
+
# infrastructure_role: iam.Role
|
|
25194
|
+
# instance_profile: iam.InstanceProfile
|
|
25195
|
+
|
|
25196
|
+
|
|
25197
|
+
cluster = ecs.Cluster(self, "Cluster", vpc=vpc)
|
|
25198
|
+
|
|
25199
|
+
# Create a Managed Instances Capacity Provider
|
|
25200
|
+
mi_capacity_provider = ecs.ManagedInstancesCapacityProvider(self, "MICapacityProvider",
|
|
25201
|
+
infrastructure_role=infrastructure_role,
|
|
25202
|
+
ec2_instance_profile=instance_profile,
|
|
25203
|
+
subnets=vpc.private_subnets,
|
|
25204
|
+
security_groups=[ec2.SecurityGroup(self, "MISecurityGroup", vpc=vpc)],
|
|
25205
|
+
instance_requirements=ec2.InstanceRequirementsConfig(
|
|
25206
|
+
v_cpu_count_min=1,
|
|
25207
|
+
memory_min=Size.gibibytes(2),
|
|
25208
|
+
cpu_manufacturers=[ec2.CpuManufacturer.INTEL],
|
|
25209
|
+
accelerator_manufacturers=[ec2.AcceleratorManufacturer.NVIDIA]
|
|
25210
|
+
),
|
|
25211
|
+
propagate_tags=ecs.PropagateManagedInstancesTags.CAPACITY_PROVIDER
|
|
25212
|
+
)
|
|
25213
|
+
|
|
25214
|
+
# Add the capacity provider to the cluster
|
|
25215
|
+
cluster.add_managed_instances_capacity_provider(mi_capacity_provider)
|
|
25216
|
+
|
|
25217
|
+
task_definition = ecs.Ec2TaskDefinition(self, "TaskDef")
|
|
25218
|
+
|
|
25219
|
+
task_definition.add_container("web",
|
|
25220
|
+
image=ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample"),
|
|
25221
|
+
memory_reservation_mi_b=256
|
|
25222
|
+
)
|
|
25223
|
+
|
|
25224
|
+
ecs.Ec2Service(self, "EC2Service",
|
|
25225
|
+
cluster=cluster,
|
|
25226
|
+
task_definition=task_definition,
|
|
25227
|
+
min_healthy_percent=100,
|
|
25228
|
+
capacity_provider_strategies=[ecs.CapacityProviderStrategy(
|
|
25229
|
+
capacity_provider=mi_capacity_provider.capacity_provider_name,
|
|
25230
|
+
weight=1
|
|
25231
|
+
)
|
|
25232
|
+
]
|
|
25233
|
+
)
|
|
25234
|
+
'''
|
|
25235
|
+
|
|
25236
|
+
CAPACITY_PROVIDER = "CAPACITY_PROVIDER"
|
|
25237
|
+
'''Propagate tags from the capacity provider.'''
|
|
25238
|
+
NONE = "NONE"
|
|
25239
|
+
'''Do not propagate tags.'''
|
|
25240
|
+
|
|
25241
|
+
|
|
24563
25242
|
@jsii.enum(jsii_type="aws-cdk-lib.aws_ecs.PropagatedTagSource")
|
|
24564
25243
|
class PropagatedTagSource(enum.Enum):
|
|
24565
25244
|
'''Propagate tags from either service or task definition.
|
|
@@ -28048,22 +28727,34 @@ class TaskDefinition(
|
|
|
28048
28727
|
|
|
28049
28728
|
Example::
|
|
28050
28729
|
|
|
28730
|
+
import aws_cdk.aws_cloudwatch as cw
|
|
28731
|
+
|
|
28051
28732
|
# cluster: ecs.Cluster
|
|
28052
28733
|
# task_definition: ecs.TaskDefinition
|
|
28053
|
-
#
|
|
28734
|
+
# elb_alarm: cw.Alarm
|
|
28054
28735
|
|
|
28055
|
-
service = ecs.FargateService(self, "Service", cluster=cluster, task_definition=task_definition, min_healthy_percent=100)
|
|
28056
28736
|
|
|
28057
|
-
|
|
28058
|
-
|
|
28059
|
-
|
|
28060
|
-
|
|
28061
|
-
|
|
28062
|
-
|
|
28063
|
-
|
|
28064
|
-
protocol=elbv2.ApplicationProtocol.HTTPS
|
|
28737
|
+
service = ecs.FargateService(self, "Service",
|
|
28738
|
+
cluster=cluster,
|
|
28739
|
+
task_definition=task_definition,
|
|
28740
|
+
min_healthy_percent=100,
|
|
28741
|
+
deployment_alarms=ecs.DeploymentAlarmConfig(
|
|
28742
|
+
alarm_names=[elb_alarm.alarm_name],
|
|
28743
|
+
behavior=ecs.AlarmBehavior.ROLLBACK_ON_ALARM
|
|
28065
28744
|
)
|
|
28066
28745
|
)
|
|
28746
|
+
|
|
28747
|
+
# Defining a deployment alarm after the service has been created
|
|
28748
|
+
cpu_alarm_name = "MyCpuMetricAlarm"
|
|
28749
|
+
cw.Alarm(self, "CPUAlarm",
|
|
28750
|
+
alarm_name=cpu_alarm_name,
|
|
28751
|
+
metric=service.metric_cpu_utilization(),
|
|
28752
|
+
evaluation_periods=2,
|
|
28753
|
+
threshold=80
|
|
28754
|
+
)
|
|
28755
|
+
service.enable_deployment_alarms([cpu_alarm_name],
|
|
28756
|
+
behavior=ecs.AlarmBehavior.FAIL_ON_ALARM
|
|
28757
|
+
)
|
|
28067
28758
|
'''
|
|
28068
28759
|
|
|
28069
28760
|
def __init__(
|
|
@@ -28669,6 +29360,12 @@ class TaskDefinition(
|
|
|
28669
29360
|
'''Return true if the task definition can be run on a Fargate cluster.'''
|
|
28670
29361
|
return typing.cast(builtins.bool, jsii.get(self, "isFargateCompatible"))
|
|
28671
29362
|
|
|
29363
|
+
@builtins.property
|
|
29364
|
+
@jsii.member(jsii_name="isManagedInstancesCompatible")
|
|
29365
|
+
def is_managed_instances_compatible(self) -> builtins.bool:
|
|
29366
|
+
'''Return true if the task definition can be run on Managed Instances.'''
|
|
29367
|
+
return typing.cast(builtins.bool, jsii.get(self, "isManagedInstancesCompatible"))
|
|
29368
|
+
|
|
28672
29369
|
@builtins.property
|
|
28673
29370
|
@jsii.member(jsii_name="networkMode")
|
|
28674
29371
|
def network_mode(self) -> NetworkMode:
|
|
@@ -30673,11 +31370,9 @@ class CfnCapacityProvider(
|
|
|
30673
31370
|
metaclass=jsii.JSIIMeta,
|
|
30674
31371
|
jsii_type="aws-cdk-lib.aws_ecs.CfnCapacityProvider",
|
|
30675
31372
|
):
|
|
30676
|
-
'''Creates a
|
|
31373
|
+
'''Creates a capacity provider.
|
|
30677
31374
|
|
|
30678
|
-
Capacity providers are associated with
|
|
30679
|
-
|
|
30680
|
-
Only capacity providers that use an Auto Scaling group can be created. Amazon ECS tasks on AWS Fargate use the ``FARGATE`` and ``FARGATE_SPOT`` capacity providers. These providers are available to all accounts in the AWS Regions that AWS Fargate supports.
|
|
31375
|
+
Capacity providers are associated with a cluster and are used in capacity provider strategies to facilitate cluster auto scaling. You can create capacity providers for Amazon ECS Managed Instances and EC2 instances. AWS Fargate has the predefined ``FARGATE`` and ``FARGATE_SPOT`` capacity providers.
|
|
30681
31376
|
|
|
30682
31377
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-capacityprovider.html
|
|
30683
31378
|
:cloudformationResource: AWS::ECS::CapacityProvider
|
|
@@ -30704,6 +31399,87 @@ class CfnCapacityProvider(
|
|
|
30704
31399
|
),
|
|
30705
31400
|
managed_termination_protection="managedTerminationProtection"
|
|
30706
31401
|
),
|
|
31402
|
+
cluster_name="clusterName",
|
|
31403
|
+
managed_instances_provider=ecs.CfnCapacityProvider.ManagedInstancesProviderProperty(
|
|
31404
|
+
infrastructure_role_arn="infrastructureRoleArn",
|
|
31405
|
+
instance_launch_template=ecs.CfnCapacityProvider.InstanceLaunchTemplateProperty(
|
|
31406
|
+
ec2_instance_profile_arn="ec2InstanceProfileArn",
|
|
31407
|
+
network_configuration=ecs.CfnCapacityProvider.ManagedInstancesNetworkConfigurationProperty(
|
|
31408
|
+
subnets=["subnets"],
|
|
31409
|
+
|
|
31410
|
+
# the properties below are optional
|
|
31411
|
+
security_groups=["securityGroups"]
|
|
31412
|
+
),
|
|
31413
|
+
|
|
31414
|
+
# the properties below are optional
|
|
31415
|
+
instance_requirements=ecs.CfnCapacityProvider.InstanceRequirementsRequestProperty(
|
|
31416
|
+
memory_mi_b=ecs.CfnCapacityProvider.MemoryMiBRequestProperty(
|
|
31417
|
+
min=123,
|
|
31418
|
+
|
|
31419
|
+
# the properties below are optional
|
|
31420
|
+
max=123
|
|
31421
|
+
),
|
|
31422
|
+
v_cpu_count=ecs.CfnCapacityProvider.VCpuCountRangeRequestProperty(
|
|
31423
|
+
min=123,
|
|
31424
|
+
|
|
31425
|
+
# the properties below are optional
|
|
31426
|
+
max=123
|
|
31427
|
+
),
|
|
31428
|
+
|
|
31429
|
+
# the properties below are optional
|
|
31430
|
+
accelerator_count=ecs.CfnCapacityProvider.AcceleratorCountRequestProperty(
|
|
31431
|
+
max=123,
|
|
31432
|
+
min=123
|
|
31433
|
+
),
|
|
31434
|
+
accelerator_manufacturers=["acceleratorManufacturers"],
|
|
31435
|
+
accelerator_names=["acceleratorNames"],
|
|
31436
|
+
accelerator_total_memory_mi_b=ecs.CfnCapacityProvider.AcceleratorTotalMemoryMiBRequestProperty(
|
|
31437
|
+
max=123,
|
|
31438
|
+
min=123
|
|
31439
|
+
),
|
|
31440
|
+
accelerator_types=["acceleratorTypes"],
|
|
31441
|
+
allowed_instance_types=["allowedInstanceTypes"],
|
|
31442
|
+
bare_metal="bareMetal",
|
|
31443
|
+
baseline_ebs_bandwidth_mbps=ecs.CfnCapacityProvider.BaselineEbsBandwidthMbpsRequestProperty(
|
|
31444
|
+
max=123,
|
|
31445
|
+
min=123
|
|
31446
|
+
),
|
|
31447
|
+
burstable_performance="burstablePerformance",
|
|
31448
|
+
cpu_manufacturers=["cpuManufacturers"],
|
|
31449
|
+
excluded_instance_types=["excludedInstanceTypes"],
|
|
31450
|
+
instance_generations=["instanceGenerations"],
|
|
31451
|
+
local_storage="localStorage",
|
|
31452
|
+
local_storage_types=["localStorageTypes"],
|
|
31453
|
+
max_spot_price_as_percentage_of_optimal_on_demand_price=123,
|
|
31454
|
+
memory_gi_bPer_vCpu=ecs.CfnCapacityProvider.MemoryGiBPerVCpuRequestProperty(
|
|
31455
|
+
max=123,
|
|
31456
|
+
min=123
|
|
31457
|
+
),
|
|
31458
|
+
network_bandwidth_gbps=ecs.CfnCapacityProvider.NetworkBandwidthGbpsRequestProperty(
|
|
31459
|
+
max=123,
|
|
31460
|
+
min=123
|
|
31461
|
+
),
|
|
31462
|
+
network_interface_count=ecs.CfnCapacityProvider.NetworkInterfaceCountRequestProperty(
|
|
31463
|
+
max=123,
|
|
31464
|
+
min=123
|
|
31465
|
+
),
|
|
31466
|
+
on_demand_max_price_percentage_over_lowest_price=123,
|
|
31467
|
+
require_hibernate_support=False,
|
|
31468
|
+
spot_max_price_percentage_over_lowest_price=123,
|
|
31469
|
+
total_local_storage_gb=ecs.CfnCapacityProvider.TotalLocalStorageGBRequestProperty(
|
|
31470
|
+
max=123,
|
|
31471
|
+
min=123
|
|
31472
|
+
)
|
|
31473
|
+
),
|
|
31474
|
+
monitoring="monitoring",
|
|
31475
|
+
storage_configuration=ecs.CfnCapacityProvider.ManagedInstancesStorageConfigurationProperty(
|
|
31476
|
+
storage_size_gi_b=123
|
|
31477
|
+
)
|
|
31478
|
+
),
|
|
31479
|
+
|
|
31480
|
+
# the properties below are optional
|
|
31481
|
+
propagate_tags="propagateTags"
|
|
31482
|
+
),
|
|
30707
31483
|
name="name",
|
|
30708
31484
|
tags=[CfnTag(
|
|
30709
31485
|
key="key",
|
|
@@ -30718,6 +31494,8 @@ class CfnCapacityProvider(
|
|
|
30718
31494
|
id: builtins.str,
|
|
30719
31495
|
*,
|
|
30720
31496
|
auto_scaling_group_provider: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCapacityProvider.AutoScalingGroupProviderProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
31497
|
+
cluster_name: typing.Optional[builtins.str] = None,
|
|
31498
|
+
managed_instances_provider: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCapacityProvider.ManagedInstancesProviderProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
30721
31499
|
name: typing.Optional[builtins.str] = None,
|
|
30722
31500
|
tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
30723
31501
|
) -> None:
|
|
@@ -30725,6 +31503,8 @@ class CfnCapacityProvider(
|
|
|
30725
31503
|
:param scope: Scope in which this resource is defined.
|
|
30726
31504
|
:param id: Construct identifier for this resource (unique in its scope).
|
|
30727
31505
|
:param auto_scaling_group_provider: The Auto Scaling group settings for the capacity provider.
|
|
31506
|
+
:param cluster_name:
|
|
31507
|
+
:param managed_instances_provider: The configuration for the Amazon ECS Managed Instances provider. This includes the infrastructure role, the launch template configuration, and tag propagation settings.
|
|
30728
31508
|
:param name: 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.
|
|
30729
31509
|
:param tags: The metadata that you apply to the capacity provider to help you categorize and organize it. 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: + - = . _ : /
|
|
30730
31510
|
'''
|
|
@@ -30734,6 +31514,8 @@ class CfnCapacityProvider(
|
|
|
30734
31514
|
check_type(argname="argument id", value=id, expected_type=type_hints["id"])
|
|
30735
31515
|
props = CfnCapacityProviderProps(
|
|
30736
31516
|
auto_scaling_group_provider=auto_scaling_group_provider,
|
|
31517
|
+
cluster_name=cluster_name,
|
|
31518
|
+
managed_instances_provider=managed_instances_provider,
|
|
30737
31519
|
name=name,
|
|
30738
31520
|
tags=tags,
|
|
30739
31521
|
)
|
|
@@ -30826,6 +31608,36 @@ class CfnCapacityProvider(
|
|
|
30826
31608
|
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
30827
31609
|
jsii.set(self, "autoScalingGroupProvider", value) # pyright: ignore[reportArgumentType]
|
|
30828
31610
|
|
|
31611
|
+
@builtins.property
|
|
31612
|
+
@jsii.member(jsii_name="clusterName")
|
|
31613
|
+
def cluster_name(self) -> typing.Optional[builtins.str]:
|
|
31614
|
+
return typing.cast(typing.Optional[builtins.str], jsii.get(self, "clusterName"))
|
|
31615
|
+
|
|
31616
|
+
@cluster_name.setter
|
|
31617
|
+
def cluster_name(self, value: typing.Optional[builtins.str]) -> None:
|
|
31618
|
+
if __debug__:
|
|
31619
|
+
type_hints = typing.get_type_hints(_typecheckingstub__56e821d6de113ad791628d9a188368814c7c0fb94ce466313a674dfb2a04780b)
|
|
31620
|
+
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
31621
|
+
jsii.set(self, "clusterName", value) # pyright: ignore[reportArgumentType]
|
|
31622
|
+
|
|
31623
|
+
@builtins.property
|
|
31624
|
+
@jsii.member(jsii_name="managedInstancesProvider")
|
|
31625
|
+
def managed_instances_provider(
|
|
31626
|
+
self,
|
|
31627
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.ManagedInstancesProviderProperty"]]:
|
|
31628
|
+
'''The configuration for the Amazon ECS Managed Instances provider.'''
|
|
31629
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.ManagedInstancesProviderProperty"]], jsii.get(self, "managedInstancesProvider"))
|
|
31630
|
+
|
|
31631
|
+
@managed_instances_provider.setter
|
|
31632
|
+
def managed_instances_provider(
|
|
31633
|
+
self,
|
|
31634
|
+
value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.ManagedInstancesProviderProperty"]],
|
|
31635
|
+
) -> None:
|
|
31636
|
+
if __debug__:
|
|
31637
|
+
type_hints = typing.get_type_hints(_typecheckingstub__1eade181f601623fa0955313b90bd74d62cfcd3ee4f4809fd9998abc514cb4bc)
|
|
31638
|
+
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
31639
|
+
jsii.set(self, "managedInstancesProvider", value) # pyright: ignore[reportArgumentType]
|
|
31640
|
+
|
|
30829
31641
|
@builtins.property
|
|
30830
31642
|
@jsii.member(jsii_name="name")
|
|
30831
31643
|
def name(self) -> typing.Optional[builtins.str]:
|
|
@@ -30852,6 +31664,158 @@ class CfnCapacityProvider(
|
|
|
30852
31664
|
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
30853
31665
|
jsii.set(self, "tagsRaw", value) # pyright: ignore[reportArgumentType]
|
|
30854
31666
|
|
|
31667
|
+
@jsii.data_type(
|
|
31668
|
+
jsii_type="aws-cdk-lib.aws_ecs.CfnCapacityProvider.AcceleratorCountRequestProperty",
|
|
31669
|
+
jsii_struct_bases=[],
|
|
31670
|
+
name_mapping={"max": "max", "min": "min"},
|
|
31671
|
+
)
|
|
31672
|
+
class AcceleratorCountRequestProperty:
|
|
31673
|
+
def __init__(
|
|
31674
|
+
self,
|
|
31675
|
+
*,
|
|
31676
|
+
max: typing.Optional[jsii.Number] = None,
|
|
31677
|
+
min: typing.Optional[jsii.Number] = None,
|
|
31678
|
+
) -> None:
|
|
31679
|
+
'''The minimum and maximum number of accelerators (such as GPUs) for instance type selection.
|
|
31680
|
+
|
|
31681
|
+
This is used for workloads that require specific numbers of accelerators.
|
|
31682
|
+
|
|
31683
|
+
:param max: The maximum number of accelerators. Instance types with more accelerators are excluded from selection.
|
|
31684
|
+
:param min: The minimum number of accelerators. Instance types with fewer accelerators are excluded from selection.
|
|
31685
|
+
|
|
31686
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-acceleratorcountrequest.html
|
|
31687
|
+
:exampleMetadata: fixture=_generated
|
|
31688
|
+
|
|
31689
|
+
Example::
|
|
31690
|
+
|
|
31691
|
+
# The code below shows an example of how to instantiate this type.
|
|
31692
|
+
# The values are placeholders you should change.
|
|
31693
|
+
from aws_cdk import aws_ecs as ecs
|
|
31694
|
+
|
|
31695
|
+
accelerator_count_request_property = ecs.CfnCapacityProvider.AcceleratorCountRequestProperty(
|
|
31696
|
+
max=123,
|
|
31697
|
+
min=123
|
|
31698
|
+
)
|
|
31699
|
+
'''
|
|
31700
|
+
if __debug__:
|
|
31701
|
+
type_hints = typing.get_type_hints(_typecheckingstub__43d53bcba92c90cf6f4d328d0942a76121d27482644e63c47c94438bbe161846)
|
|
31702
|
+
check_type(argname="argument max", value=max, expected_type=type_hints["max"])
|
|
31703
|
+
check_type(argname="argument min", value=min, expected_type=type_hints["min"])
|
|
31704
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
31705
|
+
if max is not None:
|
|
31706
|
+
self._values["max"] = max
|
|
31707
|
+
if min is not None:
|
|
31708
|
+
self._values["min"] = min
|
|
31709
|
+
|
|
31710
|
+
@builtins.property
|
|
31711
|
+
def max(self) -> typing.Optional[jsii.Number]:
|
|
31712
|
+
'''The maximum number of accelerators.
|
|
31713
|
+
|
|
31714
|
+
Instance types with more accelerators are excluded from selection.
|
|
31715
|
+
|
|
31716
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-acceleratorcountrequest.html#cfn-ecs-capacityprovider-acceleratorcountrequest-max
|
|
31717
|
+
'''
|
|
31718
|
+
result = self._values.get("max")
|
|
31719
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
31720
|
+
|
|
31721
|
+
@builtins.property
|
|
31722
|
+
def min(self) -> typing.Optional[jsii.Number]:
|
|
31723
|
+
'''The minimum number of accelerators.
|
|
31724
|
+
|
|
31725
|
+
Instance types with fewer accelerators are excluded from selection.
|
|
31726
|
+
|
|
31727
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-acceleratorcountrequest.html#cfn-ecs-capacityprovider-acceleratorcountrequest-min
|
|
31728
|
+
'''
|
|
31729
|
+
result = self._values.get("min")
|
|
31730
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
31731
|
+
|
|
31732
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
31733
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
31734
|
+
|
|
31735
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
31736
|
+
return not (rhs == self)
|
|
31737
|
+
|
|
31738
|
+
def __repr__(self) -> str:
|
|
31739
|
+
return "AcceleratorCountRequestProperty(%s)" % ", ".join(
|
|
31740
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
31741
|
+
)
|
|
31742
|
+
|
|
31743
|
+
@jsii.data_type(
|
|
31744
|
+
jsii_type="aws-cdk-lib.aws_ecs.CfnCapacityProvider.AcceleratorTotalMemoryMiBRequestProperty",
|
|
31745
|
+
jsii_struct_bases=[],
|
|
31746
|
+
name_mapping={"max": "max", "min": "min"},
|
|
31747
|
+
)
|
|
31748
|
+
class AcceleratorTotalMemoryMiBRequestProperty:
|
|
31749
|
+
def __init__(
|
|
31750
|
+
self,
|
|
31751
|
+
*,
|
|
31752
|
+
max: typing.Optional[jsii.Number] = None,
|
|
31753
|
+
min: typing.Optional[jsii.Number] = None,
|
|
31754
|
+
) -> None:
|
|
31755
|
+
'''The minimum and maximum total accelerator memory in mebibytes (MiB) for instance type selection.
|
|
31756
|
+
|
|
31757
|
+
This is important for GPU workloads that require specific amounts of video memory.
|
|
31758
|
+
|
|
31759
|
+
:param max: The maximum total accelerator memory in MiB. Instance types with more accelerator memory are excluded from selection.
|
|
31760
|
+
:param min: The minimum total accelerator memory in MiB. Instance types with less accelerator memory are excluded from selection.
|
|
31761
|
+
|
|
31762
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-acceleratortotalmemorymibrequest.html
|
|
31763
|
+
:exampleMetadata: fixture=_generated
|
|
31764
|
+
|
|
31765
|
+
Example::
|
|
31766
|
+
|
|
31767
|
+
# The code below shows an example of how to instantiate this type.
|
|
31768
|
+
# The values are placeholders you should change.
|
|
31769
|
+
from aws_cdk import aws_ecs as ecs
|
|
31770
|
+
|
|
31771
|
+
accelerator_total_memory_mi_bRequest_property = ecs.CfnCapacityProvider.AcceleratorTotalMemoryMiBRequestProperty(
|
|
31772
|
+
max=123,
|
|
31773
|
+
min=123
|
|
31774
|
+
)
|
|
31775
|
+
'''
|
|
31776
|
+
if __debug__:
|
|
31777
|
+
type_hints = typing.get_type_hints(_typecheckingstub__05b0b4abd870382eb40911671e91b829abe416723b1b38346d22783d1a2c8f67)
|
|
31778
|
+
check_type(argname="argument max", value=max, expected_type=type_hints["max"])
|
|
31779
|
+
check_type(argname="argument min", value=min, expected_type=type_hints["min"])
|
|
31780
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
31781
|
+
if max is not None:
|
|
31782
|
+
self._values["max"] = max
|
|
31783
|
+
if min is not None:
|
|
31784
|
+
self._values["min"] = min
|
|
31785
|
+
|
|
31786
|
+
@builtins.property
|
|
31787
|
+
def max(self) -> typing.Optional[jsii.Number]:
|
|
31788
|
+
'''The maximum total accelerator memory in MiB.
|
|
31789
|
+
|
|
31790
|
+
Instance types with more accelerator memory are excluded from selection.
|
|
31791
|
+
|
|
31792
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-acceleratortotalmemorymibrequest.html#cfn-ecs-capacityprovider-acceleratortotalmemorymibrequest-max
|
|
31793
|
+
'''
|
|
31794
|
+
result = self._values.get("max")
|
|
31795
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
31796
|
+
|
|
31797
|
+
@builtins.property
|
|
31798
|
+
def min(self) -> typing.Optional[jsii.Number]:
|
|
31799
|
+
'''The minimum total accelerator memory in MiB.
|
|
31800
|
+
|
|
31801
|
+
Instance types with less accelerator memory are excluded from selection.
|
|
31802
|
+
|
|
31803
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-acceleratortotalmemorymibrequest.html#cfn-ecs-capacityprovider-acceleratortotalmemorymibrequest-min
|
|
31804
|
+
'''
|
|
31805
|
+
result = self._values.get("min")
|
|
31806
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
31807
|
+
|
|
31808
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
31809
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
31810
|
+
|
|
31811
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
31812
|
+
return not (rhs == self)
|
|
31813
|
+
|
|
31814
|
+
def __repr__(self) -> str:
|
|
31815
|
+
return "AcceleratorTotalMemoryMiBRequestProperty(%s)" % ", ".join(
|
|
31816
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
31817
|
+
)
|
|
31818
|
+
|
|
30855
31819
|
@jsii.data_type(
|
|
30856
31820
|
jsii_type="aws-cdk-lib.aws_ecs.CfnCapacityProvider.AutoScalingGroupProviderProperty",
|
|
30857
31821
|
jsii_struct_bases=[],
|
|
@@ -30979,6 +31943,1141 @@ class CfnCapacityProvider(
|
|
|
30979
31943
|
k + "=" + repr(v) for k, v in self._values.items()
|
|
30980
31944
|
)
|
|
30981
31945
|
|
|
31946
|
+
@jsii.data_type(
|
|
31947
|
+
jsii_type="aws-cdk-lib.aws_ecs.CfnCapacityProvider.BaselineEbsBandwidthMbpsRequestProperty",
|
|
31948
|
+
jsii_struct_bases=[],
|
|
31949
|
+
name_mapping={"max": "max", "min": "min"},
|
|
31950
|
+
)
|
|
31951
|
+
class BaselineEbsBandwidthMbpsRequestProperty:
|
|
31952
|
+
def __init__(
|
|
31953
|
+
self,
|
|
31954
|
+
*,
|
|
31955
|
+
max: typing.Optional[jsii.Number] = None,
|
|
31956
|
+
min: typing.Optional[jsii.Number] = None,
|
|
31957
|
+
) -> None:
|
|
31958
|
+
'''The minimum and maximum baseline Amazon EBS bandwidth in megabits per second (Mbps) for instance type selection.
|
|
31959
|
+
|
|
31960
|
+
This is important for workloads with high storage I/O requirements.
|
|
31961
|
+
|
|
31962
|
+
:param max: The maximum baseline Amazon EBS bandwidth in Mbps. Instance types with higher Amazon EBS bandwidth are excluded from selection.
|
|
31963
|
+
:param min: The minimum baseline Amazon EBS bandwidth in Mbps. Instance types with lower Amazon EBS bandwidth are excluded from selection.
|
|
31964
|
+
|
|
31965
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-baselineebsbandwidthmbpsrequest.html
|
|
31966
|
+
:exampleMetadata: fixture=_generated
|
|
31967
|
+
|
|
31968
|
+
Example::
|
|
31969
|
+
|
|
31970
|
+
# The code below shows an example of how to instantiate this type.
|
|
31971
|
+
# The values are placeholders you should change.
|
|
31972
|
+
from aws_cdk import aws_ecs as ecs
|
|
31973
|
+
|
|
31974
|
+
baseline_ebs_bandwidth_mbps_request_property = ecs.CfnCapacityProvider.BaselineEbsBandwidthMbpsRequestProperty(
|
|
31975
|
+
max=123,
|
|
31976
|
+
min=123
|
|
31977
|
+
)
|
|
31978
|
+
'''
|
|
31979
|
+
if __debug__:
|
|
31980
|
+
type_hints = typing.get_type_hints(_typecheckingstub__55f829b236ccb12cc42e7c374a47c6c0909fecf313bf4ebb779169af029b2ba4)
|
|
31981
|
+
check_type(argname="argument max", value=max, expected_type=type_hints["max"])
|
|
31982
|
+
check_type(argname="argument min", value=min, expected_type=type_hints["min"])
|
|
31983
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
31984
|
+
if max is not None:
|
|
31985
|
+
self._values["max"] = max
|
|
31986
|
+
if min is not None:
|
|
31987
|
+
self._values["min"] = min
|
|
31988
|
+
|
|
31989
|
+
@builtins.property
|
|
31990
|
+
def max(self) -> typing.Optional[jsii.Number]:
|
|
31991
|
+
'''The maximum baseline Amazon EBS bandwidth in Mbps.
|
|
31992
|
+
|
|
31993
|
+
Instance types with higher Amazon EBS bandwidth are excluded from selection.
|
|
31994
|
+
|
|
31995
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-baselineebsbandwidthmbpsrequest.html#cfn-ecs-capacityprovider-baselineebsbandwidthmbpsrequest-max
|
|
31996
|
+
'''
|
|
31997
|
+
result = self._values.get("max")
|
|
31998
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
31999
|
+
|
|
32000
|
+
@builtins.property
|
|
32001
|
+
def min(self) -> typing.Optional[jsii.Number]:
|
|
32002
|
+
'''The minimum baseline Amazon EBS bandwidth in Mbps.
|
|
32003
|
+
|
|
32004
|
+
Instance types with lower Amazon EBS bandwidth are excluded from selection.
|
|
32005
|
+
|
|
32006
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-baselineebsbandwidthmbpsrequest.html#cfn-ecs-capacityprovider-baselineebsbandwidthmbpsrequest-min
|
|
32007
|
+
'''
|
|
32008
|
+
result = self._values.get("min")
|
|
32009
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
32010
|
+
|
|
32011
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
32012
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
32013
|
+
|
|
32014
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
32015
|
+
return not (rhs == self)
|
|
32016
|
+
|
|
32017
|
+
def __repr__(self) -> str:
|
|
32018
|
+
return "BaselineEbsBandwidthMbpsRequestProperty(%s)" % ", ".join(
|
|
32019
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
32020
|
+
)
|
|
32021
|
+
|
|
32022
|
+
@jsii.data_type(
|
|
32023
|
+
jsii_type="aws-cdk-lib.aws_ecs.CfnCapacityProvider.InstanceLaunchTemplateProperty",
|
|
32024
|
+
jsii_struct_bases=[],
|
|
32025
|
+
name_mapping={
|
|
32026
|
+
"ec2_instance_profile_arn": "ec2InstanceProfileArn",
|
|
32027
|
+
"network_configuration": "networkConfiguration",
|
|
32028
|
+
"instance_requirements": "instanceRequirements",
|
|
32029
|
+
"monitoring": "monitoring",
|
|
32030
|
+
"storage_configuration": "storageConfiguration",
|
|
32031
|
+
},
|
|
32032
|
+
)
|
|
32033
|
+
class InstanceLaunchTemplateProperty:
|
|
32034
|
+
def __init__(
|
|
32035
|
+
self,
|
|
32036
|
+
*,
|
|
32037
|
+
ec2_instance_profile_arn: builtins.str,
|
|
32038
|
+
network_configuration: typing.Union[_IResolvable_da3f097b, typing.Union["CfnCapacityProvider.ManagedInstancesNetworkConfigurationProperty", typing.Dict[builtins.str, typing.Any]]],
|
|
32039
|
+
instance_requirements: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCapacityProvider.InstanceRequirementsRequestProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
32040
|
+
monitoring: typing.Optional[builtins.str] = None,
|
|
32041
|
+
storage_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCapacityProvider.ManagedInstancesStorageConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
32042
|
+
) -> None:
|
|
32043
|
+
'''The launch template configuration for Amazon ECS Managed Instances.
|
|
32044
|
+
|
|
32045
|
+
This defines how Amazon ECS launches Amazon EC2 instances, including the instance profile for your tasks, network and storage configuration, capacity options, and instance requirements for flexible instance type selection.
|
|
32046
|
+
|
|
32047
|
+
:param ec2_instance_profile_arn: The Amazon Resource Name (ARN) of the instance profile that Amazon ECS applies to Amazon ECS Managed Instances. This instance profile must include the necessary permissions for your tasks to access AWS services and resources. For more information, see `Amazon ECS instance profile for Managed Instances <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/managed-instances-instance-profile.html>`_ in the *Amazon ECS Developer Guide* .
|
|
32048
|
+
:param network_configuration: The network configuration for Amazon ECS Managed Instances. This specifies the subnets and security groups that instances use for network connectivity.
|
|
32049
|
+
:param instance_requirements: The instance requirements. You can specify:. - The instance types - Instance requirements such as vCPU count, memory, network performance, and accelerator specifications Amazon ECS automatically selects the instances that match the specified criteria.
|
|
32050
|
+
:param monitoring: CloudWatch provides two categories of monitoring: basic monitoring and detailed monitoring. By default, your managed instance is configured for basic monitoring. You can optionally enable detailed monitoring to help you more quickly identify and act on operational issues. You can enable or turn off detailed monitoring at launch or when the managed instance is running or stopped. For more information, see `Detailed monitoring for Amazon ECS Managed Instances <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/detailed-monitoring-managed-instances.html>`_ in the Amazon ECS Developer Guide.
|
|
32051
|
+
:param storage_configuration: The storage configuration for Amazon ECS Managed Instances. This defines the root volume size and type for the instances.
|
|
32052
|
+
|
|
32053
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancelaunchtemplate.html
|
|
32054
|
+
:exampleMetadata: fixture=_generated
|
|
32055
|
+
|
|
32056
|
+
Example::
|
|
32057
|
+
|
|
32058
|
+
# The code below shows an example of how to instantiate this type.
|
|
32059
|
+
# The values are placeholders you should change.
|
|
32060
|
+
from aws_cdk import aws_ecs as ecs
|
|
32061
|
+
|
|
32062
|
+
instance_launch_template_property = ecs.CfnCapacityProvider.InstanceLaunchTemplateProperty(
|
|
32063
|
+
ec2_instance_profile_arn="ec2InstanceProfileArn",
|
|
32064
|
+
network_configuration=ecs.CfnCapacityProvider.ManagedInstancesNetworkConfigurationProperty(
|
|
32065
|
+
subnets=["subnets"],
|
|
32066
|
+
|
|
32067
|
+
# the properties below are optional
|
|
32068
|
+
security_groups=["securityGroups"]
|
|
32069
|
+
),
|
|
32070
|
+
|
|
32071
|
+
# the properties below are optional
|
|
32072
|
+
instance_requirements=ecs.CfnCapacityProvider.InstanceRequirementsRequestProperty(
|
|
32073
|
+
memory_mi_b=ecs.CfnCapacityProvider.MemoryMiBRequestProperty(
|
|
32074
|
+
min=123,
|
|
32075
|
+
|
|
32076
|
+
# the properties below are optional
|
|
32077
|
+
max=123
|
|
32078
|
+
),
|
|
32079
|
+
v_cpu_count=ecs.CfnCapacityProvider.VCpuCountRangeRequestProperty(
|
|
32080
|
+
min=123,
|
|
32081
|
+
|
|
32082
|
+
# the properties below are optional
|
|
32083
|
+
max=123
|
|
32084
|
+
),
|
|
32085
|
+
|
|
32086
|
+
# the properties below are optional
|
|
32087
|
+
accelerator_count=ecs.CfnCapacityProvider.AcceleratorCountRequestProperty(
|
|
32088
|
+
max=123,
|
|
32089
|
+
min=123
|
|
32090
|
+
),
|
|
32091
|
+
accelerator_manufacturers=["acceleratorManufacturers"],
|
|
32092
|
+
accelerator_names=["acceleratorNames"],
|
|
32093
|
+
accelerator_total_memory_mi_b=ecs.CfnCapacityProvider.AcceleratorTotalMemoryMiBRequestProperty(
|
|
32094
|
+
max=123,
|
|
32095
|
+
min=123
|
|
32096
|
+
),
|
|
32097
|
+
accelerator_types=["acceleratorTypes"],
|
|
32098
|
+
allowed_instance_types=["allowedInstanceTypes"],
|
|
32099
|
+
bare_metal="bareMetal",
|
|
32100
|
+
baseline_ebs_bandwidth_mbps=ecs.CfnCapacityProvider.BaselineEbsBandwidthMbpsRequestProperty(
|
|
32101
|
+
max=123,
|
|
32102
|
+
min=123
|
|
32103
|
+
),
|
|
32104
|
+
burstable_performance="burstablePerformance",
|
|
32105
|
+
cpu_manufacturers=["cpuManufacturers"],
|
|
32106
|
+
excluded_instance_types=["excludedInstanceTypes"],
|
|
32107
|
+
instance_generations=["instanceGenerations"],
|
|
32108
|
+
local_storage="localStorage",
|
|
32109
|
+
local_storage_types=["localStorageTypes"],
|
|
32110
|
+
max_spot_price_as_percentage_of_optimal_on_demand_price=123,
|
|
32111
|
+
memory_gi_bPer_vCpu=ecs.CfnCapacityProvider.MemoryGiBPerVCpuRequestProperty(
|
|
32112
|
+
max=123,
|
|
32113
|
+
min=123
|
|
32114
|
+
),
|
|
32115
|
+
network_bandwidth_gbps=ecs.CfnCapacityProvider.NetworkBandwidthGbpsRequestProperty(
|
|
32116
|
+
max=123,
|
|
32117
|
+
min=123
|
|
32118
|
+
),
|
|
32119
|
+
network_interface_count=ecs.CfnCapacityProvider.NetworkInterfaceCountRequestProperty(
|
|
32120
|
+
max=123,
|
|
32121
|
+
min=123
|
|
32122
|
+
),
|
|
32123
|
+
on_demand_max_price_percentage_over_lowest_price=123,
|
|
32124
|
+
require_hibernate_support=False,
|
|
32125
|
+
spot_max_price_percentage_over_lowest_price=123,
|
|
32126
|
+
total_local_storage_gb=ecs.CfnCapacityProvider.TotalLocalStorageGBRequestProperty(
|
|
32127
|
+
max=123,
|
|
32128
|
+
min=123
|
|
32129
|
+
)
|
|
32130
|
+
),
|
|
32131
|
+
monitoring="monitoring",
|
|
32132
|
+
storage_configuration=ecs.CfnCapacityProvider.ManagedInstancesStorageConfigurationProperty(
|
|
32133
|
+
storage_size_gi_b=123
|
|
32134
|
+
)
|
|
32135
|
+
)
|
|
32136
|
+
'''
|
|
32137
|
+
if __debug__:
|
|
32138
|
+
type_hints = typing.get_type_hints(_typecheckingstub__cb545da33f3067adee24bf90d3e903b06a7562a7e6ea6b3785f5b0ae6f3e105d)
|
|
32139
|
+
check_type(argname="argument ec2_instance_profile_arn", value=ec2_instance_profile_arn, expected_type=type_hints["ec2_instance_profile_arn"])
|
|
32140
|
+
check_type(argname="argument network_configuration", value=network_configuration, expected_type=type_hints["network_configuration"])
|
|
32141
|
+
check_type(argname="argument instance_requirements", value=instance_requirements, expected_type=type_hints["instance_requirements"])
|
|
32142
|
+
check_type(argname="argument monitoring", value=monitoring, expected_type=type_hints["monitoring"])
|
|
32143
|
+
check_type(argname="argument storage_configuration", value=storage_configuration, expected_type=type_hints["storage_configuration"])
|
|
32144
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
32145
|
+
"ec2_instance_profile_arn": ec2_instance_profile_arn,
|
|
32146
|
+
"network_configuration": network_configuration,
|
|
32147
|
+
}
|
|
32148
|
+
if instance_requirements is not None:
|
|
32149
|
+
self._values["instance_requirements"] = instance_requirements
|
|
32150
|
+
if monitoring is not None:
|
|
32151
|
+
self._values["monitoring"] = monitoring
|
|
32152
|
+
if storage_configuration is not None:
|
|
32153
|
+
self._values["storage_configuration"] = storage_configuration
|
|
32154
|
+
|
|
32155
|
+
@builtins.property
|
|
32156
|
+
def ec2_instance_profile_arn(self) -> builtins.str:
|
|
32157
|
+
'''The Amazon Resource Name (ARN) of the instance profile that Amazon ECS applies to Amazon ECS Managed Instances.
|
|
32158
|
+
|
|
32159
|
+
This instance profile must include the necessary permissions for your tasks to access AWS services and resources.
|
|
32160
|
+
|
|
32161
|
+
For more information, see `Amazon ECS instance profile for Managed Instances <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/managed-instances-instance-profile.html>`_ in the *Amazon ECS Developer Guide* .
|
|
32162
|
+
|
|
32163
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancelaunchtemplate.html#cfn-ecs-capacityprovider-instancelaunchtemplate-ec2instanceprofilearn
|
|
32164
|
+
'''
|
|
32165
|
+
result = self._values.get("ec2_instance_profile_arn")
|
|
32166
|
+
assert result is not None, "Required property 'ec2_instance_profile_arn' is missing"
|
|
32167
|
+
return typing.cast(builtins.str, result)
|
|
32168
|
+
|
|
32169
|
+
@builtins.property
|
|
32170
|
+
def network_configuration(
|
|
32171
|
+
self,
|
|
32172
|
+
) -> typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.ManagedInstancesNetworkConfigurationProperty"]:
|
|
32173
|
+
'''The network configuration for Amazon ECS Managed Instances.
|
|
32174
|
+
|
|
32175
|
+
This specifies the subnets and security groups that instances use for network connectivity.
|
|
32176
|
+
|
|
32177
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancelaunchtemplate.html#cfn-ecs-capacityprovider-instancelaunchtemplate-networkconfiguration
|
|
32178
|
+
'''
|
|
32179
|
+
result = self._values.get("network_configuration")
|
|
32180
|
+
assert result is not None, "Required property 'network_configuration' is missing"
|
|
32181
|
+
return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.ManagedInstancesNetworkConfigurationProperty"], result)
|
|
32182
|
+
|
|
32183
|
+
@builtins.property
|
|
32184
|
+
def instance_requirements(
|
|
32185
|
+
self,
|
|
32186
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.InstanceRequirementsRequestProperty"]]:
|
|
32187
|
+
'''The instance requirements. You can specify:.
|
|
32188
|
+
|
|
32189
|
+
- The instance types
|
|
32190
|
+
- Instance requirements such as vCPU count, memory, network performance, and accelerator specifications
|
|
32191
|
+
|
|
32192
|
+
Amazon ECS automatically selects the instances that match the specified criteria.
|
|
32193
|
+
|
|
32194
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancelaunchtemplate.html#cfn-ecs-capacityprovider-instancelaunchtemplate-instancerequirements
|
|
32195
|
+
'''
|
|
32196
|
+
result = self._values.get("instance_requirements")
|
|
32197
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.InstanceRequirementsRequestProperty"]], result)
|
|
32198
|
+
|
|
32199
|
+
@builtins.property
|
|
32200
|
+
def monitoring(self) -> typing.Optional[builtins.str]:
|
|
32201
|
+
'''CloudWatch provides two categories of monitoring: basic monitoring and detailed monitoring.
|
|
32202
|
+
|
|
32203
|
+
By default, your managed instance is configured for basic monitoring. You can optionally enable detailed monitoring to help you more quickly identify and act on operational issues. You can enable or turn off detailed monitoring at launch or when the managed instance is running or stopped. For more information, see `Detailed monitoring for Amazon ECS Managed Instances <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/detailed-monitoring-managed-instances.html>`_ in the Amazon ECS Developer Guide.
|
|
32204
|
+
|
|
32205
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancelaunchtemplate.html#cfn-ecs-capacityprovider-instancelaunchtemplate-monitoring
|
|
32206
|
+
'''
|
|
32207
|
+
result = self._values.get("monitoring")
|
|
32208
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
32209
|
+
|
|
32210
|
+
@builtins.property
|
|
32211
|
+
def storage_configuration(
|
|
32212
|
+
self,
|
|
32213
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.ManagedInstancesStorageConfigurationProperty"]]:
|
|
32214
|
+
'''The storage configuration for Amazon ECS Managed Instances.
|
|
32215
|
+
|
|
32216
|
+
This defines the root volume size and type for the instances.
|
|
32217
|
+
|
|
32218
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancelaunchtemplate.html#cfn-ecs-capacityprovider-instancelaunchtemplate-storageconfiguration
|
|
32219
|
+
'''
|
|
32220
|
+
result = self._values.get("storage_configuration")
|
|
32221
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.ManagedInstancesStorageConfigurationProperty"]], result)
|
|
32222
|
+
|
|
32223
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
32224
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
32225
|
+
|
|
32226
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
32227
|
+
return not (rhs == self)
|
|
32228
|
+
|
|
32229
|
+
def __repr__(self) -> str:
|
|
32230
|
+
return "InstanceLaunchTemplateProperty(%s)" % ", ".join(
|
|
32231
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
32232
|
+
)
|
|
32233
|
+
|
|
32234
|
+
@jsii.data_type(
|
|
32235
|
+
jsii_type="aws-cdk-lib.aws_ecs.CfnCapacityProvider.InstanceRequirementsRequestProperty",
|
|
32236
|
+
jsii_struct_bases=[],
|
|
32237
|
+
name_mapping={
|
|
32238
|
+
"memory_mib": "memoryMiB",
|
|
32239
|
+
"v_cpu_count": "vCpuCount",
|
|
32240
|
+
"accelerator_count": "acceleratorCount",
|
|
32241
|
+
"accelerator_manufacturers": "acceleratorManufacturers",
|
|
32242
|
+
"accelerator_names": "acceleratorNames",
|
|
32243
|
+
"accelerator_total_memory_mib": "acceleratorTotalMemoryMiB",
|
|
32244
|
+
"accelerator_types": "acceleratorTypes",
|
|
32245
|
+
"allowed_instance_types": "allowedInstanceTypes",
|
|
32246
|
+
"bare_metal": "bareMetal",
|
|
32247
|
+
"baseline_ebs_bandwidth_mbps": "baselineEbsBandwidthMbps",
|
|
32248
|
+
"burstable_performance": "burstablePerformance",
|
|
32249
|
+
"cpu_manufacturers": "cpuManufacturers",
|
|
32250
|
+
"excluded_instance_types": "excludedInstanceTypes",
|
|
32251
|
+
"instance_generations": "instanceGenerations",
|
|
32252
|
+
"local_storage": "localStorage",
|
|
32253
|
+
"local_storage_types": "localStorageTypes",
|
|
32254
|
+
"max_spot_price_as_percentage_of_optimal_on_demand_price": "maxSpotPriceAsPercentageOfOptimalOnDemandPrice",
|
|
32255
|
+
"memory_gib_per_v_cpu": "memoryGiBPerVCpu",
|
|
32256
|
+
"network_bandwidth_gbps": "networkBandwidthGbps",
|
|
32257
|
+
"network_interface_count": "networkInterfaceCount",
|
|
32258
|
+
"on_demand_max_price_percentage_over_lowest_price": "onDemandMaxPricePercentageOverLowestPrice",
|
|
32259
|
+
"require_hibernate_support": "requireHibernateSupport",
|
|
32260
|
+
"spot_max_price_percentage_over_lowest_price": "spotMaxPricePercentageOverLowestPrice",
|
|
32261
|
+
"total_local_storage_gb": "totalLocalStorageGb",
|
|
32262
|
+
},
|
|
32263
|
+
)
|
|
32264
|
+
class InstanceRequirementsRequestProperty:
|
|
32265
|
+
def __init__(
|
|
32266
|
+
self,
|
|
32267
|
+
*,
|
|
32268
|
+
memory_mib: typing.Union[_IResolvable_da3f097b, typing.Union["CfnCapacityProvider.MemoryMiBRequestProperty", typing.Dict[builtins.str, typing.Any]]],
|
|
32269
|
+
v_cpu_count: typing.Union[_IResolvable_da3f097b, typing.Union["CfnCapacityProvider.VCpuCountRangeRequestProperty", typing.Dict[builtins.str, typing.Any]]],
|
|
32270
|
+
accelerator_count: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCapacityProvider.AcceleratorCountRequestProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
32271
|
+
accelerator_manufacturers: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
32272
|
+
accelerator_names: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
32273
|
+
accelerator_total_memory_mib: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCapacityProvider.AcceleratorTotalMemoryMiBRequestProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
32274
|
+
accelerator_types: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
32275
|
+
allowed_instance_types: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
32276
|
+
bare_metal: typing.Optional[builtins.str] = None,
|
|
32277
|
+
baseline_ebs_bandwidth_mbps: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCapacityProvider.BaselineEbsBandwidthMbpsRequestProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
32278
|
+
burstable_performance: typing.Optional[builtins.str] = None,
|
|
32279
|
+
cpu_manufacturers: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
32280
|
+
excluded_instance_types: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
32281
|
+
instance_generations: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
32282
|
+
local_storage: typing.Optional[builtins.str] = None,
|
|
32283
|
+
local_storage_types: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
32284
|
+
max_spot_price_as_percentage_of_optimal_on_demand_price: typing.Optional[jsii.Number] = None,
|
|
32285
|
+
memory_gib_per_v_cpu: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCapacityProvider.MemoryGiBPerVCpuRequestProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
32286
|
+
network_bandwidth_gbps: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCapacityProvider.NetworkBandwidthGbpsRequestProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
32287
|
+
network_interface_count: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCapacityProvider.NetworkInterfaceCountRequestProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
32288
|
+
on_demand_max_price_percentage_over_lowest_price: typing.Optional[jsii.Number] = None,
|
|
32289
|
+
require_hibernate_support: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
32290
|
+
spot_max_price_percentage_over_lowest_price: typing.Optional[jsii.Number] = None,
|
|
32291
|
+
total_local_storage_gb: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCapacityProvider.TotalLocalStorageGBRequestProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
32292
|
+
) -> None:
|
|
32293
|
+
'''The instance requirements for attribute-based instance type selection.
|
|
32294
|
+
|
|
32295
|
+
Instead of specifying exact instance types, you define requirements such as vCPU count, memory size, network performance, and accelerator specifications. Amazon ECS automatically selects Amazon EC2 instance types that match these requirements, providing flexibility and helping to mitigate capacity constraints.
|
|
32296
|
+
|
|
32297
|
+
:param memory_mib: The minimum and maximum amount of memory in mebibytes (MiB) for the instance types. Amazon ECS selects instance types that have memory within this range.
|
|
32298
|
+
:param v_cpu_count: The minimum and maximum number of vCPUs for the instance types. Amazon ECS selects instance types that have vCPU counts within this range.
|
|
32299
|
+
:param accelerator_count: The minimum and maximum number of accelerators for the instance types. This is used when you need instances with specific numbers of GPUs or other accelerators.
|
|
32300
|
+
:param accelerator_manufacturers: The accelerator manufacturers to include. You can specify ``nvidia`` , ``amd`` , ``amazon-web-services`` , or ``xilinx`` depending on your accelerator requirements.
|
|
32301
|
+
:param accelerator_names: The specific accelerator names to include. For example, you can specify ``a100`` , ``v100`` , ``k80`` , or other specific accelerator models.
|
|
32302
|
+
:param accelerator_total_memory_mib: The minimum and maximum total accelerator memory in mebibytes (MiB). This is important for GPU workloads that require specific amounts of video memory.
|
|
32303
|
+
:param accelerator_types: The accelerator types to include. You can specify ``gpu`` for graphics processing units, ``fpga`` for field programmable gate arrays, or ``inference`` for machine learning inference accelerators.
|
|
32304
|
+
:param allowed_instance_types: The instance types to include in the selection. When specified, Amazon ECS only considers these instance types, subject to the other requirements specified.
|
|
32305
|
+
:param bare_metal: Indicates whether to include bare metal instance types. Set to ``included`` to allow bare metal instances, ``excluded`` to exclude them, or ``required`` to use only bare metal instances.
|
|
32306
|
+
:param baseline_ebs_bandwidth_mbps: The minimum and maximum baseline Amazon EBS bandwidth in megabits per second (Mbps). This is important for workloads with high storage I/O requirements.
|
|
32307
|
+
:param burstable_performance: Indicates whether to include burstable performance instance types (T2, T3, T3a, T4g). Set to ``included`` to allow burstable instances, ``excluded`` to exclude them, or ``required`` to use only burstable instances.
|
|
32308
|
+
:param cpu_manufacturers: The CPU manufacturers to include or exclude. You can specify ``intel`` , ``amd`` , or ``amazon-web-services`` to control which CPU types are used for your workloads.
|
|
32309
|
+
:param excluded_instance_types: The instance types to exclude from selection. Use this to prevent Amazon ECS from selecting specific instance types that may not be suitable for your workloads.
|
|
32310
|
+
:param instance_generations: The instance generations to include. You can specify ``current`` to use the latest generation instances, or ``previous`` to include previous generation instances for cost optimization.
|
|
32311
|
+
:param local_storage: Indicates whether to include instance types with local storage. Set to ``included`` to allow local storage, ``excluded`` to exclude it, or ``required`` to use only instances with local storage.
|
|
32312
|
+
:param local_storage_types: The local storage types to include. You can specify ``hdd`` for hard disk drives, ``ssd`` for solid state drives, or both.
|
|
32313
|
+
:param max_spot_price_as_percentage_of_optimal_on_demand_price: The maximum price for Spot instances as a percentage of the optimal On-Demand price. This provides more precise cost control for Spot instance selection.
|
|
32314
|
+
:param memory_gib_per_v_cpu: The minimum and maximum amount of memory per vCPU in gibibytes (GiB). This helps ensure that instance types have the appropriate memory-to-CPU ratio for your workloads.
|
|
32315
|
+
:param network_bandwidth_gbps: The minimum and maximum network bandwidth in gigabits per second (Gbps). This is crucial for network-intensive workloads that require high throughput.
|
|
32316
|
+
:param network_interface_count: The minimum and maximum number of network interfaces for the instance types. This is useful for workloads that require multiple network interfaces.
|
|
32317
|
+
:param on_demand_max_price_percentage_over_lowest_price: The price protection threshold for On-Demand Instances, as a percentage higher than an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from either the lowest priced current generation instance types or, failing that, the lowest priced previous generation instance types that match your attributes. When Amazon ECS selects instance types with your attributes, we will exclude instance types whose price exceeds your specified threshold.
|
|
32318
|
+
:param require_hibernate_support: Indicates whether the instance types must support hibernation. When set to ``true`` , only instance types that support hibernation are selected.
|
|
32319
|
+
:param spot_max_price_percentage_over_lowest_price: The maximum price for Spot instances as a percentage over the lowest priced On-Demand instance. This helps control Spot instance costs while maintaining access to capacity.
|
|
32320
|
+
:param total_local_storage_gb: The minimum and maximum total local storage in gigabytes (GB) for instance types with local storage.
|
|
32321
|
+
|
|
32322
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancerequirementsrequest.html
|
|
32323
|
+
:exampleMetadata: fixture=_generated
|
|
32324
|
+
|
|
32325
|
+
Example::
|
|
32326
|
+
|
|
32327
|
+
# The code below shows an example of how to instantiate this type.
|
|
32328
|
+
# The values are placeholders you should change.
|
|
32329
|
+
from aws_cdk import aws_ecs as ecs
|
|
32330
|
+
|
|
32331
|
+
instance_requirements_request_property = ecs.CfnCapacityProvider.InstanceRequirementsRequestProperty(
|
|
32332
|
+
memory_mi_b=ecs.CfnCapacityProvider.MemoryMiBRequestProperty(
|
|
32333
|
+
min=123,
|
|
32334
|
+
|
|
32335
|
+
# the properties below are optional
|
|
32336
|
+
max=123
|
|
32337
|
+
),
|
|
32338
|
+
v_cpu_count=ecs.CfnCapacityProvider.VCpuCountRangeRequestProperty(
|
|
32339
|
+
min=123,
|
|
32340
|
+
|
|
32341
|
+
# the properties below are optional
|
|
32342
|
+
max=123
|
|
32343
|
+
),
|
|
32344
|
+
|
|
32345
|
+
# the properties below are optional
|
|
32346
|
+
accelerator_count=ecs.CfnCapacityProvider.AcceleratorCountRequestProperty(
|
|
32347
|
+
max=123,
|
|
32348
|
+
min=123
|
|
32349
|
+
),
|
|
32350
|
+
accelerator_manufacturers=["acceleratorManufacturers"],
|
|
32351
|
+
accelerator_names=["acceleratorNames"],
|
|
32352
|
+
accelerator_total_memory_mi_b=ecs.CfnCapacityProvider.AcceleratorTotalMemoryMiBRequestProperty(
|
|
32353
|
+
max=123,
|
|
32354
|
+
min=123
|
|
32355
|
+
),
|
|
32356
|
+
accelerator_types=["acceleratorTypes"],
|
|
32357
|
+
allowed_instance_types=["allowedInstanceTypes"],
|
|
32358
|
+
bare_metal="bareMetal",
|
|
32359
|
+
baseline_ebs_bandwidth_mbps=ecs.CfnCapacityProvider.BaselineEbsBandwidthMbpsRequestProperty(
|
|
32360
|
+
max=123,
|
|
32361
|
+
min=123
|
|
32362
|
+
),
|
|
32363
|
+
burstable_performance="burstablePerformance",
|
|
32364
|
+
cpu_manufacturers=["cpuManufacturers"],
|
|
32365
|
+
excluded_instance_types=["excludedInstanceTypes"],
|
|
32366
|
+
instance_generations=["instanceGenerations"],
|
|
32367
|
+
local_storage="localStorage",
|
|
32368
|
+
local_storage_types=["localStorageTypes"],
|
|
32369
|
+
max_spot_price_as_percentage_of_optimal_on_demand_price=123,
|
|
32370
|
+
memory_gi_bPer_vCpu=ecs.CfnCapacityProvider.MemoryGiBPerVCpuRequestProperty(
|
|
32371
|
+
max=123,
|
|
32372
|
+
min=123
|
|
32373
|
+
),
|
|
32374
|
+
network_bandwidth_gbps=ecs.CfnCapacityProvider.NetworkBandwidthGbpsRequestProperty(
|
|
32375
|
+
max=123,
|
|
32376
|
+
min=123
|
|
32377
|
+
),
|
|
32378
|
+
network_interface_count=ecs.CfnCapacityProvider.NetworkInterfaceCountRequestProperty(
|
|
32379
|
+
max=123,
|
|
32380
|
+
min=123
|
|
32381
|
+
),
|
|
32382
|
+
on_demand_max_price_percentage_over_lowest_price=123,
|
|
32383
|
+
require_hibernate_support=False,
|
|
32384
|
+
spot_max_price_percentage_over_lowest_price=123,
|
|
32385
|
+
total_local_storage_gb=ecs.CfnCapacityProvider.TotalLocalStorageGBRequestProperty(
|
|
32386
|
+
max=123,
|
|
32387
|
+
min=123
|
|
32388
|
+
)
|
|
32389
|
+
)
|
|
32390
|
+
'''
|
|
32391
|
+
if __debug__:
|
|
32392
|
+
type_hints = typing.get_type_hints(_typecheckingstub__d2fd7f319e7a3e49a0d45d342ee067f3719bf8c8519bbab1a3a3c81f41641bec)
|
|
32393
|
+
check_type(argname="argument memory_mib", value=memory_mib, expected_type=type_hints["memory_mib"])
|
|
32394
|
+
check_type(argname="argument v_cpu_count", value=v_cpu_count, expected_type=type_hints["v_cpu_count"])
|
|
32395
|
+
check_type(argname="argument accelerator_count", value=accelerator_count, expected_type=type_hints["accelerator_count"])
|
|
32396
|
+
check_type(argname="argument accelerator_manufacturers", value=accelerator_manufacturers, expected_type=type_hints["accelerator_manufacturers"])
|
|
32397
|
+
check_type(argname="argument accelerator_names", value=accelerator_names, expected_type=type_hints["accelerator_names"])
|
|
32398
|
+
check_type(argname="argument accelerator_total_memory_mib", value=accelerator_total_memory_mib, expected_type=type_hints["accelerator_total_memory_mib"])
|
|
32399
|
+
check_type(argname="argument accelerator_types", value=accelerator_types, expected_type=type_hints["accelerator_types"])
|
|
32400
|
+
check_type(argname="argument allowed_instance_types", value=allowed_instance_types, expected_type=type_hints["allowed_instance_types"])
|
|
32401
|
+
check_type(argname="argument bare_metal", value=bare_metal, expected_type=type_hints["bare_metal"])
|
|
32402
|
+
check_type(argname="argument baseline_ebs_bandwidth_mbps", value=baseline_ebs_bandwidth_mbps, expected_type=type_hints["baseline_ebs_bandwidth_mbps"])
|
|
32403
|
+
check_type(argname="argument burstable_performance", value=burstable_performance, expected_type=type_hints["burstable_performance"])
|
|
32404
|
+
check_type(argname="argument cpu_manufacturers", value=cpu_manufacturers, expected_type=type_hints["cpu_manufacturers"])
|
|
32405
|
+
check_type(argname="argument excluded_instance_types", value=excluded_instance_types, expected_type=type_hints["excluded_instance_types"])
|
|
32406
|
+
check_type(argname="argument instance_generations", value=instance_generations, expected_type=type_hints["instance_generations"])
|
|
32407
|
+
check_type(argname="argument local_storage", value=local_storage, expected_type=type_hints["local_storage"])
|
|
32408
|
+
check_type(argname="argument local_storage_types", value=local_storage_types, expected_type=type_hints["local_storage_types"])
|
|
32409
|
+
check_type(argname="argument max_spot_price_as_percentage_of_optimal_on_demand_price", value=max_spot_price_as_percentage_of_optimal_on_demand_price, expected_type=type_hints["max_spot_price_as_percentage_of_optimal_on_demand_price"])
|
|
32410
|
+
check_type(argname="argument memory_gib_per_v_cpu", value=memory_gib_per_v_cpu, expected_type=type_hints["memory_gib_per_v_cpu"])
|
|
32411
|
+
check_type(argname="argument network_bandwidth_gbps", value=network_bandwidth_gbps, expected_type=type_hints["network_bandwidth_gbps"])
|
|
32412
|
+
check_type(argname="argument network_interface_count", value=network_interface_count, expected_type=type_hints["network_interface_count"])
|
|
32413
|
+
check_type(argname="argument on_demand_max_price_percentage_over_lowest_price", value=on_demand_max_price_percentage_over_lowest_price, expected_type=type_hints["on_demand_max_price_percentage_over_lowest_price"])
|
|
32414
|
+
check_type(argname="argument require_hibernate_support", value=require_hibernate_support, expected_type=type_hints["require_hibernate_support"])
|
|
32415
|
+
check_type(argname="argument spot_max_price_percentage_over_lowest_price", value=spot_max_price_percentage_over_lowest_price, expected_type=type_hints["spot_max_price_percentage_over_lowest_price"])
|
|
32416
|
+
check_type(argname="argument total_local_storage_gb", value=total_local_storage_gb, expected_type=type_hints["total_local_storage_gb"])
|
|
32417
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
32418
|
+
"memory_mib": memory_mib,
|
|
32419
|
+
"v_cpu_count": v_cpu_count,
|
|
32420
|
+
}
|
|
32421
|
+
if accelerator_count is not None:
|
|
32422
|
+
self._values["accelerator_count"] = accelerator_count
|
|
32423
|
+
if accelerator_manufacturers is not None:
|
|
32424
|
+
self._values["accelerator_manufacturers"] = accelerator_manufacturers
|
|
32425
|
+
if accelerator_names is not None:
|
|
32426
|
+
self._values["accelerator_names"] = accelerator_names
|
|
32427
|
+
if accelerator_total_memory_mib is not None:
|
|
32428
|
+
self._values["accelerator_total_memory_mib"] = accelerator_total_memory_mib
|
|
32429
|
+
if accelerator_types is not None:
|
|
32430
|
+
self._values["accelerator_types"] = accelerator_types
|
|
32431
|
+
if allowed_instance_types is not None:
|
|
32432
|
+
self._values["allowed_instance_types"] = allowed_instance_types
|
|
32433
|
+
if bare_metal is not None:
|
|
32434
|
+
self._values["bare_metal"] = bare_metal
|
|
32435
|
+
if baseline_ebs_bandwidth_mbps is not None:
|
|
32436
|
+
self._values["baseline_ebs_bandwidth_mbps"] = baseline_ebs_bandwidth_mbps
|
|
32437
|
+
if burstable_performance is not None:
|
|
32438
|
+
self._values["burstable_performance"] = burstable_performance
|
|
32439
|
+
if cpu_manufacturers is not None:
|
|
32440
|
+
self._values["cpu_manufacturers"] = cpu_manufacturers
|
|
32441
|
+
if excluded_instance_types is not None:
|
|
32442
|
+
self._values["excluded_instance_types"] = excluded_instance_types
|
|
32443
|
+
if instance_generations is not None:
|
|
32444
|
+
self._values["instance_generations"] = instance_generations
|
|
32445
|
+
if local_storage is not None:
|
|
32446
|
+
self._values["local_storage"] = local_storage
|
|
32447
|
+
if local_storage_types is not None:
|
|
32448
|
+
self._values["local_storage_types"] = local_storage_types
|
|
32449
|
+
if max_spot_price_as_percentage_of_optimal_on_demand_price is not None:
|
|
32450
|
+
self._values["max_spot_price_as_percentage_of_optimal_on_demand_price"] = max_spot_price_as_percentage_of_optimal_on_demand_price
|
|
32451
|
+
if memory_gib_per_v_cpu is not None:
|
|
32452
|
+
self._values["memory_gib_per_v_cpu"] = memory_gib_per_v_cpu
|
|
32453
|
+
if network_bandwidth_gbps is not None:
|
|
32454
|
+
self._values["network_bandwidth_gbps"] = network_bandwidth_gbps
|
|
32455
|
+
if network_interface_count is not None:
|
|
32456
|
+
self._values["network_interface_count"] = network_interface_count
|
|
32457
|
+
if on_demand_max_price_percentage_over_lowest_price is not None:
|
|
32458
|
+
self._values["on_demand_max_price_percentage_over_lowest_price"] = on_demand_max_price_percentage_over_lowest_price
|
|
32459
|
+
if require_hibernate_support is not None:
|
|
32460
|
+
self._values["require_hibernate_support"] = require_hibernate_support
|
|
32461
|
+
if spot_max_price_percentage_over_lowest_price is not None:
|
|
32462
|
+
self._values["spot_max_price_percentage_over_lowest_price"] = spot_max_price_percentage_over_lowest_price
|
|
32463
|
+
if total_local_storage_gb is not None:
|
|
32464
|
+
self._values["total_local_storage_gb"] = total_local_storage_gb
|
|
32465
|
+
|
|
32466
|
+
@builtins.property
|
|
32467
|
+
def memory_mib(
|
|
32468
|
+
self,
|
|
32469
|
+
) -> typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.MemoryMiBRequestProperty"]:
|
|
32470
|
+
'''The minimum and maximum amount of memory in mebibytes (MiB) for the instance types.
|
|
32471
|
+
|
|
32472
|
+
Amazon ECS selects instance types that have memory within this range.
|
|
32473
|
+
|
|
32474
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancerequirementsrequest.html#cfn-ecs-capacityprovider-instancerequirementsrequest-memorymib
|
|
32475
|
+
'''
|
|
32476
|
+
result = self._values.get("memory_mib")
|
|
32477
|
+
assert result is not None, "Required property 'memory_mib' is missing"
|
|
32478
|
+
return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.MemoryMiBRequestProperty"], result)
|
|
32479
|
+
|
|
32480
|
+
@builtins.property
|
|
32481
|
+
def v_cpu_count(
|
|
32482
|
+
self,
|
|
32483
|
+
) -> typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.VCpuCountRangeRequestProperty"]:
|
|
32484
|
+
'''The minimum and maximum number of vCPUs for the instance types.
|
|
32485
|
+
|
|
32486
|
+
Amazon ECS selects instance types that have vCPU counts within this range.
|
|
32487
|
+
|
|
32488
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancerequirementsrequest.html#cfn-ecs-capacityprovider-instancerequirementsrequest-vcpucount
|
|
32489
|
+
'''
|
|
32490
|
+
result = self._values.get("v_cpu_count")
|
|
32491
|
+
assert result is not None, "Required property 'v_cpu_count' is missing"
|
|
32492
|
+
return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.VCpuCountRangeRequestProperty"], result)
|
|
32493
|
+
|
|
32494
|
+
@builtins.property
|
|
32495
|
+
def accelerator_count(
|
|
32496
|
+
self,
|
|
32497
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.AcceleratorCountRequestProperty"]]:
|
|
32498
|
+
'''The minimum and maximum number of accelerators for the instance types.
|
|
32499
|
+
|
|
32500
|
+
This is used when you need instances with specific numbers of GPUs or other accelerators.
|
|
32501
|
+
|
|
32502
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancerequirementsrequest.html#cfn-ecs-capacityprovider-instancerequirementsrequest-acceleratorcount
|
|
32503
|
+
'''
|
|
32504
|
+
result = self._values.get("accelerator_count")
|
|
32505
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.AcceleratorCountRequestProperty"]], result)
|
|
32506
|
+
|
|
32507
|
+
@builtins.property
|
|
32508
|
+
def accelerator_manufacturers(
|
|
32509
|
+
self,
|
|
32510
|
+
) -> typing.Optional[typing.List[builtins.str]]:
|
|
32511
|
+
'''The accelerator manufacturers to include.
|
|
32512
|
+
|
|
32513
|
+
You can specify ``nvidia`` , ``amd`` , ``amazon-web-services`` , or ``xilinx`` depending on your accelerator requirements.
|
|
32514
|
+
|
|
32515
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancerequirementsrequest.html#cfn-ecs-capacityprovider-instancerequirementsrequest-acceleratormanufacturers
|
|
32516
|
+
'''
|
|
32517
|
+
result = self._values.get("accelerator_manufacturers")
|
|
32518
|
+
return typing.cast(typing.Optional[typing.List[builtins.str]], result)
|
|
32519
|
+
|
|
32520
|
+
@builtins.property
|
|
32521
|
+
def accelerator_names(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
32522
|
+
'''The specific accelerator names to include.
|
|
32523
|
+
|
|
32524
|
+
For example, you can specify ``a100`` , ``v100`` , ``k80`` , or other specific accelerator models.
|
|
32525
|
+
|
|
32526
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancerequirementsrequest.html#cfn-ecs-capacityprovider-instancerequirementsrequest-acceleratornames
|
|
32527
|
+
'''
|
|
32528
|
+
result = self._values.get("accelerator_names")
|
|
32529
|
+
return typing.cast(typing.Optional[typing.List[builtins.str]], result)
|
|
32530
|
+
|
|
32531
|
+
@builtins.property
|
|
32532
|
+
def accelerator_total_memory_mib(
|
|
32533
|
+
self,
|
|
32534
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.AcceleratorTotalMemoryMiBRequestProperty"]]:
|
|
32535
|
+
'''The minimum and maximum total accelerator memory in mebibytes (MiB).
|
|
32536
|
+
|
|
32537
|
+
This is important for GPU workloads that require specific amounts of video memory.
|
|
32538
|
+
|
|
32539
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancerequirementsrequest.html#cfn-ecs-capacityprovider-instancerequirementsrequest-acceleratortotalmemorymib
|
|
32540
|
+
'''
|
|
32541
|
+
result = self._values.get("accelerator_total_memory_mib")
|
|
32542
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.AcceleratorTotalMemoryMiBRequestProperty"]], result)
|
|
32543
|
+
|
|
32544
|
+
@builtins.property
|
|
32545
|
+
def accelerator_types(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
32546
|
+
'''The accelerator types to include.
|
|
32547
|
+
|
|
32548
|
+
You can specify ``gpu`` for graphics processing units, ``fpga`` for field programmable gate arrays, or ``inference`` for machine learning inference accelerators.
|
|
32549
|
+
|
|
32550
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancerequirementsrequest.html#cfn-ecs-capacityprovider-instancerequirementsrequest-acceleratortypes
|
|
32551
|
+
'''
|
|
32552
|
+
result = self._values.get("accelerator_types")
|
|
32553
|
+
return typing.cast(typing.Optional[typing.List[builtins.str]], result)
|
|
32554
|
+
|
|
32555
|
+
@builtins.property
|
|
32556
|
+
def allowed_instance_types(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
32557
|
+
'''The instance types to include in the selection.
|
|
32558
|
+
|
|
32559
|
+
When specified, Amazon ECS only considers these instance types, subject to the other requirements specified.
|
|
32560
|
+
|
|
32561
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancerequirementsrequest.html#cfn-ecs-capacityprovider-instancerequirementsrequest-allowedinstancetypes
|
|
32562
|
+
'''
|
|
32563
|
+
result = self._values.get("allowed_instance_types")
|
|
32564
|
+
return typing.cast(typing.Optional[typing.List[builtins.str]], result)
|
|
32565
|
+
|
|
32566
|
+
@builtins.property
|
|
32567
|
+
def bare_metal(self) -> typing.Optional[builtins.str]:
|
|
32568
|
+
'''Indicates whether to include bare metal instance types.
|
|
32569
|
+
|
|
32570
|
+
Set to ``included`` to allow bare metal instances, ``excluded`` to exclude them, or ``required`` to use only bare metal instances.
|
|
32571
|
+
|
|
32572
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancerequirementsrequest.html#cfn-ecs-capacityprovider-instancerequirementsrequest-baremetal
|
|
32573
|
+
'''
|
|
32574
|
+
result = self._values.get("bare_metal")
|
|
32575
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
32576
|
+
|
|
32577
|
+
@builtins.property
|
|
32578
|
+
def baseline_ebs_bandwidth_mbps(
|
|
32579
|
+
self,
|
|
32580
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.BaselineEbsBandwidthMbpsRequestProperty"]]:
|
|
32581
|
+
'''The minimum and maximum baseline Amazon EBS bandwidth in megabits per second (Mbps).
|
|
32582
|
+
|
|
32583
|
+
This is important for workloads with high storage I/O requirements.
|
|
32584
|
+
|
|
32585
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancerequirementsrequest.html#cfn-ecs-capacityprovider-instancerequirementsrequest-baselineebsbandwidthmbps
|
|
32586
|
+
'''
|
|
32587
|
+
result = self._values.get("baseline_ebs_bandwidth_mbps")
|
|
32588
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.BaselineEbsBandwidthMbpsRequestProperty"]], result)
|
|
32589
|
+
|
|
32590
|
+
@builtins.property
|
|
32591
|
+
def burstable_performance(self) -> typing.Optional[builtins.str]:
|
|
32592
|
+
'''Indicates whether to include burstable performance instance types (T2, T3, T3a, T4g).
|
|
32593
|
+
|
|
32594
|
+
Set to ``included`` to allow burstable instances, ``excluded`` to exclude them, or ``required`` to use only burstable instances.
|
|
32595
|
+
|
|
32596
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancerequirementsrequest.html#cfn-ecs-capacityprovider-instancerequirementsrequest-burstableperformance
|
|
32597
|
+
'''
|
|
32598
|
+
result = self._values.get("burstable_performance")
|
|
32599
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
32600
|
+
|
|
32601
|
+
@builtins.property
|
|
32602
|
+
def cpu_manufacturers(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
32603
|
+
'''The CPU manufacturers to include or exclude.
|
|
32604
|
+
|
|
32605
|
+
You can specify ``intel`` , ``amd`` , or ``amazon-web-services`` to control which CPU types are used for your workloads.
|
|
32606
|
+
|
|
32607
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancerequirementsrequest.html#cfn-ecs-capacityprovider-instancerequirementsrequest-cpumanufacturers
|
|
32608
|
+
'''
|
|
32609
|
+
result = self._values.get("cpu_manufacturers")
|
|
32610
|
+
return typing.cast(typing.Optional[typing.List[builtins.str]], result)
|
|
32611
|
+
|
|
32612
|
+
@builtins.property
|
|
32613
|
+
def excluded_instance_types(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
32614
|
+
'''The instance types to exclude from selection.
|
|
32615
|
+
|
|
32616
|
+
Use this to prevent Amazon ECS from selecting specific instance types that may not be suitable for your workloads.
|
|
32617
|
+
|
|
32618
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancerequirementsrequest.html#cfn-ecs-capacityprovider-instancerequirementsrequest-excludedinstancetypes
|
|
32619
|
+
'''
|
|
32620
|
+
result = self._values.get("excluded_instance_types")
|
|
32621
|
+
return typing.cast(typing.Optional[typing.List[builtins.str]], result)
|
|
32622
|
+
|
|
32623
|
+
@builtins.property
|
|
32624
|
+
def instance_generations(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
32625
|
+
'''The instance generations to include.
|
|
32626
|
+
|
|
32627
|
+
You can specify ``current`` to use the latest generation instances, or ``previous`` to include previous generation instances for cost optimization.
|
|
32628
|
+
|
|
32629
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancerequirementsrequest.html#cfn-ecs-capacityprovider-instancerequirementsrequest-instancegenerations
|
|
32630
|
+
'''
|
|
32631
|
+
result = self._values.get("instance_generations")
|
|
32632
|
+
return typing.cast(typing.Optional[typing.List[builtins.str]], result)
|
|
32633
|
+
|
|
32634
|
+
@builtins.property
|
|
32635
|
+
def local_storage(self) -> typing.Optional[builtins.str]:
|
|
32636
|
+
'''Indicates whether to include instance types with local storage.
|
|
32637
|
+
|
|
32638
|
+
Set to ``included`` to allow local storage, ``excluded`` to exclude it, or ``required`` to use only instances with local storage.
|
|
32639
|
+
|
|
32640
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancerequirementsrequest.html#cfn-ecs-capacityprovider-instancerequirementsrequest-localstorage
|
|
32641
|
+
'''
|
|
32642
|
+
result = self._values.get("local_storage")
|
|
32643
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
32644
|
+
|
|
32645
|
+
@builtins.property
|
|
32646
|
+
def local_storage_types(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
32647
|
+
'''The local storage types to include.
|
|
32648
|
+
|
|
32649
|
+
You can specify ``hdd`` for hard disk drives, ``ssd`` for solid state drives, or both.
|
|
32650
|
+
|
|
32651
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancerequirementsrequest.html#cfn-ecs-capacityprovider-instancerequirementsrequest-localstoragetypes
|
|
32652
|
+
'''
|
|
32653
|
+
result = self._values.get("local_storage_types")
|
|
32654
|
+
return typing.cast(typing.Optional[typing.List[builtins.str]], result)
|
|
32655
|
+
|
|
32656
|
+
@builtins.property
|
|
32657
|
+
def max_spot_price_as_percentage_of_optimal_on_demand_price(
|
|
32658
|
+
self,
|
|
32659
|
+
) -> typing.Optional[jsii.Number]:
|
|
32660
|
+
'''The maximum price for Spot instances as a percentage of the optimal On-Demand price.
|
|
32661
|
+
|
|
32662
|
+
This provides more precise cost control for Spot instance selection.
|
|
32663
|
+
|
|
32664
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancerequirementsrequest.html#cfn-ecs-capacityprovider-instancerequirementsrequest-maxspotpriceaspercentageofoptimalondemandprice
|
|
32665
|
+
'''
|
|
32666
|
+
result = self._values.get("max_spot_price_as_percentage_of_optimal_on_demand_price")
|
|
32667
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
32668
|
+
|
|
32669
|
+
@builtins.property
|
|
32670
|
+
def memory_gib_per_v_cpu(
|
|
32671
|
+
self,
|
|
32672
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.MemoryGiBPerVCpuRequestProperty"]]:
|
|
32673
|
+
'''The minimum and maximum amount of memory per vCPU in gibibytes (GiB).
|
|
32674
|
+
|
|
32675
|
+
This helps ensure that instance types have the appropriate memory-to-CPU ratio for your workloads.
|
|
32676
|
+
|
|
32677
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancerequirementsrequest.html#cfn-ecs-capacityprovider-instancerequirementsrequest-memorygibpervcpu
|
|
32678
|
+
'''
|
|
32679
|
+
result = self._values.get("memory_gib_per_v_cpu")
|
|
32680
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.MemoryGiBPerVCpuRequestProperty"]], result)
|
|
32681
|
+
|
|
32682
|
+
@builtins.property
|
|
32683
|
+
def network_bandwidth_gbps(
|
|
32684
|
+
self,
|
|
32685
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.NetworkBandwidthGbpsRequestProperty"]]:
|
|
32686
|
+
'''The minimum and maximum network bandwidth in gigabits per second (Gbps).
|
|
32687
|
+
|
|
32688
|
+
This is crucial for network-intensive workloads that require high throughput.
|
|
32689
|
+
|
|
32690
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancerequirementsrequest.html#cfn-ecs-capacityprovider-instancerequirementsrequest-networkbandwidthgbps
|
|
32691
|
+
'''
|
|
32692
|
+
result = self._values.get("network_bandwidth_gbps")
|
|
32693
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.NetworkBandwidthGbpsRequestProperty"]], result)
|
|
32694
|
+
|
|
32695
|
+
@builtins.property
|
|
32696
|
+
def network_interface_count(
|
|
32697
|
+
self,
|
|
32698
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.NetworkInterfaceCountRequestProperty"]]:
|
|
32699
|
+
'''The minimum and maximum number of network interfaces for the instance types.
|
|
32700
|
+
|
|
32701
|
+
This is useful for workloads that require multiple network interfaces.
|
|
32702
|
+
|
|
32703
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancerequirementsrequest.html#cfn-ecs-capacityprovider-instancerequirementsrequest-networkinterfacecount
|
|
32704
|
+
'''
|
|
32705
|
+
result = self._values.get("network_interface_count")
|
|
32706
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.NetworkInterfaceCountRequestProperty"]], result)
|
|
32707
|
+
|
|
32708
|
+
@builtins.property
|
|
32709
|
+
def on_demand_max_price_percentage_over_lowest_price(
|
|
32710
|
+
self,
|
|
32711
|
+
) -> typing.Optional[jsii.Number]:
|
|
32712
|
+
'''The price protection threshold for On-Demand Instances, as a percentage higher than an identified On-Demand price.
|
|
32713
|
+
|
|
32714
|
+
The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from either the lowest priced current generation instance types or, failing that, the lowest priced previous generation instance types that match your attributes. When Amazon ECS selects instance types with your attributes, we will exclude instance types whose price exceeds your specified threshold.
|
|
32715
|
+
|
|
32716
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancerequirementsrequest.html#cfn-ecs-capacityprovider-instancerequirementsrequest-ondemandmaxpricepercentageoverlowestprice
|
|
32717
|
+
'''
|
|
32718
|
+
result = self._values.get("on_demand_max_price_percentage_over_lowest_price")
|
|
32719
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
32720
|
+
|
|
32721
|
+
@builtins.property
|
|
32722
|
+
def require_hibernate_support(
|
|
32723
|
+
self,
|
|
32724
|
+
) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
|
|
32725
|
+
'''Indicates whether the instance types must support hibernation.
|
|
32726
|
+
|
|
32727
|
+
When set to ``true`` , only instance types that support hibernation are selected.
|
|
32728
|
+
|
|
32729
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancerequirementsrequest.html#cfn-ecs-capacityprovider-instancerequirementsrequest-requirehibernatesupport
|
|
32730
|
+
'''
|
|
32731
|
+
result = self._values.get("require_hibernate_support")
|
|
32732
|
+
return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
|
|
32733
|
+
|
|
32734
|
+
@builtins.property
|
|
32735
|
+
def spot_max_price_percentage_over_lowest_price(
|
|
32736
|
+
self,
|
|
32737
|
+
) -> typing.Optional[jsii.Number]:
|
|
32738
|
+
'''The maximum price for Spot instances as a percentage over the lowest priced On-Demand instance.
|
|
32739
|
+
|
|
32740
|
+
This helps control Spot instance costs while maintaining access to capacity.
|
|
32741
|
+
|
|
32742
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancerequirementsrequest.html#cfn-ecs-capacityprovider-instancerequirementsrequest-spotmaxpricepercentageoverlowestprice
|
|
32743
|
+
'''
|
|
32744
|
+
result = self._values.get("spot_max_price_percentage_over_lowest_price")
|
|
32745
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
32746
|
+
|
|
32747
|
+
@builtins.property
|
|
32748
|
+
def total_local_storage_gb(
|
|
32749
|
+
self,
|
|
32750
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.TotalLocalStorageGBRequestProperty"]]:
|
|
32751
|
+
'''The minimum and maximum total local storage in gigabytes (GB) for instance types with local storage.
|
|
32752
|
+
|
|
32753
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancerequirementsrequest.html#cfn-ecs-capacityprovider-instancerequirementsrequest-totallocalstoragegb
|
|
32754
|
+
'''
|
|
32755
|
+
result = self._values.get("total_local_storage_gb")
|
|
32756
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.TotalLocalStorageGBRequestProperty"]], result)
|
|
32757
|
+
|
|
32758
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
32759
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
32760
|
+
|
|
32761
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
32762
|
+
return not (rhs == self)
|
|
32763
|
+
|
|
32764
|
+
def __repr__(self) -> str:
|
|
32765
|
+
return "InstanceRequirementsRequestProperty(%s)" % ", ".join(
|
|
32766
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
32767
|
+
)
|
|
32768
|
+
|
|
32769
|
+
@jsii.data_type(
|
|
32770
|
+
jsii_type="aws-cdk-lib.aws_ecs.CfnCapacityProvider.ManagedInstancesNetworkConfigurationProperty",
|
|
32771
|
+
jsii_struct_bases=[],
|
|
32772
|
+
name_mapping={"subnets": "subnets", "security_groups": "securityGroups"},
|
|
32773
|
+
)
|
|
32774
|
+
class ManagedInstancesNetworkConfigurationProperty:
|
|
32775
|
+
def __init__(
|
|
32776
|
+
self,
|
|
32777
|
+
*,
|
|
32778
|
+
subnets: typing.Sequence[builtins.str],
|
|
32779
|
+
security_groups: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
32780
|
+
) -> None:
|
|
32781
|
+
'''The network configuration for Amazon ECS Managed Instances.
|
|
32782
|
+
|
|
32783
|
+
This specifies the VPC subnets and security groups that instances use for network connectivity. Amazon ECS Managed Instances support multiple network modes including ``awsvpc`` (instances receive ENIs for task isolation), ``host`` (instances share network namespace with tasks), and ``none`` (no external network connectivity), ensuring backward compatibility for migrating workloads from Fargate or Amazon EC2.
|
|
32784
|
+
|
|
32785
|
+
:param subnets: The list of subnet IDs where Amazon ECS can launch Amazon ECS Managed Instances. Instances are distributed across the specified subnets for high availability. All subnets must be in the same VPC.
|
|
32786
|
+
:param security_groups: The list of security group IDs to apply to Amazon ECS Managed Instances. These security groups control the network traffic allowed to and from the instances.
|
|
32787
|
+
|
|
32788
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedinstancesnetworkconfiguration.html
|
|
32789
|
+
:exampleMetadata: fixture=_generated
|
|
32790
|
+
|
|
32791
|
+
Example::
|
|
32792
|
+
|
|
32793
|
+
# The code below shows an example of how to instantiate this type.
|
|
32794
|
+
# The values are placeholders you should change.
|
|
32795
|
+
from aws_cdk import aws_ecs as ecs
|
|
32796
|
+
|
|
32797
|
+
managed_instances_network_configuration_property = ecs.CfnCapacityProvider.ManagedInstancesNetworkConfigurationProperty(
|
|
32798
|
+
subnets=["subnets"],
|
|
32799
|
+
|
|
32800
|
+
# the properties below are optional
|
|
32801
|
+
security_groups=["securityGroups"]
|
|
32802
|
+
)
|
|
32803
|
+
'''
|
|
32804
|
+
if __debug__:
|
|
32805
|
+
type_hints = typing.get_type_hints(_typecheckingstub__b8cf486af6edb309081654dbba3fcab445314c93a7a69231f0ca16b32fff9ae0)
|
|
32806
|
+
check_type(argname="argument subnets", value=subnets, expected_type=type_hints["subnets"])
|
|
32807
|
+
check_type(argname="argument security_groups", value=security_groups, expected_type=type_hints["security_groups"])
|
|
32808
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
32809
|
+
"subnets": subnets,
|
|
32810
|
+
}
|
|
32811
|
+
if security_groups is not None:
|
|
32812
|
+
self._values["security_groups"] = security_groups
|
|
32813
|
+
|
|
32814
|
+
@builtins.property
|
|
32815
|
+
def subnets(self) -> typing.List[builtins.str]:
|
|
32816
|
+
'''The list of subnet IDs where Amazon ECS can launch Amazon ECS Managed Instances.
|
|
32817
|
+
|
|
32818
|
+
Instances are distributed across the specified subnets for high availability. All subnets must be in the same VPC.
|
|
32819
|
+
|
|
32820
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedinstancesnetworkconfiguration.html#cfn-ecs-capacityprovider-managedinstancesnetworkconfiguration-subnets
|
|
32821
|
+
'''
|
|
32822
|
+
result = self._values.get("subnets")
|
|
32823
|
+
assert result is not None, "Required property 'subnets' is missing"
|
|
32824
|
+
return typing.cast(typing.List[builtins.str], result)
|
|
32825
|
+
|
|
32826
|
+
@builtins.property
|
|
32827
|
+
def security_groups(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
32828
|
+
'''The list of security group IDs to apply to Amazon ECS Managed Instances.
|
|
32829
|
+
|
|
32830
|
+
These security groups control the network traffic allowed to and from the instances.
|
|
32831
|
+
|
|
32832
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedinstancesnetworkconfiguration.html#cfn-ecs-capacityprovider-managedinstancesnetworkconfiguration-securitygroups
|
|
32833
|
+
'''
|
|
32834
|
+
result = self._values.get("security_groups")
|
|
32835
|
+
return typing.cast(typing.Optional[typing.List[builtins.str]], result)
|
|
32836
|
+
|
|
32837
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
32838
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
32839
|
+
|
|
32840
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
32841
|
+
return not (rhs == self)
|
|
32842
|
+
|
|
32843
|
+
def __repr__(self) -> str:
|
|
32844
|
+
return "ManagedInstancesNetworkConfigurationProperty(%s)" % ", ".join(
|
|
32845
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
32846
|
+
)
|
|
32847
|
+
|
|
32848
|
+
@jsii.data_type(
|
|
32849
|
+
jsii_type="aws-cdk-lib.aws_ecs.CfnCapacityProvider.ManagedInstancesProviderProperty",
|
|
32850
|
+
jsii_struct_bases=[],
|
|
32851
|
+
name_mapping={
|
|
32852
|
+
"infrastructure_role_arn": "infrastructureRoleArn",
|
|
32853
|
+
"instance_launch_template": "instanceLaunchTemplate",
|
|
32854
|
+
"propagate_tags": "propagateTags",
|
|
32855
|
+
},
|
|
32856
|
+
)
|
|
32857
|
+
class ManagedInstancesProviderProperty:
|
|
32858
|
+
def __init__(
|
|
32859
|
+
self,
|
|
32860
|
+
*,
|
|
32861
|
+
infrastructure_role_arn: builtins.str,
|
|
32862
|
+
instance_launch_template: typing.Union[_IResolvable_da3f097b, typing.Union["CfnCapacityProvider.InstanceLaunchTemplateProperty", typing.Dict[builtins.str, typing.Any]]],
|
|
32863
|
+
propagate_tags: typing.Optional[builtins.str] = None,
|
|
32864
|
+
) -> None:
|
|
32865
|
+
'''The configuration for a Amazon ECS Managed Instances provider.
|
|
32866
|
+
|
|
32867
|
+
Amazon ECS uses this configuration to automatically launch, manage, and terminate Amazon EC2 instances on your behalf. Managed instances provide access to the full range of Amazon EC2 instance types and features while offloading infrastructure management to AWS .
|
|
32868
|
+
|
|
32869
|
+
:param infrastructure_role_arn: The Amazon Resource Name (ARN) of the infrastructure role that Amazon ECS assumes to manage instances. This role must include permissions for Amazon EC2 instance lifecycle management, networking, and any additional AWS services required for your workloads. For more information, see `Amazon ECS infrastructure IAM role <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/infrastructure_IAM_role.html>`_ in the *Amazon ECS Developer Guide* .
|
|
32870
|
+
:param instance_launch_template: The launch template that defines how Amazon ECS launches Amazon ECS Managed Instances. This includes the instance profile for your tasks, network and storage configuration, and instance requirements that determine which Amazon EC2 instance types can be used. For more information, see `Store instance launch parameters in Amazon EC2 launch templates <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html>`_ in the *Amazon EC2 User Guide* .
|
|
32871
|
+
:param propagate_tags: Determines whether tags from the capacity provider are automatically applied to Amazon ECS Managed Instances. This helps with cost allocation and resource management by ensuring consistent tagging across your infrastructure.
|
|
32872
|
+
|
|
32873
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedinstancesprovider.html
|
|
32874
|
+
:exampleMetadata: fixture=_generated
|
|
32875
|
+
|
|
32876
|
+
Example::
|
|
32877
|
+
|
|
32878
|
+
# The code below shows an example of how to instantiate this type.
|
|
32879
|
+
# The values are placeholders you should change.
|
|
32880
|
+
from aws_cdk import aws_ecs as ecs
|
|
32881
|
+
|
|
32882
|
+
managed_instances_provider_property = ecs.CfnCapacityProvider.ManagedInstancesProviderProperty(
|
|
32883
|
+
infrastructure_role_arn="infrastructureRoleArn",
|
|
32884
|
+
instance_launch_template=ecs.CfnCapacityProvider.InstanceLaunchTemplateProperty(
|
|
32885
|
+
ec2_instance_profile_arn="ec2InstanceProfileArn",
|
|
32886
|
+
network_configuration=ecs.CfnCapacityProvider.ManagedInstancesNetworkConfigurationProperty(
|
|
32887
|
+
subnets=["subnets"],
|
|
32888
|
+
|
|
32889
|
+
# the properties below are optional
|
|
32890
|
+
security_groups=["securityGroups"]
|
|
32891
|
+
),
|
|
32892
|
+
|
|
32893
|
+
# the properties below are optional
|
|
32894
|
+
instance_requirements=ecs.CfnCapacityProvider.InstanceRequirementsRequestProperty(
|
|
32895
|
+
memory_mi_b=ecs.CfnCapacityProvider.MemoryMiBRequestProperty(
|
|
32896
|
+
min=123,
|
|
32897
|
+
|
|
32898
|
+
# the properties below are optional
|
|
32899
|
+
max=123
|
|
32900
|
+
),
|
|
32901
|
+
v_cpu_count=ecs.CfnCapacityProvider.VCpuCountRangeRequestProperty(
|
|
32902
|
+
min=123,
|
|
32903
|
+
|
|
32904
|
+
# the properties below are optional
|
|
32905
|
+
max=123
|
|
32906
|
+
),
|
|
32907
|
+
|
|
32908
|
+
# the properties below are optional
|
|
32909
|
+
accelerator_count=ecs.CfnCapacityProvider.AcceleratorCountRequestProperty(
|
|
32910
|
+
max=123,
|
|
32911
|
+
min=123
|
|
32912
|
+
),
|
|
32913
|
+
accelerator_manufacturers=["acceleratorManufacturers"],
|
|
32914
|
+
accelerator_names=["acceleratorNames"],
|
|
32915
|
+
accelerator_total_memory_mi_b=ecs.CfnCapacityProvider.AcceleratorTotalMemoryMiBRequestProperty(
|
|
32916
|
+
max=123,
|
|
32917
|
+
min=123
|
|
32918
|
+
),
|
|
32919
|
+
accelerator_types=["acceleratorTypes"],
|
|
32920
|
+
allowed_instance_types=["allowedInstanceTypes"],
|
|
32921
|
+
bare_metal="bareMetal",
|
|
32922
|
+
baseline_ebs_bandwidth_mbps=ecs.CfnCapacityProvider.BaselineEbsBandwidthMbpsRequestProperty(
|
|
32923
|
+
max=123,
|
|
32924
|
+
min=123
|
|
32925
|
+
),
|
|
32926
|
+
burstable_performance="burstablePerformance",
|
|
32927
|
+
cpu_manufacturers=["cpuManufacturers"],
|
|
32928
|
+
excluded_instance_types=["excludedInstanceTypes"],
|
|
32929
|
+
instance_generations=["instanceGenerations"],
|
|
32930
|
+
local_storage="localStorage",
|
|
32931
|
+
local_storage_types=["localStorageTypes"],
|
|
32932
|
+
max_spot_price_as_percentage_of_optimal_on_demand_price=123,
|
|
32933
|
+
memory_gi_bPer_vCpu=ecs.CfnCapacityProvider.MemoryGiBPerVCpuRequestProperty(
|
|
32934
|
+
max=123,
|
|
32935
|
+
min=123
|
|
32936
|
+
),
|
|
32937
|
+
network_bandwidth_gbps=ecs.CfnCapacityProvider.NetworkBandwidthGbpsRequestProperty(
|
|
32938
|
+
max=123,
|
|
32939
|
+
min=123
|
|
32940
|
+
),
|
|
32941
|
+
network_interface_count=ecs.CfnCapacityProvider.NetworkInterfaceCountRequestProperty(
|
|
32942
|
+
max=123,
|
|
32943
|
+
min=123
|
|
32944
|
+
),
|
|
32945
|
+
on_demand_max_price_percentage_over_lowest_price=123,
|
|
32946
|
+
require_hibernate_support=False,
|
|
32947
|
+
spot_max_price_percentage_over_lowest_price=123,
|
|
32948
|
+
total_local_storage_gb=ecs.CfnCapacityProvider.TotalLocalStorageGBRequestProperty(
|
|
32949
|
+
max=123,
|
|
32950
|
+
min=123
|
|
32951
|
+
)
|
|
32952
|
+
),
|
|
32953
|
+
monitoring="monitoring",
|
|
32954
|
+
storage_configuration=ecs.CfnCapacityProvider.ManagedInstancesStorageConfigurationProperty(
|
|
32955
|
+
storage_size_gi_b=123
|
|
32956
|
+
)
|
|
32957
|
+
),
|
|
32958
|
+
|
|
32959
|
+
# the properties below are optional
|
|
32960
|
+
propagate_tags="propagateTags"
|
|
32961
|
+
)
|
|
32962
|
+
'''
|
|
32963
|
+
if __debug__:
|
|
32964
|
+
type_hints = typing.get_type_hints(_typecheckingstub__45a3888e29c1b6fb29bc3dbf90f279f8c543b8924bb51956a75f3290eca0b7c9)
|
|
32965
|
+
check_type(argname="argument infrastructure_role_arn", value=infrastructure_role_arn, expected_type=type_hints["infrastructure_role_arn"])
|
|
32966
|
+
check_type(argname="argument instance_launch_template", value=instance_launch_template, expected_type=type_hints["instance_launch_template"])
|
|
32967
|
+
check_type(argname="argument propagate_tags", value=propagate_tags, expected_type=type_hints["propagate_tags"])
|
|
32968
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
32969
|
+
"infrastructure_role_arn": infrastructure_role_arn,
|
|
32970
|
+
"instance_launch_template": instance_launch_template,
|
|
32971
|
+
}
|
|
32972
|
+
if propagate_tags is not None:
|
|
32973
|
+
self._values["propagate_tags"] = propagate_tags
|
|
32974
|
+
|
|
32975
|
+
@builtins.property
|
|
32976
|
+
def infrastructure_role_arn(self) -> builtins.str:
|
|
32977
|
+
'''The Amazon Resource Name (ARN) of the infrastructure role that Amazon ECS assumes to manage instances.
|
|
32978
|
+
|
|
32979
|
+
This role must include permissions for Amazon EC2 instance lifecycle management, networking, and any additional AWS services required for your workloads.
|
|
32980
|
+
|
|
32981
|
+
For more information, see `Amazon ECS infrastructure IAM role <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/infrastructure_IAM_role.html>`_ in the *Amazon ECS Developer Guide* .
|
|
32982
|
+
|
|
32983
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedinstancesprovider.html#cfn-ecs-capacityprovider-managedinstancesprovider-infrastructurerolearn
|
|
32984
|
+
'''
|
|
32985
|
+
result = self._values.get("infrastructure_role_arn")
|
|
32986
|
+
assert result is not None, "Required property 'infrastructure_role_arn' is missing"
|
|
32987
|
+
return typing.cast(builtins.str, result)
|
|
32988
|
+
|
|
32989
|
+
@builtins.property
|
|
32990
|
+
def instance_launch_template(
|
|
32991
|
+
self,
|
|
32992
|
+
) -> typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.InstanceLaunchTemplateProperty"]:
|
|
32993
|
+
'''The launch template that defines how Amazon ECS launches Amazon ECS Managed Instances.
|
|
32994
|
+
|
|
32995
|
+
This includes the instance profile for your tasks, network and storage configuration, and instance requirements that determine which Amazon EC2 instance types can be used.
|
|
32996
|
+
|
|
32997
|
+
For more information, see `Store instance launch parameters in Amazon EC2 launch templates <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html>`_ in the *Amazon EC2 User Guide* .
|
|
32998
|
+
|
|
32999
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedinstancesprovider.html#cfn-ecs-capacityprovider-managedinstancesprovider-instancelaunchtemplate
|
|
33000
|
+
'''
|
|
33001
|
+
result = self._values.get("instance_launch_template")
|
|
33002
|
+
assert result is not None, "Required property 'instance_launch_template' is missing"
|
|
33003
|
+
return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnCapacityProvider.InstanceLaunchTemplateProperty"], result)
|
|
33004
|
+
|
|
33005
|
+
@builtins.property
|
|
33006
|
+
def propagate_tags(self) -> typing.Optional[builtins.str]:
|
|
33007
|
+
'''Determines whether tags from the capacity provider are automatically applied to Amazon ECS Managed Instances.
|
|
33008
|
+
|
|
33009
|
+
This helps with cost allocation and resource management by ensuring consistent tagging across your infrastructure.
|
|
33010
|
+
|
|
33011
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedinstancesprovider.html#cfn-ecs-capacityprovider-managedinstancesprovider-propagatetags
|
|
33012
|
+
'''
|
|
33013
|
+
result = self._values.get("propagate_tags")
|
|
33014
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
33015
|
+
|
|
33016
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
33017
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
33018
|
+
|
|
33019
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
33020
|
+
return not (rhs == self)
|
|
33021
|
+
|
|
33022
|
+
def __repr__(self) -> str:
|
|
33023
|
+
return "ManagedInstancesProviderProperty(%s)" % ", ".join(
|
|
33024
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
33025
|
+
)
|
|
33026
|
+
|
|
33027
|
+
@jsii.data_type(
|
|
33028
|
+
jsii_type="aws-cdk-lib.aws_ecs.CfnCapacityProvider.ManagedInstancesStorageConfigurationProperty",
|
|
33029
|
+
jsii_struct_bases=[],
|
|
33030
|
+
name_mapping={"storage_size_gib": "storageSizeGiB"},
|
|
33031
|
+
)
|
|
33032
|
+
class ManagedInstancesStorageConfigurationProperty:
|
|
33033
|
+
def __init__(self, *, storage_size_gib: jsii.Number) -> None:
|
|
33034
|
+
'''The storage configuration for Amazon ECS Managed Instances.
|
|
33035
|
+
|
|
33036
|
+
This defines the root volume configuration for the instances.
|
|
33037
|
+
|
|
33038
|
+
:param storage_size_gib: The size of the tasks volume.
|
|
33039
|
+
|
|
33040
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedinstancesstorageconfiguration.html
|
|
33041
|
+
:exampleMetadata: fixture=_generated
|
|
33042
|
+
|
|
33043
|
+
Example::
|
|
33044
|
+
|
|
33045
|
+
# The code below shows an example of how to instantiate this type.
|
|
33046
|
+
# The values are placeholders you should change.
|
|
33047
|
+
from aws_cdk import aws_ecs as ecs
|
|
33048
|
+
|
|
33049
|
+
managed_instances_storage_configuration_property = ecs.CfnCapacityProvider.ManagedInstancesStorageConfigurationProperty(
|
|
33050
|
+
storage_size_gi_b=123
|
|
33051
|
+
)
|
|
33052
|
+
'''
|
|
33053
|
+
if __debug__:
|
|
33054
|
+
type_hints = typing.get_type_hints(_typecheckingstub__8d1e06667171eb082ce77bd8060c435a6f130ac6e9384412fb372763b838e22b)
|
|
33055
|
+
check_type(argname="argument storage_size_gib", value=storage_size_gib, expected_type=type_hints["storage_size_gib"])
|
|
33056
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
33057
|
+
"storage_size_gib": storage_size_gib,
|
|
33058
|
+
}
|
|
33059
|
+
|
|
33060
|
+
@builtins.property
|
|
33061
|
+
def storage_size_gib(self) -> jsii.Number:
|
|
33062
|
+
'''The size of the tasks volume.
|
|
33063
|
+
|
|
33064
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedinstancesstorageconfiguration.html#cfn-ecs-capacityprovider-managedinstancesstorageconfiguration-storagesizegib
|
|
33065
|
+
'''
|
|
33066
|
+
result = self._values.get("storage_size_gib")
|
|
33067
|
+
assert result is not None, "Required property 'storage_size_gib' is missing"
|
|
33068
|
+
return typing.cast(jsii.Number, result)
|
|
33069
|
+
|
|
33070
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
33071
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
33072
|
+
|
|
33073
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
33074
|
+
return not (rhs == self)
|
|
33075
|
+
|
|
33076
|
+
def __repr__(self) -> str:
|
|
33077
|
+
return "ManagedInstancesStorageConfigurationProperty(%s)" % ", ".join(
|
|
33078
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
33079
|
+
)
|
|
33080
|
+
|
|
30982
33081
|
@jsii.data_type(
|
|
30983
33082
|
jsii_type="aws-cdk-lib.aws_ecs.CfnCapacityProvider.ManagedScalingProperty",
|
|
30984
33083
|
jsii_struct_bases=[],
|
|
@@ -31114,6 +33213,468 @@ class CfnCapacityProvider(
|
|
|
31114
33213
|
k + "=" + repr(v) for k, v in self._values.items()
|
|
31115
33214
|
)
|
|
31116
33215
|
|
|
33216
|
+
@jsii.data_type(
|
|
33217
|
+
jsii_type="aws-cdk-lib.aws_ecs.CfnCapacityProvider.MemoryGiBPerVCpuRequestProperty",
|
|
33218
|
+
jsii_struct_bases=[],
|
|
33219
|
+
name_mapping={"max": "max", "min": "min"},
|
|
33220
|
+
)
|
|
33221
|
+
class MemoryGiBPerVCpuRequestProperty:
|
|
33222
|
+
def __init__(
|
|
33223
|
+
self,
|
|
33224
|
+
*,
|
|
33225
|
+
max: typing.Optional[jsii.Number] = None,
|
|
33226
|
+
min: typing.Optional[jsii.Number] = None,
|
|
33227
|
+
) -> None:
|
|
33228
|
+
'''The minimum and maximum amount of memory per vCPU in gibibytes (GiB).
|
|
33229
|
+
|
|
33230
|
+
This helps ensure that instance types have the appropriate memory-to-CPU ratio for your workloads.
|
|
33231
|
+
|
|
33232
|
+
:param max: The maximum amount of memory per vCPU in GiB. Instance types with a higher memory-to-vCPU ratio are excluded from selection.
|
|
33233
|
+
:param min: The minimum amount of memory per vCPU in GiB. Instance types with a lower memory-to-vCPU ratio are excluded from selection.
|
|
33234
|
+
|
|
33235
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-memorygibpervcpurequest.html
|
|
33236
|
+
:exampleMetadata: fixture=_generated
|
|
33237
|
+
|
|
33238
|
+
Example::
|
|
33239
|
+
|
|
33240
|
+
# The code below shows an example of how to instantiate this type.
|
|
33241
|
+
# The values are placeholders you should change.
|
|
33242
|
+
from aws_cdk import aws_ecs as ecs
|
|
33243
|
+
|
|
33244
|
+
memory_gi_bPer_vCpu_request_property = ecs.CfnCapacityProvider.MemoryGiBPerVCpuRequestProperty(
|
|
33245
|
+
max=123,
|
|
33246
|
+
min=123
|
|
33247
|
+
)
|
|
33248
|
+
'''
|
|
33249
|
+
if __debug__:
|
|
33250
|
+
type_hints = typing.get_type_hints(_typecheckingstub__01b8a285c0250eb2fa8268dc32a515cb17c662ef0085fef55300ca206a1a746c)
|
|
33251
|
+
check_type(argname="argument max", value=max, expected_type=type_hints["max"])
|
|
33252
|
+
check_type(argname="argument min", value=min, expected_type=type_hints["min"])
|
|
33253
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
33254
|
+
if max is not None:
|
|
33255
|
+
self._values["max"] = max
|
|
33256
|
+
if min is not None:
|
|
33257
|
+
self._values["min"] = min
|
|
33258
|
+
|
|
33259
|
+
@builtins.property
|
|
33260
|
+
def max(self) -> typing.Optional[jsii.Number]:
|
|
33261
|
+
'''The maximum amount of memory per vCPU in GiB.
|
|
33262
|
+
|
|
33263
|
+
Instance types with a higher memory-to-vCPU ratio are excluded from selection.
|
|
33264
|
+
|
|
33265
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-memorygibpervcpurequest.html#cfn-ecs-capacityprovider-memorygibpervcpurequest-max
|
|
33266
|
+
'''
|
|
33267
|
+
result = self._values.get("max")
|
|
33268
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
33269
|
+
|
|
33270
|
+
@builtins.property
|
|
33271
|
+
def min(self) -> typing.Optional[jsii.Number]:
|
|
33272
|
+
'''The minimum amount of memory per vCPU in GiB.
|
|
33273
|
+
|
|
33274
|
+
Instance types with a lower memory-to-vCPU ratio are excluded from selection.
|
|
33275
|
+
|
|
33276
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-memorygibpervcpurequest.html#cfn-ecs-capacityprovider-memorygibpervcpurequest-min
|
|
33277
|
+
'''
|
|
33278
|
+
result = self._values.get("min")
|
|
33279
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
33280
|
+
|
|
33281
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
33282
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
33283
|
+
|
|
33284
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
33285
|
+
return not (rhs == self)
|
|
33286
|
+
|
|
33287
|
+
def __repr__(self) -> str:
|
|
33288
|
+
return "MemoryGiBPerVCpuRequestProperty(%s)" % ", ".join(
|
|
33289
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
33290
|
+
)
|
|
33291
|
+
|
|
33292
|
+
@jsii.data_type(
|
|
33293
|
+
jsii_type="aws-cdk-lib.aws_ecs.CfnCapacityProvider.MemoryMiBRequestProperty",
|
|
33294
|
+
jsii_struct_bases=[],
|
|
33295
|
+
name_mapping={"min": "min", "max": "max"},
|
|
33296
|
+
)
|
|
33297
|
+
class MemoryMiBRequestProperty:
|
|
33298
|
+
def __init__(
|
|
33299
|
+
self,
|
|
33300
|
+
*,
|
|
33301
|
+
min: jsii.Number,
|
|
33302
|
+
max: typing.Optional[jsii.Number] = None,
|
|
33303
|
+
) -> None:
|
|
33304
|
+
'''The minimum and maximum amount of memory in mebibytes (MiB) for instance type selection.
|
|
33305
|
+
|
|
33306
|
+
This ensures that selected instance types have adequate memory for your workloads.
|
|
33307
|
+
|
|
33308
|
+
:param min: The minimum amount of memory in MiB. Instance types with less memory than this value are excluded from selection.
|
|
33309
|
+
:param max: The maximum amount of memory in MiB. Instance types with more memory than this value are excluded from selection.
|
|
33310
|
+
|
|
33311
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-memorymibrequest.html
|
|
33312
|
+
:exampleMetadata: fixture=_generated
|
|
33313
|
+
|
|
33314
|
+
Example::
|
|
33315
|
+
|
|
33316
|
+
# The code below shows an example of how to instantiate this type.
|
|
33317
|
+
# The values are placeholders you should change.
|
|
33318
|
+
from aws_cdk import aws_ecs as ecs
|
|
33319
|
+
|
|
33320
|
+
memory_mi_bRequest_property = ecs.CfnCapacityProvider.MemoryMiBRequestProperty(
|
|
33321
|
+
min=123,
|
|
33322
|
+
|
|
33323
|
+
# the properties below are optional
|
|
33324
|
+
max=123
|
|
33325
|
+
)
|
|
33326
|
+
'''
|
|
33327
|
+
if __debug__:
|
|
33328
|
+
type_hints = typing.get_type_hints(_typecheckingstub__a69680081ccdd5c785405398f4f1d616d0c97b874ced183049da2f9c6e34787e)
|
|
33329
|
+
check_type(argname="argument min", value=min, expected_type=type_hints["min"])
|
|
33330
|
+
check_type(argname="argument max", value=max, expected_type=type_hints["max"])
|
|
33331
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
33332
|
+
"min": min,
|
|
33333
|
+
}
|
|
33334
|
+
if max is not None:
|
|
33335
|
+
self._values["max"] = max
|
|
33336
|
+
|
|
33337
|
+
@builtins.property
|
|
33338
|
+
def min(self) -> jsii.Number:
|
|
33339
|
+
'''The minimum amount of memory in MiB.
|
|
33340
|
+
|
|
33341
|
+
Instance types with less memory than this value are excluded from selection.
|
|
33342
|
+
|
|
33343
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-memorymibrequest.html#cfn-ecs-capacityprovider-memorymibrequest-min
|
|
33344
|
+
'''
|
|
33345
|
+
result = self._values.get("min")
|
|
33346
|
+
assert result is not None, "Required property 'min' is missing"
|
|
33347
|
+
return typing.cast(jsii.Number, result)
|
|
33348
|
+
|
|
33349
|
+
@builtins.property
|
|
33350
|
+
def max(self) -> typing.Optional[jsii.Number]:
|
|
33351
|
+
'''The maximum amount of memory in MiB.
|
|
33352
|
+
|
|
33353
|
+
Instance types with more memory than this value are excluded from selection.
|
|
33354
|
+
|
|
33355
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-memorymibrequest.html#cfn-ecs-capacityprovider-memorymibrequest-max
|
|
33356
|
+
'''
|
|
33357
|
+
result = self._values.get("max")
|
|
33358
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
33359
|
+
|
|
33360
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
33361
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
33362
|
+
|
|
33363
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
33364
|
+
return not (rhs == self)
|
|
33365
|
+
|
|
33366
|
+
def __repr__(self) -> str:
|
|
33367
|
+
return "MemoryMiBRequestProperty(%s)" % ", ".join(
|
|
33368
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
33369
|
+
)
|
|
33370
|
+
|
|
33371
|
+
@jsii.data_type(
|
|
33372
|
+
jsii_type="aws-cdk-lib.aws_ecs.CfnCapacityProvider.NetworkBandwidthGbpsRequestProperty",
|
|
33373
|
+
jsii_struct_bases=[],
|
|
33374
|
+
name_mapping={"max": "max", "min": "min"},
|
|
33375
|
+
)
|
|
33376
|
+
class NetworkBandwidthGbpsRequestProperty:
|
|
33377
|
+
def __init__(
|
|
33378
|
+
self,
|
|
33379
|
+
*,
|
|
33380
|
+
max: typing.Optional[jsii.Number] = None,
|
|
33381
|
+
min: typing.Optional[jsii.Number] = None,
|
|
33382
|
+
) -> None:
|
|
33383
|
+
'''The minimum and maximum network bandwidth in gigabits per second (Gbps) for instance type selection.
|
|
33384
|
+
|
|
33385
|
+
This is important for network-intensive workloads.
|
|
33386
|
+
|
|
33387
|
+
:param max: The maximum network bandwidth in Gbps. Instance types with higher network bandwidth are excluded from selection.
|
|
33388
|
+
:param min: The minimum network bandwidth in Gbps. Instance types with lower network bandwidth are excluded from selection.
|
|
33389
|
+
|
|
33390
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-networkbandwidthgbpsrequest.html
|
|
33391
|
+
:exampleMetadata: fixture=_generated
|
|
33392
|
+
|
|
33393
|
+
Example::
|
|
33394
|
+
|
|
33395
|
+
# The code below shows an example of how to instantiate this type.
|
|
33396
|
+
# The values are placeholders you should change.
|
|
33397
|
+
from aws_cdk import aws_ecs as ecs
|
|
33398
|
+
|
|
33399
|
+
network_bandwidth_gbps_request_property = ecs.CfnCapacityProvider.NetworkBandwidthGbpsRequestProperty(
|
|
33400
|
+
max=123,
|
|
33401
|
+
min=123
|
|
33402
|
+
)
|
|
33403
|
+
'''
|
|
33404
|
+
if __debug__:
|
|
33405
|
+
type_hints = typing.get_type_hints(_typecheckingstub__0b64349de0e0aa036cd2591e8e4db2f873feceecef981a341ecb449ccf6868be)
|
|
33406
|
+
check_type(argname="argument max", value=max, expected_type=type_hints["max"])
|
|
33407
|
+
check_type(argname="argument min", value=min, expected_type=type_hints["min"])
|
|
33408
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
33409
|
+
if max is not None:
|
|
33410
|
+
self._values["max"] = max
|
|
33411
|
+
if min is not None:
|
|
33412
|
+
self._values["min"] = min
|
|
33413
|
+
|
|
33414
|
+
@builtins.property
|
|
33415
|
+
def max(self) -> typing.Optional[jsii.Number]:
|
|
33416
|
+
'''The maximum network bandwidth in Gbps.
|
|
33417
|
+
|
|
33418
|
+
Instance types with higher network bandwidth are excluded from selection.
|
|
33419
|
+
|
|
33420
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-networkbandwidthgbpsrequest.html#cfn-ecs-capacityprovider-networkbandwidthgbpsrequest-max
|
|
33421
|
+
'''
|
|
33422
|
+
result = self._values.get("max")
|
|
33423
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
33424
|
+
|
|
33425
|
+
@builtins.property
|
|
33426
|
+
def min(self) -> typing.Optional[jsii.Number]:
|
|
33427
|
+
'''The minimum network bandwidth in Gbps.
|
|
33428
|
+
|
|
33429
|
+
Instance types with lower network bandwidth are excluded from selection.
|
|
33430
|
+
|
|
33431
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-networkbandwidthgbpsrequest.html#cfn-ecs-capacityprovider-networkbandwidthgbpsrequest-min
|
|
33432
|
+
'''
|
|
33433
|
+
result = self._values.get("min")
|
|
33434
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
33435
|
+
|
|
33436
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
33437
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
33438
|
+
|
|
33439
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
33440
|
+
return not (rhs == self)
|
|
33441
|
+
|
|
33442
|
+
def __repr__(self) -> str:
|
|
33443
|
+
return "NetworkBandwidthGbpsRequestProperty(%s)" % ", ".join(
|
|
33444
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
33445
|
+
)
|
|
33446
|
+
|
|
33447
|
+
@jsii.data_type(
|
|
33448
|
+
jsii_type="aws-cdk-lib.aws_ecs.CfnCapacityProvider.NetworkInterfaceCountRequestProperty",
|
|
33449
|
+
jsii_struct_bases=[],
|
|
33450
|
+
name_mapping={"max": "max", "min": "min"},
|
|
33451
|
+
)
|
|
33452
|
+
class NetworkInterfaceCountRequestProperty:
|
|
33453
|
+
def __init__(
|
|
33454
|
+
self,
|
|
33455
|
+
*,
|
|
33456
|
+
max: typing.Optional[jsii.Number] = None,
|
|
33457
|
+
min: typing.Optional[jsii.Number] = None,
|
|
33458
|
+
) -> None:
|
|
33459
|
+
'''The minimum and maximum number of network interfaces for instance type selection.
|
|
33460
|
+
|
|
33461
|
+
This is useful for workloads that require multiple network interfaces.
|
|
33462
|
+
|
|
33463
|
+
:param max: The maximum number of network interfaces. Instance types that support more network interfaces are excluded from selection.
|
|
33464
|
+
:param min: The minimum number of network interfaces. Instance types that support fewer network interfaces are excluded from selection.
|
|
33465
|
+
|
|
33466
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-networkinterfacecountrequest.html
|
|
33467
|
+
:exampleMetadata: fixture=_generated
|
|
33468
|
+
|
|
33469
|
+
Example::
|
|
33470
|
+
|
|
33471
|
+
# The code below shows an example of how to instantiate this type.
|
|
33472
|
+
# The values are placeholders you should change.
|
|
33473
|
+
from aws_cdk import aws_ecs as ecs
|
|
33474
|
+
|
|
33475
|
+
network_interface_count_request_property = ecs.CfnCapacityProvider.NetworkInterfaceCountRequestProperty(
|
|
33476
|
+
max=123,
|
|
33477
|
+
min=123
|
|
33478
|
+
)
|
|
33479
|
+
'''
|
|
33480
|
+
if __debug__:
|
|
33481
|
+
type_hints = typing.get_type_hints(_typecheckingstub__b7767213e94df32328c6564e342330aa95c25ac187a4114099951ea2e0802ddb)
|
|
33482
|
+
check_type(argname="argument max", value=max, expected_type=type_hints["max"])
|
|
33483
|
+
check_type(argname="argument min", value=min, expected_type=type_hints["min"])
|
|
33484
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
33485
|
+
if max is not None:
|
|
33486
|
+
self._values["max"] = max
|
|
33487
|
+
if min is not None:
|
|
33488
|
+
self._values["min"] = min
|
|
33489
|
+
|
|
33490
|
+
@builtins.property
|
|
33491
|
+
def max(self) -> typing.Optional[jsii.Number]:
|
|
33492
|
+
'''The maximum number of network interfaces.
|
|
33493
|
+
|
|
33494
|
+
Instance types that support more network interfaces are excluded from selection.
|
|
33495
|
+
|
|
33496
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-networkinterfacecountrequest.html#cfn-ecs-capacityprovider-networkinterfacecountrequest-max
|
|
33497
|
+
'''
|
|
33498
|
+
result = self._values.get("max")
|
|
33499
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
33500
|
+
|
|
33501
|
+
@builtins.property
|
|
33502
|
+
def min(self) -> typing.Optional[jsii.Number]:
|
|
33503
|
+
'''The minimum number of network interfaces.
|
|
33504
|
+
|
|
33505
|
+
Instance types that support fewer network interfaces are excluded from selection.
|
|
33506
|
+
|
|
33507
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-networkinterfacecountrequest.html#cfn-ecs-capacityprovider-networkinterfacecountrequest-min
|
|
33508
|
+
'''
|
|
33509
|
+
result = self._values.get("min")
|
|
33510
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
33511
|
+
|
|
33512
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
33513
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
33514
|
+
|
|
33515
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
33516
|
+
return not (rhs == self)
|
|
33517
|
+
|
|
33518
|
+
def __repr__(self) -> str:
|
|
33519
|
+
return "NetworkInterfaceCountRequestProperty(%s)" % ", ".join(
|
|
33520
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
33521
|
+
)
|
|
33522
|
+
|
|
33523
|
+
@jsii.data_type(
|
|
33524
|
+
jsii_type="aws-cdk-lib.aws_ecs.CfnCapacityProvider.TotalLocalStorageGBRequestProperty",
|
|
33525
|
+
jsii_struct_bases=[],
|
|
33526
|
+
name_mapping={"max": "max", "min": "min"},
|
|
33527
|
+
)
|
|
33528
|
+
class TotalLocalStorageGBRequestProperty:
|
|
33529
|
+
def __init__(
|
|
33530
|
+
self,
|
|
33531
|
+
*,
|
|
33532
|
+
max: typing.Optional[jsii.Number] = None,
|
|
33533
|
+
min: typing.Optional[jsii.Number] = None,
|
|
33534
|
+
) -> None:
|
|
33535
|
+
'''The minimum and maximum total local storage in gigabytes (GB) for instance types with local storage.
|
|
33536
|
+
|
|
33537
|
+
This is useful for workloads that require local storage for temporary data or caching.
|
|
33538
|
+
|
|
33539
|
+
:param max: The maximum total local storage in GB. Instance types with more local storage are excluded from selection.
|
|
33540
|
+
:param min: The minimum total local storage in GB. Instance types with less local storage are excluded from selection.
|
|
33541
|
+
|
|
33542
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-totallocalstoragegbrequest.html
|
|
33543
|
+
:exampleMetadata: fixture=_generated
|
|
33544
|
+
|
|
33545
|
+
Example::
|
|
33546
|
+
|
|
33547
|
+
# The code below shows an example of how to instantiate this type.
|
|
33548
|
+
# The values are placeholders you should change.
|
|
33549
|
+
from aws_cdk import aws_ecs as ecs
|
|
33550
|
+
|
|
33551
|
+
total_local_storage_gBRequest_property = ecs.CfnCapacityProvider.TotalLocalStorageGBRequestProperty(
|
|
33552
|
+
max=123,
|
|
33553
|
+
min=123
|
|
33554
|
+
)
|
|
33555
|
+
'''
|
|
33556
|
+
if __debug__:
|
|
33557
|
+
type_hints = typing.get_type_hints(_typecheckingstub__0b9cda28d66272632c4d42fbe68333883ca70c46c98159c2cd3f806c8bcc87fb)
|
|
33558
|
+
check_type(argname="argument max", value=max, expected_type=type_hints["max"])
|
|
33559
|
+
check_type(argname="argument min", value=min, expected_type=type_hints["min"])
|
|
33560
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
33561
|
+
if max is not None:
|
|
33562
|
+
self._values["max"] = max
|
|
33563
|
+
if min is not None:
|
|
33564
|
+
self._values["min"] = min
|
|
33565
|
+
|
|
33566
|
+
@builtins.property
|
|
33567
|
+
def max(self) -> typing.Optional[jsii.Number]:
|
|
33568
|
+
'''The maximum total local storage in GB.
|
|
33569
|
+
|
|
33570
|
+
Instance types with more local storage are excluded from selection.
|
|
33571
|
+
|
|
33572
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-totallocalstoragegbrequest.html#cfn-ecs-capacityprovider-totallocalstoragegbrequest-max
|
|
33573
|
+
'''
|
|
33574
|
+
result = self._values.get("max")
|
|
33575
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
33576
|
+
|
|
33577
|
+
@builtins.property
|
|
33578
|
+
def min(self) -> typing.Optional[jsii.Number]:
|
|
33579
|
+
'''The minimum total local storage in GB.
|
|
33580
|
+
|
|
33581
|
+
Instance types with less local storage are excluded from selection.
|
|
33582
|
+
|
|
33583
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-totallocalstoragegbrequest.html#cfn-ecs-capacityprovider-totallocalstoragegbrequest-min
|
|
33584
|
+
'''
|
|
33585
|
+
result = self._values.get("min")
|
|
33586
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
33587
|
+
|
|
33588
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
33589
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
33590
|
+
|
|
33591
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
33592
|
+
return not (rhs == self)
|
|
33593
|
+
|
|
33594
|
+
def __repr__(self) -> str:
|
|
33595
|
+
return "TotalLocalStorageGBRequestProperty(%s)" % ", ".join(
|
|
33596
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
33597
|
+
)
|
|
33598
|
+
|
|
33599
|
+
@jsii.data_type(
|
|
33600
|
+
jsii_type="aws-cdk-lib.aws_ecs.CfnCapacityProvider.VCpuCountRangeRequestProperty",
|
|
33601
|
+
jsii_struct_bases=[],
|
|
33602
|
+
name_mapping={"min": "min", "max": "max"},
|
|
33603
|
+
)
|
|
33604
|
+
class VCpuCountRangeRequestProperty:
|
|
33605
|
+
def __init__(
|
|
33606
|
+
self,
|
|
33607
|
+
*,
|
|
33608
|
+
min: jsii.Number,
|
|
33609
|
+
max: typing.Optional[jsii.Number] = None,
|
|
33610
|
+
) -> None:
|
|
33611
|
+
'''The minimum and maximum number of vCPUs for instance type selection.
|
|
33612
|
+
|
|
33613
|
+
This allows you to specify a range of vCPU counts that meet your workload requirements.
|
|
33614
|
+
|
|
33615
|
+
:param min: The minimum number of vCPUs. Instance types with fewer vCPUs than this value are excluded from selection.
|
|
33616
|
+
:param max: The maximum number of vCPUs. Instance types with more vCPUs than this value are excluded from selection.
|
|
33617
|
+
|
|
33618
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-vcpucountrangerequest.html
|
|
33619
|
+
:exampleMetadata: fixture=_generated
|
|
33620
|
+
|
|
33621
|
+
Example::
|
|
33622
|
+
|
|
33623
|
+
# The code below shows an example of how to instantiate this type.
|
|
33624
|
+
# The values are placeholders you should change.
|
|
33625
|
+
from aws_cdk import aws_ecs as ecs
|
|
33626
|
+
|
|
33627
|
+
v_cpu_count_range_request_property = ecs.CfnCapacityProvider.VCpuCountRangeRequestProperty(
|
|
33628
|
+
min=123,
|
|
33629
|
+
|
|
33630
|
+
# the properties below are optional
|
|
33631
|
+
max=123
|
|
33632
|
+
)
|
|
33633
|
+
'''
|
|
33634
|
+
if __debug__:
|
|
33635
|
+
type_hints = typing.get_type_hints(_typecheckingstub__f6d818d37cfd5e478cf4f6075fe0ba45bdd81aa83e9eb5b3f01094a71abf8822)
|
|
33636
|
+
check_type(argname="argument min", value=min, expected_type=type_hints["min"])
|
|
33637
|
+
check_type(argname="argument max", value=max, expected_type=type_hints["max"])
|
|
33638
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
33639
|
+
"min": min,
|
|
33640
|
+
}
|
|
33641
|
+
if max is not None:
|
|
33642
|
+
self._values["max"] = max
|
|
33643
|
+
|
|
33644
|
+
@builtins.property
|
|
33645
|
+
def min(self) -> jsii.Number:
|
|
33646
|
+
'''The minimum number of vCPUs.
|
|
33647
|
+
|
|
33648
|
+
Instance types with fewer vCPUs than this value are excluded from selection.
|
|
33649
|
+
|
|
33650
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-vcpucountrangerequest.html#cfn-ecs-capacityprovider-vcpucountrangerequest-min
|
|
33651
|
+
'''
|
|
33652
|
+
result = self._values.get("min")
|
|
33653
|
+
assert result is not None, "Required property 'min' is missing"
|
|
33654
|
+
return typing.cast(jsii.Number, result)
|
|
33655
|
+
|
|
33656
|
+
@builtins.property
|
|
33657
|
+
def max(self) -> typing.Optional[jsii.Number]:
|
|
33658
|
+
'''The maximum number of vCPUs.
|
|
33659
|
+
|
|
33660
|
+
Instance types with more vCPUs than this value are excluded from selection.
|
|
33661
|
+
|
|
33662
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-vcpucountrangerequest.html#cfn-ecs-capacityprovider-vcpucountrangerequest-max
|
|
33663
|
+
'''
|
|
33664
|
+
result = self._values.get("max")
|
|
33665
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
33666
|
+
|
|
33667
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
33668
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
33669
|
+
|
|
33670
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
33671
|
+
return not (rhs == self)
|
|
33672
|
+
|
|
33673
|
+
def __repr__(self) -> str:
|
|
33674
|
+
return "VCpuCountRangeRequestProperty(%s)" % ", ".join(
|
|
33675
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
33676
|
+
)
|
|
33677
|
+
|
|
31117
33678
|
|
|
31118
33679
|
@jsii.implements(_IInspectable_c2943556, IClusterRef, _ITaggable_36806126)
|
|
31119
33680
|
class CfnCluster(
|
|
@@ -32795,7 +35356,7 @@ class CfnService(
|
|
|
32795
35356
|
:param enable_ecs_managed_tags: Specifies whether to turn on Amazon ECS managed tags for the tasks within the service. For more information, see `Tagging your Amazon ECS resources <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html>`_ in the *Amazon Elastic Container Service Developer Guide* . When you use Amazon ECS managed tags, you must set the ``propagateTags`` request parameter.
|
|
32796
35357
|
:param enable_execute_command: Determines whether the execute command functionality is turned on for the service. If ``true`` , the execute command functionality is turned on for all containers in tasks as part of the service.
|
|
32797
35358
|
:param force_new_deployment: Determines whether to force a new deployment of the service. By default, deployments aren't forced. You can use this option to start a new deployment with no service definition changes. For example, you can update a service's tasks to use a newer Docker image with the same image/tag combination ( ``my_image:latest`` ) or to roll Fargate tasks onto a newer platform version.
|
|
32798
|
-
:param health_check_grace_period_seconds: The period of time, in seconds, that the Amazon
|
|
35359
|
+
:param health_check_grace_period_seconds: The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing, VPC Lattice, and container health checks after a task has first started. If you do not specify a health check grace period value, the default value of 0 is used. If you do not use any of the health checks, then ``healthCheckGracePeriodSeconds`` is unused. If your service has more running tasks than desired, unhealthy tasks in the grace period might be stopped to reach the desired count.
|
|
32799
35360
|
:param launch_type: The launch type on which to run your service. For more information, see `Amazon ECS Launch Types <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
|
|
32800
35361
|
:param load_balancers: A list of load balancer objects to associate with the service. If you specify the ``Role`` property, ``LoadBalancers`` must be specified as well. For information about the number of load balancers that you can specify per service, see `Service Load Balancing <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html>`_ in the *Amazon Elastic Container Service Developer Guide* . .. epigraph:: To remove this property from your service resource, specify an empty ``LoadBalancer`` array.
|
|
32801
35362
|
:param network_configuration: The network configuration for the service. This parameter is required for task definitions that use the ``awsvpc`` network mode to receive their own elastic network interface, and it is not supported for other network modes. For more information, see `Task Networking <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
|
|
@@ -33068,7 +35629,7 @@ class CfnService(
|
|
|
33068
35629
|
@builtins.property
|
|
33069
35630
|
@jsii.member(jsii_name="healthCheckGracePeriodSeconds")
|
|
33070
35631
|
def health_check_grace_period_seconds(self) -> typing.Optional[jsii.Number]:
|
|
33071
|
-
'''The period of time, in seconds, that the Amazon
|
|
35632
|
+
'''The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing, VPC Lattice, and container health checks after a task has first started.'''
|
|
33072
35633
|
return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "healthCheckGracePeriodSeconds"))
|
|
33073
35634
|
|
|
33074
35635
|
@health_check_grace_period_seconds.setter
|
|
@@ -37028,7 +39589,7 @@ class CfnTaskDefinition(
|
|
|
37028
39589
|
:param pid_mode: The process namespace to use for the containers in the task. The valid values are ``host`` or ``task`` . On Fargate for Linux containers, the only valid value is ``task`` . For example, monitoring sidecars might need ``pidMode`` to access information about other containers running in the same task. If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same process namespace. If no value is specified, the default is a private namespace for each container. If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. .. epigraph:: This parameter is not supported for Windows containers. > This parameter is only supported for tasks that are hosted on AWS Fargate if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate.
|
|
37029
39590
|
:param placement_constraints: An array of placement constraint objects to use for tasks. .. epigraph:: This parameter isn't supported for tasks run on AWS Fargate .
|
|
37030
39591
|
:param proxy_configuration: The configuration details for the App Mesh proxy. Your Amazon ECS container instances require at least version 1.26.0 of the container agent and at least version 1.26.0-1 of the ``ecs-init`` package to use a proxy configuration. If your container instances are launched from the Amazon ECS optimized AMI version ``20190301`` or later, they contain the required versions of the container agent and ``ecs-init`` . For more information, see `Amazon ECS-optimized Linux AMI <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
|
|
37031
|
-
:param requires_compatibilities: The task launch types the task definition was validated against. The valid values are ``EC2`` , ``FARGATE`` , and ``EXTERNAL`` . For more information, see `Amazon ECS launch types <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
|
|
39592
|
+
:param requires_compatibilities: The task launch types the task definition was validated against. The valid values are ``MANAGED_INSTANCES`` , ``EC2`` , ``FARGATE`` , and ``EXTERNAL`` . For more information, see `Amazon ECS launch types <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
|
|
37032
39593
|
:param runtime_platform: The operating system that your tasks definitions run on. A platform family is specified only for tasks using the Fargate launch type.
|
|
37033
39594
|
:param tags: The metadata that you apply to the task definition to help you categorize and organize them. Each tag consists of a key and an optional value. You define both of them. 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: + - = . _ : /
|
|
37034
39595
|
:param task_role_arn: The short name or full Amazon Resource Name (ARN) of the AWS Identity and Access Management role that grants containers in the task permission to call AWS APIs on your behalf. For more information, see `Amazon ECS Task Role <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html>`_ in the *Amazon Elastic Container Service Developer Guide* . IAM roles for tasks on Windows require that the ``-EnableTaskIAMRole`` option is set when you launch the Amazon ECS-optimized Windows AMI. Your containers must also run some configuration code to use the feature. For more information, see `Windows IAM roles for tasks <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html>`_ in the *Amazon Elastic Container Service Developer Guide* . .. epigraph:: String validation is done on the ECS side. If an invalid string value is given for ``TaskRoleArn`` , it may cause the Cloudformation job to hang.
|
|
@@ -42799,24 +45360,43 @@ class Cluster(
|
|
|
42799
45360
|
|
|
42800
45361
|
Example::
|
|
42801
45362
|
|
|
42802
|
-
|
|
45363
|
+
# vpc: ec2.Vpc
|
|
42803
45364
|
|
|
42804
45365
|
|
|
42805
|
-
|
|
42806
|
-
|
|
42807
|
-
task_definition = ecs.FargateTaskDefinition(self, "TaskDef",
|
|
42808
|
-
memory_limit_mi_b=512,
|
|
42809
|
-
cpu=256
|
|
45366
|
+
cluster = ecs.Cluster(self, "Cluster",
|
|
45367
|
+
vpc=vpc
|
|
42810
45368
|
)
|
|
42811
|
-
|
|
42812
|
-
|
|
45369
|
+
|
|
45370
|
+
auto_scaling_group = autoscaling.AutoScalingGroup(self, "ASG",
|
|
45371
|
+
vpc=vpc,
|
|
45372
|
+
instance_type=ec2.InstanceType("t2.micro"),
|
|
45373
|
+
machine_image=ecs.EcsOptimizedImage.amazon_linux2(),
|
|
45374
|
+
min_capacity=0,
|
|
45375
|
+
max_capacity=100
|
|
42813
45376
|
)
|
|
42814
|
-
|
|
42815
|
-
|
|
45377
|
+
|
|
45378
|
+
capacity_provider = ecs.AsgCapacityProvider(self, "AsgCapacityProvider",
|
|
45379
|
+
auto_scaling_group=auto_scaling_group,
|
|
45380
|
+
instance_warmup_period=300
|
|
45381
|
+
)
|
|
45382
|
+
cluster.add_asg_capacity_provider(capacity_provider)
|
|
45383
|
+
|
|
45384
|
+
task_definition = ecs.Ec2TaskDefinition(self, "TaskDef")
|
|
45385
|
+
|
|
45386
|
+
task_definition.add_container("web",
|
|
45387
|
+
image=ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample"),
|
|
45388
|
+
memory_reservation_mi_b=256
|
|
45389
|
+
)
|
|
45390
|
+
|
|
45391
|
+
ecs.Ec2Service(self, "EC2Service",
|
|
42816
45392
|
cluster=cluster,
|
|
42817
45393
|
task_definition=task_definition,
|
|
42818
|
-
|
|
42819
|
-
|
|
45394
|
+
min_healthy_percent=100,
|
|
45395
|
+
capacity_provider_strategies=[ecs.CapacityProviderStrategy(
|
|
45396
|
+
capacity_provider=capacity_provider.capacity_provider_name,
|
|
45397
|
+
weight=1
|
|
45398
|
+
)
|
|
45399
|
+
]
|
|
42820
45400
|
)
|
|
42821
45401
|
'''
|
|
42822
45402
|
|
|
@@ -43145,6 +45725,20 @@ class Cluster(
|
|
|
43145
45725
|
|
|
43146
45726
|
return typing.cast(_INamespace_6b61e84f, jsii.invoke(self, "addDefaultCloudMapNamespace", [options]))
|
|
43147
45727
|
|
|
45728
|
+
@jsii.member(jsii_name="addManagedInstancesCapacityProvider")
|
|
45729
|
+
def add_managed_instances_capacity_provider(
|
|
45730
|
+
self,
|
|
45731
|
+
provider: ManagedInstancesCapacityProvider,
|
|
45732
|
+
) -> None:
|
|
45733
|
+
'''This method adds a Managed Instances Capacity Provider to a cluster.
|
|
45734
|
+
|
|
45735
|
+
:param provider: the capacity provider to add to this cluster.
|
|
45736
|
+
'''
|
|
45737
|
+
if __debug__:
|
|
45738
|
+
type_hints = typing.get_type_hints(_typecheckingstub__5a82d1be969d3085ebea9661809bac2d0fcfb12723cd197d9b51420e44f7dbe3)
|
|
45739
|
+
check_type(argname="argument provider", value=provider, expected_type=type_hints["provider"])
|
|
45740
|
+
return typing.cast(None, jsii.invoke(self, "addManagedInstancesCapacityProvider", [provider]))
|
|
45741
|
+
|
|
43148
45742
|
@jsii.member(jsii_name="arnForTasks")
|
|
43149
45743
|
def arn_for_tasks(self, key_pattern: builtins.str) -> builtins.str:
|
|
43150
45744
|
'''Returns an ARN that represents all tasks within the cluster that match the task pattern specified.
|
|
@@ -43459,6 +46053,15 @@ class Cluster(
|
|
|
43459
46053
|
'''The name of the cluster.'''
|
|
43460
46054
|
return typing.cast(builtins.str, jsii.get(self, "clusterName"))
|
|
43461
46055
|
|
|
46056
|
+
@builtins.property
|
|
46057
|
+
@jsii.member(jsii_name="clusterScopedCapacityProviderNames")
|
|
46058
|
+
def cluster_scoped_capacity_provider_names(self) -> typing.List[builtins.str]:
|
|
46059
|
+
'''Getter for _clusterScopedCapacityProviderNames.
|
|
46060
|
+
|
|
46061
|
+
:attribute: true
|
|
46062
|
+
'''
|
|
46063
|
+
return typing.cast(typing.List[builtins.str], jsii.get(self, "clusterScopedCapacityProviderNames"))
|
|
46064
|
+
|
|
43462
46065
|
@builtins.property
|
|
43463
46066
|
@jsii.member(jsii_name="connections")
|
|
43464
46067
|
def connections(self) -> _Connections_0f31fce8:
|
|
@@ -44972,30 +47575,33 @@ class Ec2Service(
|
|
|
44972
47575
|
|
|
44973
47576
|
Example::
|
|
44974
47577
|
|
|
44975
|
-
#
|
|
44976
|
-
|
|
47578
|
+
# task_definition: ecs.TaskDefinition
|
|
47579
|
+
# cluster: ecs.Cluster
|
|
44977
47580
|
|
|
44978
|
-
# Create an ECS cluster
|
|
44979
|
-
cluster = ecs.Cluster(self, "Cluster", vpc=vpc)
|
|
44980
47581
|
|
|
44981
|
-
# Add
|
|
44982
|
-
|
|
44983
|
-
|
|
44984
|
-
|
|
47582
|
+
# Add a container to the task definition
|
|
47583
|
+
specific_container = task_definition.add_container("Container",
|
|
47584
|
+
image=ecs.ContainerImage.from_registry("/aws/aws-example-app"),
|
|
47585
|
+
memory_limit_mi_b=2048
|
|
44985
47586
|
)
|
|
44986
47587
|
|
|
44987
|
-
|
|
44988
|
-
|
|
44989
|
-
|
|
44990
|
-
|
|
44991
|
-
memory_limit_mi_b=512
|
|
47588
|
+
# Add a port mapping
|
|
47589
|
+
specific_container.add_port_mappings(
|
|
47590
|
+
container_port=7600,
|
|
47591
|
+
protocol=ecs.Protocol.TCP
|
|
44992
47592
|
)
|
|
44993
47593
|
|
|
44994
|
-
|
|
44995
|
-
ecs_service = ecs.Ec2Service(self, "Service",
|
|
47594
|
+
ecs.Ec2Service(self, "Service",
|
|
44996
47595
|
cluster=cluster,
|
|
44997
47596
|
task_definition=task_definition,
|
|
44998
|
-
min_healthy_percent=100
|
|
47597
|
+
min_healthy_percent=100,
|
|
47598
|
+
cloud_map_options=ecs.CloudMapOptions(
|
|
47599
|
+
# Create SRV records - useful for bridge networking
|
|
47600
|
+
dns_record_type=cloudmap.DnsRecordType.SRV,
|
|
47601
|
+
# Targets port TCP port 7600 `specificContainer`
|
|
47602
|
+
container=specific_container,
|
|
47603
|
+
container_port=7600
|
|
47604
|
+
)
|
|
44999
47605
|
)
|
|
45000
47606
|
'''
|
|
45001
47607
|
|
|
@@ -45953,6 +48559,9 @@ class FargateService(
|
|
|
45953
48559
|
):
|
|
45954
48560
|
'''This creates a service using the Fargate launch type on an ECS cluster.
|
|
45955
48561
|
|
|
48562
|
+
Can also be used with Managed Instances compatible task definitions when using
|
|
48563
|
+
capacity provider strategies.
|
|
48564
|
+
|
|
45956
48565
|
:resource: AWS::ECS::Service
|
|
45957
48566
|
:exampleMetadata: infused
|
|
45958
48567
|
|
|
@@ -46510,6 +49119,7 @@ __all__ = [
|
|
|
46510
49119
|
"ITaskDefinitionRef",
|
|
46511
49120
|
"ITaskSetRef",
|
|
46512
49121
|
"InferenceAccelerator",
|
|
49122
|
+
"InstanceMonitoring",
|
|
46513
49123
|
"IpcMode",
|
|
46514
49124
|
"JournaldLogDriver",
|
|
46515
49125
|
"JournaldLogDriverProps",
|
|
@@ -46525,6 +49135,8 @@ __all__ = [
|
|
|
46525
49135
|
"LogDriverConfig",
|
|
46526
49136
|
"LogDrivers",
|
|
46527
49137
|
"MachineImageType",
|
|
49138
|
+
"ManagedInstancesCapacityProvider",
|
|
49139
|
+
"ManagedInstancesCapacityProviderProps",
|
|
46528
49140
|
"ManagedStorageConfiguration",
|
|
46529
49141
|
"MemoryUtilizationScalingProps",
|
|
46530
49142
|
"MountPoint",
|
|
@@ -46536,6 +49148,7 @@ __all__ = [
|
|
|
46536
49148
|
"PortMap",
|
|
46537
49149
|
"PortMapping",
|
|
46538
49150
|
"PrimaryTaskSetReference",
|
|
49151
|
+
"PropagateManagedInstancesTags",
|
|
46539
49152
|
"PropagatedTagSource",
|
|
46540
49153
|
"Protocol",
|
|
46541
49154
|
"ProxyConfiguration",
|
|
@@ -46914,6 +49527,8 @@ def _typecheckingstub__481a7064afb879135819febdd572a91fb6799e4bfadf66c711f640b51
|
|
|
46914
49527
|
def _typecheckingstub__48080bdf05dc1c4ca9ab46c833774163f6afcd0d1551b378b8d59e67bc180c3f(
|
|
46915
49528
|
*,
|
|
46916
49529
|
auto_scaling_group_provider: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCapacityProvider.AutoScalingGroupProviderProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
49530
|
+
cluster_name: typing.Optional[builtins.str] = None,
|
|
49531
|
+
managed_instances_provider: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCapacityProvider.ManagedInstancesProviderProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
46917
49532
|
name: typing.Optional[builtins.str] = None,
|
|
46918
49533
|
tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
46919
49534
|
) -> None:
|
|
@@ -48323,6 +50938,44 @@ def _typecheckingstub__4028d39adfbd4018be781b02eae5afae009ba3d6754c9cac3c26580b7
|
|
|
48323
50938
|
"""Type checking stubs"""
|
|
48324
50939
|
pass
|
|
48325
50940
|
|
|
50941
|
+
def _typecheckingstub__718bb820f1409b5f15556f2e394659a060bda46e302dbb4e973a6484f24497de(
|
|
50942
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
50943
|
+
id: builtins.str,
|
|
50944
|
+
*,
|
|
50945
|
+
ec2_instance_profile: _IInstanceProfile_10d5ce2c,
|
|
50946
|
+
subnets: typing.Sequence[_ISubnet_d57d1229],
|
|
50947
|
+
capacity_provider_name: typing.Optional[builtins.str] = None,
|
|
50948
|
+
infrastructure_role: typing.Optional[_IRole_235f5d8e] = None,
|
|
50949
|
+
instance_requirements: typing.Optional[typing.Union[_InstanceRequirementsConfig_1b353659, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
50950
|
+
monitoring: typing.Optional[InstanceMonitoring] = None,
|
|
50951
|
+
propagate_tags: typing.Optional[PropagateManagedInstancesTags] = None,
|
|
50952
|
+
security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
|
|
50953
|
+
task_volume_storage: typing.Optional[_Size_7b441c34] = None,
|
|
50954
|
+
) -> None:
|
|
50955
|
+
"""Type checking stubs"""
|
|
50956
|
+
pass
|
|
50957
|
+
|
|
50958
|
+
def _typecheckingstub__86f1df235e6255faeece6081f964f386186a84532c53bb8fad57fd4ab50e809d(
|
|
50959
|
+
cluster: ICluster,
|
|
50960
|
+
) -> None:
|
|
50961
|
+
"""Type checking stubs"""
|
|
50962
|
+
pass
|
|
50963
|
+
|
|
50964
|
+
def _typecheckingstub__efa15b9a00384128ebdb40ffd56f7e66e8863f1c3a6b8d4cf8bc61fb9e822e92(
|
|
50965
|
+
*,
|
|
50966
|
+
ec2_instance_profile: _IInstanceProfile_10d5ce2c,
|
|
50967
|
+
subnets: typing.Sequence[_ISubnet_d57d1229],
|
|
50968
|
+
capacity_provider_name: typing.Optional[builtins.str] = None,
|
|
50969
|
+
infrastructure_role: typing.Optional[_IRole_235f5d8e] = None,
|
|
50970
|
+
instance_requirements: typing.Optional[typing.Union[_InstanceRequirementsConfig_1b353659, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
50971
|
+
monitoring: typing.Optional[InstanceMonitoring] = None,
|
|
50972
|
+
propagate_tags: typing.Optional[PropagateManagedInstancesTags] = None,
|
|
50973
|
+
security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
|
|
50974
|
+
task_volume_storage: typing.Optional[_Size_7b441c34] = None,
|
|
50975
|
+
) -> None:
|
|
50976
|
+
"""Type checking stubs"""
|
|
50977
|
+
pass
|
|
50978
|
+
|
|
48326
50979
|
def _typecheckingstub__2f9a1356d6603371cc25e0653216ab0167448ba43002bef5b32c489376e7fbb9(
|
|
48327
50980
|
*,
|
|
48328
50981
|
fargate_ephemeral_storage_kms_key: typing.Optional[_IKey_5f11635f] = None,
|
|
@@ -49178,6 +51831,8 @@ def _typecheckingstub__59a913caee739f6d41600bf8ae89985db638913fbcb77a8abd5451cda
|
|
|
49178
51831
|
id: builtins.str,
|
|
49179
51832
|
*,
|
|
49180
51833
|
auto_scaling_group_provider: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCapacityProvider.AutoScalingGroupProviderProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
51834
|
+
cluster_name: typing.Optional[builtins.str] = None,
|
|
51835
|
+
managed_instances_provider: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCapacityProvider.ManagedInstancesProviderProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
49181
51836
|
name: typing.Optional[builtins.str] = None,
|
|
49182
51837
|
tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
49183
51838
|
) -> None:
|
|
@@ -49210,6 +51865,18 @@ def _typecheckingstub__5888da07adc4050987d977b4699983a6760a2abcd538f800018e65953
|
|
|
49210
51865
|
"""Type checking stubs"""
|
|
49211
51866
|
pass
|
|
49212
51867
|
|
|
51868
|
+
def _typecheckingstub__56e821d6de113ad791628d9a188368814c7c0fb94ce466313a674dfb2a04780b(
|
|
51869
|
+
value: typing.Optional[builtins.str],
|
|
51870
|
+
) -> None:
|
|
51871
|
+
"""Type checking stubs"""
|
|
51872
|
+
pass
|
|
51873
|
+
|
|
51874
|
+
def _typecheckingstub__1eade181f601623fa0955313b90bd74d62cfcd3ee4f4809fd9998abc514cb4bc(
|
|
51875
|
+
value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnCapacityProvider.ManagedInstancesProviderProperty]],
|
|
51876
|
+
) -> None:
|
|
51877
|
+
"""Type checking stubs"""
|
|
51878
|
+
pass
|
|
51879
|
+
|
|
49213
51880
|
def _typecheckingstub__6b097d35daad25c1c594150aba1acbb2fe2a7052d42d247db35563ec5fed6bd4(
|
|
49214
51881
|
value: typing.Optional[builtins.str],
|
|
49215
51882
|
) -> None:
|
|
@@ -49222,6 +51889,22 @@ def _typecheckingstub__81c56757bceb2c5880b41cbaabe62c67844b248e61c810588b5c50b5f
|
|
|
49222
51889
|
"""Type checking stubs"""
|
|
49223
51890
|
pass
|
|
49224
51891
|
|
|
51892
|
+
def _typecheckingstub__43d53bcba92c90cf6f4d328d0942a76121d27482644e63c47c94438bbe161846(
|
|
51893
|
+
*,
|
|
51894
|
+
max: typing.Optional[jsii.Number] = None,
|
|
51895
|
+
min: typing.Optional[jsii.Number] = None,
|
|
51896
|
+
) -> None:
|
|
51897
|
+
"""Type checking stubs"""
|
|
51898
|
+
pass
|
|
51899
|
+
|
|
51900
|
+
def _typecheckingstub__05b0b4abd870382eb40911671e91b829abe416723b1b38346d22783d1a2c8f67(
|
|
51901
|
+
*,
|
|
51902
|
+
max: typing.Optional[jsii.Number] = None,
|
|
51903
|
+
min: typing.Optional[jsii.Number] = None,
|
|
51904
|
+
) -> None:
|
|
51905
|
+
"""Type checking stubs"""
|
|
51906
|
+
pass
|
|
51907
|
+
|
|
49225
51908
|
def _typecheckingstub__ca441075e92a847965e776db4f5ab9f545ce368b5efa4bc2476d58061dd0b742(
|
|
49226
51909
|
*,
|
|
49227
51910
|
auto_scaling_group_arn: builtins.str,
|
|
@@ -49232,6 +51915,79 @@ def _typecheckingstub__ca441075e92a847965e776db4f5ab9f545ce368b5efa4bc2476d58061
|
|
|
49232
51915
|
"""Type checking stubs"""
|
|
49233
51916
|
pass
|
|
49234
51917
|
|
|
51918
|
+
def _typecheckingstub__55f829b236ccb12cc42e7c374a47c6c0909fecf313bf4ebb779169af029b2ba4(
|
|
51919
|
+
*,
|
|
51920
|
+
max: typing.Optional[jsii.Number] = None,
|
|
51921
|
+
min: typing.Optional[jsii.Number] = None,
|
|
51922
|
+
) -> None:
|
|
51923
|
+
"""Type checking stubs"""
|
|
51924
|
+
pass
|
|
51925
|
+
|
|
51926
|
+
def _typecheckingstub__cb545da33f3067adee24bf90d3e903b06a7562a7e6ea6b3785f5b0ae6f3e105d(
|
|
51927
|
+
*,
|
|
51928
|
+
ec2_instance_profile_arn: builtins.str,
|
|
51929
|
+
network_configuration: typing.Union[_IResolvable_da3f097b, typing.Union[CfnCapacityProvider.ManagedInstancesNetworkConfigurationProperty, typing.Dict[builtins.str, typing.Any]]],
|
|
51930
|
+
instance_requirements: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCapacityProvider.InstanceRequirementsRequestProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
51931
|
+
monitoring: typing.Optional[builtins.str] = None,
|
|
51932
|
+
storage_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCapacityProvider.ManagedInstancesStorageConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
51933
|
+
) -> None:
|
|
51934
|
+
"""Type checking stubs"""
|
|
51935
|
+
pass
|
|
51936
|
+
|
|
51937
|
+
def _typecheckingstub__d2fd7f319e7a3e49a0d45d342ee067f3719bf8c8519bbab1a3a3c81f41641bec(
|
|
51938
|
+
*,
|
|
51939
|
+
memory_mib: typing.Union[_IResolvable_da3f097b, typing.Union[CfnCapacityProvider.MemoryMiBRequestProperty, typing.Dict[builtins.str, typing.Any]]],
|
|
51940
|
+
v_cpu_count: typing.Union[_IResolvable_da3f097b, typing.Union[CfnCapacityProvider.VCpuCountRangeRequestProperty, typing.Dict[builtins.str, typing.Any]]],
|
|
51941
|
+
accelerator_count: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCapacityProvider.AcceleratorCountRequestProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
51942
|
+
accelerator_manufacturers: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
51943
|
+
accelerator_names: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
51944
|
+
accelerator_total_memory_mib: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCapacityProvider.AcceleratorTotalMemoryMiBRequestProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
51945
|
+
accelerator_types: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
51946
|
+
allowed_instance_types: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
51947
|
+
bare_metal: typing.Optional[builtins.str] = None,
|
|
51948
|
+
baseline_ebs_bandwidth_mbps: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCapacityProvider.BaselineEbsBandwidthMbpsRequestProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
51949
|
+
burstable_performance: typing.Optional[builtins.str] = None,
|
|
51950
|
+
cpu_manufacturers: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
51951
|
+
excluded_instance_types: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
51952
|
+
instance_generations: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
51953
|
+
local_storage: typing.Optional[builtins.str] = None,
|
|
51954
|
+
local_storage_types: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
51955
|
+
max_spot_price_as_percentage_of_optimal_on_demand_price: typing.Optional[jsii.Number] = None,
|
|
51956
|
+
memory_gib_per_v_cpu: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCapacityProvider.MemoryGiBPerVCpuRequestProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
51957
|
+
network_bandwidth_gbps: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCapacityProvider.NetworkBandwidthGbpsRequestProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
51958
|
+
network_interface_count: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCapacityProvider.NetworkInterfaceCountRequestProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
51959
|
+
on_demand_max_price_percentage_over_lowest_price: typing.Optional[jsii.Number] = None,
|
|
51960
|
+
require_hibernate_support: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
51961
|
+
spot_max_price_percentage_over_lowest_price: typing.Optional[jsii.Number] = None,
|
|
51962
|
+
total_local_storage_gb: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCapacityProvider.TotalLocalStorageGBRequestProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
51963
|
+
) -> None:
|
|
51964
|
+
"""Type checking stubs"""
|
|
51965
|
+
pass
|
|
51966
|
+
|
|
51967
|
+
def _typecheckingstub__b8cf486af6edb309081654dbba3fcab445314c93a7a69231f0ca16b32fff9ae0(
|
|
51968
|
+
*,
|
|
51969
|
+
subnets: typing.Sequence[builtins.str],
|
|
51970
|
+
security_groups: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
51971
|
+
) -> None:
|
|
51972
|
+
"""Type checking stubs"""
|
|
51973
|
+
pass
|
|
51974
|
+
|
|
51975
|
+
def _typecheckingstub__45a3888e29c1b6fb29bc3dbf90f279f8c543b8924bb51956a75f3290eca0b7c9(
|
|
51976
|
+
*,
|
|
51977
|
+
infrastructure_role_arn: builtins.str,
|
|
51978
|
+
instance_launch_template: typing.Union[_IResolvable_da3f097b, typing.Union[CfnCapacityProvider.InstanceLaunchTemplateProperty, typing.Dict[builtins.str, typing.Any]]],
|
|
51979
|
+
propagate_tags: typing.Optional[builtins.str] = None,
|
|
51980
|
+
) -> None:
|
|
51981
|
+
"""Type checking stubs"""
|
|
51982
|
+
pass
|
|
51983
|
+
|
|
51984
|
+
def _typecheckingstub__8d1e06667171eb082ce77bd8060c435a6f130ac6e9384412fb372763b838e22b(
|
|
51985
|
+
*,
|
|
51986
|
+
storage_size_gib: jsii.Number,
|
|
51987
|
+
) -> None:
|
|
51988
|
+
"""Type checking stubs"""
|
|
51989
|
+
pass
|
|
51990
|
+
|
|
49235
51991
|
def _typecheckingstub__b6ba7d15ac2121ea6e10f20fe3e2441ae17d00f30897db384f8f72e7d6406865(
|
|
49236
51992
|
*,
|
|
49237
51993
|
instance_warmup_period: typing.Optional[jsii.Number] = None,
|
|
@@ -49243,6 +51999,54 @@ def _typecheckingstub__b6ba7d15ac2121ea6e10f20fe3e2441ae17d00f30897db384f8f72e7d
|
|
|
49243
51999
|
"""Type checking stubs"""
|
|
49244
52000
|
pass
|
|
49245
52001
|
|
|
52002
|
+
def _typecheckingstub__01b8a285c0250eb2fa8268dc32a515cb17c662ef0085fef55300ca206a1a746c(
|
|
52003
|
+
*,
|
|
52004
|
+
max: typing.Optional[jsii.Number] = None,
|
|
52005
|
+
min: typing.Optional[jsii.Number] = None,
|
|
52006
|
+
) -> None:
|
|
52007
|
+
"""Type checking stubs"""
|
|
52008
|
+
pass
|
|
52009
|
+
|
|
52010
|
+
def _typecheckingstub__a69680081ccdd5c785405398f4f1d616d0c97b874ced183049da2f9c6e34787e(
|
|
52011
|
+
*,
|
|
52012
|
+
min: jsii.Number,
|
|
52013
|
+
max: typing.Optional[jsii.Number] = None,
|
|
52014
|
+
) -> None:
|
|
52015
|
+
"""Type checking stubs"""
|
|
52016
|
+
pass
|
|
52017
|
+
|
|
52018
|
+
def _typecheckingstub__0b64349de0e0aa036cd2591e8e4db2f873feceecef981a341ecb449ccf6868be(
|
|
52019
|
+
*,
|
|
52020
|
+
max: typing.Optional[jsii.Number] = None,
|
|
52021
|
+
min: typing.Optional[jsii.Number] = None,
|
|
52022
|
+
) -> None:
|
|
52023
|
+
"""Type checking stubs"""
|
|
52024
|
+
pass
|
|
52025
|
+
|
|
52026
|
+
def _typecheckingstub__b7767213e94df32328c6564e342330aa95c25ac187a4114099951ea2e0802ddb(
|
|
52027
|
+
*,
|
|
52028
|
+
max: typing.Optional[jsii.Number] = None,
|
|
52029
|
+
min: typing.Optional[jsii.Number] = None,
|
|
52030
|
+
) -> None:
|
|
52031
|
+
"""Type checking stubs"""
|
|
52032
|
+
pass
|
|
52033
|
+
|
|
52034
|
+
def _typecheckingstub__0b9cda28d66272632c4d42fbe68333883ca70c46c98159c2cd3f806c8bcc87fb(
|
|
52035
|
+
*,
|
|
52036
|
+
max: typing.Optional[jsii.Number] = None,
|
|
52037
|
+
min: typing.Optional[jsii.Number] = None,
|
|
52038
|
+
) -> None:
|
|
52039
|
+
"""Type checking stubs"""
|
|
52040
|
+
pass
|
|
52041
|
+
|
|
52042
|
+
def _typecheckingstub__f6d818d37cfd5e478cf4f6075fe0ba45bdd81aa83e9eb5b3f01094a71abf8822(
|
|
52043
|
+
*,
|
|
52044
|
+
min: jsii.Number,
|
|
52045
|
+
max: typing.Optional[jsii.Number] = None,
|
|
52046
|
+
) -> None:
|
|
52047
|
+
"""Type checking stubs"""
|
|
52048
|
+
pass
|
|
52049
|
+
|
|
49246
52050
|
def _typecheckingstub__ea27f9318b2a509011f1175119715629617e6b8d976d0782e37d54e45f1e94c8(
|
|
49247
52051
|
scope: _constructs_77d1e7e8.Construct,
|
|
49248
52052
|
id: builtins.str,
|
|
@@ -50683,6 +53487,12 @@ def _typecheckingstub__e4b0382e0260e2588867571eddfb9f2d145389bea69e7e0b00917ba8a
|
|
|
50683
53487
|
"""Type checking stubs"""
|
|
50684
53488
|
pass
|
|
50685
53489
|
|
|
53490
|
+
def _typecheckingstub__5a82d1be969d3085ebea9661809bac2d0fcfb12723cd197d9b51420e44f7dbe3(
|
|
53491
|
+
provider: ManagedInstancesCapacityProvider,
|
|
53492
|
+
) -> None:
|
|
53493
|
+
"""Type checking stubs"""
|
|
53494
|
+
pass
|
|
53495
|
+
|
|
50686
53496
|
def _typecheckingstub__dc82c424ab5a0b25f0e355e707c39f45826ed166c15976f45690abfa1ffcd30e(
|
|
50687
53497
|
key_pattern: builtins.str,
|
|
50688
53498
|
) -> None:
|