aws-cdk-lib 2.210.0__py3-none-any.whl → 2.211.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 +6 -11
- aws_cdk/_jsii/__init__.py +1 -1
- aws_cdk/_jsii/{aws-cdk-lib@2.210.0.jsii.tgz → aws-cdk-lib@2.211.0.jsii.tgz} +0 -0
- aws_cdk/aws_amazonmq/__init__.py +2 -1
- aws_cdk/aws_appconfig/__init__.py +9 -0
- aws_cdk/aws_arcregionswitch/__init__.py +4962 -0
- aws_cdk/aws_athena/__init__.py +23 -19
- aws_cdk/aws_autoscaling/__init__.py +6 -6
- aws_cdk/aws_batch/__init__.py +721 -51
- aws_cdk/aws_cassandra/__init__.py +28 -1
- aws_cdk/aws_cloudfront/__init__.py +20 -8
- aws_cdk/aws_cognito/__init__.py +9 -2
- aws_cdk/aws_datazone/__init__.py +118 -77
- aws_cdk/aws_dax/__init__.py +39 -0
- aws_cdk/aws_deadline/__init__.py +155 -7
- aws_cdk/aws_docdb/__init__.py +20 -11
- aws_cdk/aws_dynamodb/__init__.py +160 -20
- aws_cdk/aws_ec2/__init__.py +978 -256
- aws_cdk/aws_ecr/__init__.py +274 -0
- aws_cdk/aws_ecs/__init__.py +1642 -140
- aws_cdk/aws_eks/__init__.py +51 -3
- aws_cdk/aws_elasticloadbalancingv2/__init__.py +30 -16
- aws_cdk/aws_entityresolution/__init__.py +240 -45
- aws_cdk/aws_evs/__init__.py +20 -45
- aws_cdk/aws_iot/__init__.py +387 -0
- aws_cdk/aws_iotsitewise/__init__.py +1247 -139
- aws_cdk/aws_ivs/__init__.py +443 -33
- aws_cdk/aws_kinesisfirehose/__init__.py +2 -0
- aws_cdk/aws_lambda/__init__.py +3 -3
- aws_cdk/aws_lightsail/__init__.py +590 -0
- aws_cdk/aws_logs/__init__.py +97 -3
- aws_cdk/aws_medialive/__init__.py +270 -7
- aws_cdk/aws_mediapackagev2/__init__.py +204 -6
- aws_cdk/aws_neptune/__init__.py +41 -2
- aws_cdk/aws_networkfirewall/__init__.py +490 -134
- aws_cdk/aws_observabilityadmin/__init__.py +1468 -0
- aws_cdk/aws_opensearchserverless/__init__.py +2 -2
- aws_cdk/aws_opsworks/__init__.py +125 -125
- aws_cdk/aws_opsworkscm/__init__.py +1 -53
- aws_cdk/aws_pcs/__init__.py +36 -0
- aws_cdk/aws_qbusiness/__init__.py +3 -3
- aws_cdk/aws_quicksight/__init__.py +107 -0
- aws_cdk/aws_rds/__init__.py +274 -0
- aws_cdk/aws_s3/__init__.py +56 -1
- aws_cdk/aws_s3express/__init__.py +52 -1
- aws_cdk/aws_sagemaker/__init__.py +4033 -218
- aws_cdk/aws_ses/__init__.py +172 -9
- aws_cdk/aws_ssm/__init__.py +8 -4
- aws_cdk/aws_verifiedpermissions/__init__.py +23 -2
- aws_cdk/aws_wisdom/__init__.py +2 -2
- aws_cdk/aws_workspacesweb/__init__.py +949 -157
- {aws_cdk_lib-2.210.0.dist-info → aws_cdk_lib-2.211.0.dist-info}/METADATA +8 -8
- {aws_cdk_lib-2.210.0.dist-info → aws_cdk_lib-2.211.0.dist-info}/RECORD +57 -55
- {aws_cdk_lib-2.210.0.dist-info → aws_cdk_lib-2.211.0.dist-info}/LICENSE +0 -0
- {aws_cdk_lib-2.210.0.dist-info → aws_cdk_lib-2.211.0.dist-info}/NOTICE +0 -0
- {aws_cdk_lib-2.210.0.dist-info → aws_cdk_lib-2.211.0.dist-info}/WHEEL +0 -0
- {aws_cdk_lib-2.210.0.dist-info → aws_cdk_lib-2.211.0.dist-info}/top_level.txt +0 -0
aws_cdk/aws_ecs/__init__.py
CHANGED
|
@@ -2118,87 +2118,38 @@ Amazon ECS supports native blue/green deployments that allow you to deploy new v
|
|
|
2118
2118
|
|
|
2119
2119
|
[Amazon ECS blue/green deployments](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-blue-green.html)
|
|
2120
2120
|
|
|
2121
|
-
### Using Escape Hatches for Blue/Green Features
|
|
2122
|
-
|
|
2123
|
-
The new blue/green deployment features are added to CloudFormation but not yet available in the CDK L2 constructs, you can use escape hatches to access them through the L1 (CfnService) construct.
|
|
2124
|
-
|
|
2125
|
-
#### Load Balancer Advanced Configuration
|
|
2126
|
-
|
|
2127
|
-
Configure advanced load balancer settings for blue/green deployments with alternate target groups and listener rules:
|
|
2128
|
-
|
|
2129
|
-
```python
|
|
2130
|
-
# service: ecs.FargateService
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
cfn_service = service.node.default_child
|
|
2134
|
-
cfn_service.load_balancers = [ecs.CfnService.LoadBalancerProperty(
|
|
2135
|
-
container_name="web",
|
|
2136
|
-
container_port=80,
|
|
2137
|
-
target_group_arn="arn:aws:elasticloadbalancing:region:account:targetgroup/production",
|
|
2138
|
-
advanced_configuration=ecs.CfnService.AdvancedConfigurationProperty(
|
|
2139
|
-
alternate_target_group_arn="arn:aws:elasticloadbalancing:region:account:targetgroup/test",
|
|
2140
|
-
production_listener_rule="arn:aws:elasticloadbalancing:region:account:listener-rule/production-rule",
|
|
2141
|
-
test_listener_rule="arn:aws:elasticloadbalancing:region:account:listener-rule/test-rule",
|
|
2142
|
-
role_arn="arn:aws:iam::account:role/ecs-blue-green-role"
|
|
2143
|
-
)
|
|
2144
|
-
)]
|
|
2145
|
-
```
|
|
2146
|
-
|
|
2147
|
-
#### Blue/Green Deployment Configuration
|
|
2148
|
-
|
|
2149
|
-
Configure deployment strategy with bake time and lifecycle hooks:
|
|
2150
|
-
|
|
2151
2121
|
```python
|
|
2152
|
-
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
cfn_service = service.node.default_child
|
|
2156
|
-
cfn_service.deployment_configuration = ecs.CfnService.DeploymentConfigurationProperty(
|
|
2157
|
-
maximum_percent=200,
|
|
2158
|
-
minimum_healthy_percent=100,
|
|
2159
|
-
strategy="BLUE_GREEN",
|
|
2160
|
-
bake_time_in_minutes=15,
|
|
2161
|
-
lifecycle_hooks=[ecs.CfnService.DeploymentLifecycleHookProperty(
|
|
2162
|
-
hook_target_arn="arn:aws:lambda:region:account:function:pre-deployment-hook",
|
|
2163
|
-
role_arn="arn:aws:iam::account:role/deployment-hook-role",
|
|
2164
|
-
lifecycle_stages=["PRE_STOP", "POST_START"]
|
|
2165
|
-
)]
|
|
2166
|
-
)
|
|
2167
|
-
```
|
|
2168
|
-
|
|
2169
|
-
#### Service Connect Test Traffic Rules
|
|
2122
|
+
import aws_cdk.aws_lambda as lambda_
|
|
2170
2123
|
|
|
2171
|
-
Configure test traffic routing for Service Connect during blue/green deployments:
|
|
2172
|
-
|
|
2173
|
-
```python
|
|
2174
2124
|
# cluster: ecs.Cluster
|
|
2175
2125
|
# task_definition: ecs.TaskDefinition
|
|
2126
|
+
# lambda_hook: lambda.Function
|
|
2127
|
+
# blue_target_group: elbv2.ApplicationTargetGroup
|
|
2128
|
+
# green_target_group: elbv2.ApplicationTargetGroup
|
|
2129
|
+
# prod_listener_rule: elbv2.ApplicationListenerRule
|
|
2176
2130
|
|
|
2177
2131
|
|
|
2178
2132
|
service = ecs.FargateService(self, "Service",
|
|
2179
2133
|
cluster=cluster,
|
|
2180
|
-
task_definition=task_definition
|
|
2134
|
+
task_definition=task_definition,
|
|
2135
|
+
deployment_strategy=ecs.DeploymentStrategy.BLUE_GREEN
|
|
2181
2136
|
)
|
|
2182
2137
|
|
|
2183
|
-
|
|
2184
|
-
|
|
2185
|
-
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
|
|
2189
|
-
|
|
2190
|
-
|
|
2191
|
-
|
|
2192
|
-
|
|
2193
|
-
|
|
2194
|
-
|
|
2195
|
-
exact="beta-version"
|
|
2196
|
-
)
|
|
2197
|
-
)
|
|
2198
|
-
)
|
|
2199
|
-
)]
|
|
2200
|
-
)]
|
|
2138
|
+
service.add_lifecycle_hook(ecs.DeploymentLifecycleLambdaTarget(lambda_hook, "PreScaleHook",
|
|
2139
|
+
lifecycle_stages=[ecs.DeploymentLifecycleStage.PRE_SCALE_UP]
|
|
2140
|
+
))
|
|
2141
|
+
|
|
2142
|
+
target = service.load_balancer_target(
|
|
2143
|
+
container_name="nginx",
|
|
2144
|
+
container_port=80,
|
|
2145
|
+
protocol=ecs.Protocol.TCP,
|
|
2146
|
+
alternate_target=ecs.AlternateTarget("AlternateTarget",
|
|
2147
|
+
alternate_target_group=green_target_group,
|
|
2148
|
+
production_listener=ecs.ListenerRuleConfiguration.application_listener_rule(prod_listener_rule)
|
|
2149
|
+
)
|
|
2201
2150
|
)
|
|
2151
|
+
|
|
2152
|
+
target.attach_to_application_target_group(blue_target_group)
|
|
2202
2153
|
```
|
|
2203
2154
|
|
|
2204
2155
|
## Daemon Scheduling Strategy
|
|
@@ -2338,6 +2289,7 @@ from ..aws_elasticloadbalancingv2 import (
|
|
|
2338
2289
|
AddApplicationTargetsProps as _AddApplicationTargetsProps_76c7d190,
|
|
2339
2290
|
AddNetworkTargetsProps as _AddNetworkTargetsProps_ce6bdf17,
|
|
2340
2291
|
ApplicationListener as _ApplicationListener_e0620bf5,
|
|
2292
|
+
ApplicationListenerRule as _ApplicationListenerRule_f93ff606,
|
|
2341
2293
|
ApplicationProtocol as _ApplicationProtocol_aa5e9f29,
|
|
2342
2294
|
ApplicationProtocolVersion as _ApplicationProtocolVersion_dddfe47b,
|
|
2343
2295
|
ApplicationTargetGroup as _ApplicationTargetGroup_906fe365,
|
|
@@ -2346,6 +2298,7 @@ from ..aws_elasticloadbalancingv2 import (
|
|
|
2346
2298
|
IApplicationTargetGroup as _IApplicationTargetGroup_57799827,
|
|
2347
2299
|
INetworkLoadBalancerTarget as _INetworkLoadBalancerTarget_688b169f,
|
|
2348
2300
|
INetworkTargetGroup as _INetworkTargetGroup_abca2df7,
|
|
2301
|
+
ITargetGroup as _ITargetGroup_83c6f8c4,
|
|
2349
2302
|
ListenerCondition as _ListenerCondition_e8416430,
|
|
2350
2303
|
LoadBalancerTargetProps as _LoadBalancerTargetProps_4c30a73c,
|
|
2351
2304
|
NetworkListener as _NetworkListener_539c17bf,
|
|
@@ -2359,6 +2312,7 @@ from ..aws_iam import (
|
|
|
2359
2312
|
PolicyStatement as _PolicyStatement_0fe33853,
|
|
2360
2313
|
)
|
|
2361
2314
|
from ..aws_kms import IKey as _IKey_5f11635f
|
|
2315
|
+
from ..aws_lambda import IFunction as _IFunction_6adb0ab8
|
|
2362
2316
|
from ..aws_logs import (
|
|
2363
2317
|
ILogGroup as _ILogGroup_3c4fa718, RetentionDays as _RetentionDays_070f99f0
|
|
2364
2318
|
)
|
|
@@ -2605,7 +2559,7 @@ class AddCapacityOptions(
|
|
|
2605
2559
|
:param key_name: (deprecated) Name of SSH keypair to grant access to instances. ``launchTemplate`` and ``mixedInstancesPolicy`` must not be specified when this property is specified You can either specify ``keyPair`` or ``keyName``, not both. Default: - No SSH access will be possible.
|
|
2606
2560
|
:param key_pair: The SSH keypair to grant access to the instance. Feature flag ``AUTOSCALING_GENERATE_LAUNCH_TEMPLATE`` must be enabled to use this property. ``launchTemplate`` and ``mixedInstancesPolicy`` must not be specified when this property is specified. You can either specify ``keyPair`` or ``keyName``, not both. Default: - No SSH access will be possible.
|
|
2607
2561
|
:param max_capacity: Maximum number of instances in the fleet. Default: desiredCapacity
|
|
2608
|
-
:param max_instance_lifetime: The maximum amount of time that an instance can be in service. The maximum duration applies to all current and future instances in the group. As an instance approaches its maximum duration, it is terminated and replaced, and cannot be used again. You must specify a value of at least
|
|
2562
|
+
:param max_instance_lifetime: The maximum amount of time that an instance can be in service. The maximum duration applies to all current and future instances in the group. As an instance approaches its maximum duration, it is terminated and replaced, and cannot be used again. You must specify a value of at least 86,400 seconds (one day). To clear a previously set value, leave this property undefined. Default: none
|
|
2609
2563
|
:param min_capacity: Minimum number of instances in the fleet. Default: 1
|
|
2610
2564
|
:param new_instances_protected_from_scale_in: Whether newly-launched instances are protected from termination by Amazon EC2 Auto Scaling when scaling in. By default, Auto Scaling can terminate an instance at any time after launch when scaling in an Auto Scaling Group, subject to the group's termination policy. However, you may wish to protect newly-launched instances from being scaled in if they are going to run critical applications that should not be prematurely terminated. This flag must be enabled if the Auto Scaling Group will be associated with an ECS Capacity Provider with managed termination protection. Default: false
|
|
2611
2565
|
:param notifications: Configure autoscaling group to send notifications about fleet changes to an SNS topic(s). Default: - No fleet change notifications will be sent.
|
|
@@ -3027,7 +2981,7 @@ class AddCapacityOptions(
|
|
|
3027
2981
|
to all current and future instances in the group. As an instance approaches its maximum duration,
|
|
3028
2982
|
it is terminated and replaced, and cannot be used again.
|
|
3029
2983
|
|
|
3030
|
-
You must specify a value of at least
|
|
2984
|
+
You must specify a value of at least 86,400 seconds (one day). To clear a previously set value,
|
|
3031
2985
|
leave this property undefined.
|
|
3032
2986
|
|
|
3033
2987
|
:default: none
|
|
@@ -3286,6 +3240,306 @@ class AlarmBehavior(enum.Enum):
|
|
|
3286
3240
|
'''
|
|
3287
3241
|
|
|
3288
3242
|
|
|
3243
|
+
@jsii.data_type(
|
|
3244
|
+
jsii_type="aws-cdk-lib.aws_ecs.AlternateTargetConfig",
|
|
3245
|
+
jsii_struct_bases=[],
|
|
3246
|
+
name_mapping={
|
|
3247
|
+
"alternate_target_group_arn": "alternateTargetGroupArn",
|
|
3248
|
+
"role_arn": "roleArn",
|
|
3249
|
+
"production_listener_rule": "productionListenerRule",
|
|
3250
|
+
"test_listener_rule": "testListenerRule",
|
|
3251
|
+
},
|
|
3252
|
+
)
|
|
3253
|
+
class AlternateTargetConfig:
|
|
3254
|
+
def __init__(
|
|
3255
|
+
self,
|
|
3256
|
+
*,
|
|
3257
|
+
alternate_target_group_arn: builtins.str,
|
|
3258
|
+
role_arn: builtins.str,
|
|
3259
|
+
production_listener_rule: typing.Optional[builtins.str] = None,
|
|
3260
|
+
test_listener_rule: typing.Optional[builtins.str] = None,
|
|
3261
|
+
) -> None:
|
|
3262
|
+
'''Configuration returned by AlternateTargetConfiguration.bind().
|
|
3263
|
+
|
|
3264
|
+
:param alternate_target_group_arn: The ARN of the alternate target group.
|
|
3265
|
+
:param role_arn: The IAM role ARN for the configuration. Default: - a new role will be created
|
|
3266
|
+
:param production_listener_rule: The production listener rule ARN (ALB) or listener ARN (NLB). Default: - none
|
|
3267
|
+
:param test_listener_rule: The test listener rule ARN (ALB) or listener ARN (NLB). Default: - none
|
|
3268
|
+
|
|
3269
|
+
:exampleMetadata: fixture=_generated
|
|
3270
|
+
|
|
3271
|
+
Example::
|
|
3272
|
+
|
|
3273
|
+
# The code below shows an example of how to instantiate this type.
|
|
3274
|
+
# The values are placeholders you should change.
|
|
3275
|
+
from aws_cdk import aws_ecs as ecs
|
|
3276
|
+
|
|
3277
|
+
alternate_target_config = ecs.AlternateTargetConfig(
|
|
3278
|
+
alternate_target_group_arn="alternateTargetGroupArn",
|
|
3279
|
+
role_arn="roleArn",
|
|
3280
|
+
|
|
3281
|
+
# the properties below are optional
|
|
3282
|
+
production_listener_rule="productionListenerRule",
|
|
3283
|
+
test_listener_rule="testListenerRule"
|
|
3284
|
+
)
|
|
3285
|
+
'''
|
|
3286
|
+
if __debug__:
|
|
3287
|
+
type_hints = typing.get_type_hints(_typecheckingstub__792a358f64361d957b07e1ed7f1116dd993837c77bffc674ebb1385615159cd7)
|
|
3288
|
+
check_type(argname="argument alternate_target_group_arn", value=alternate_target_group_arn, expected_type=type_hints["alternate_target_group_arn"])
|
|
3289
|
+
check_type(argname="argument role_arn", value=role_arn, expected_type=type_hints["role_arn"])
|
|
3290
|
+
check_type(argname="argument production_listener_rule", value=production_listener_rule, expected_type=type_hints["production_listener_rule"])
|
|
3291
|
+
check_type(argname="argument test_listener_rule", value=test_listener_rule, expected_type=type_hints["test_listener_rule"])
|
|
3292
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
3293
|
+
"alternate_target_group_arn": alternate_target_group_arn,
|
|
3294
|
+
"role_arn": role_arn,
|
|
3295
|
+
}
|
|
3296
|
+
if production_listener_rule is not None:
|
|
3297
|
+
self._values["production_listener_rule"] = production_listener_rule
|
|
3298
|
+
if test_listener_rule is not None:
|
|
3299
|
+
self._values["test_listener_rule"] = test_listener_rule
|
|
3300
|
+
|
|
3301
|
+
@builtins.property
|
|
3302
|
+
def alternate_target_group_arn(self) -> builtins.str:
|
|
3303
|
+
'''The ARN of the alternate target group.'''
|
|
3304
|
+
result = self._values.get("alternate_target_group_arn")
|
|
3305
|
+
assert result is not None, "Required property 'alternate_target_group_arn' is missing"
|
|
3306
|
+
return typing.cast(builtins.str, result)
|
|
3307
|
+
|
|
3308
|
+
@builtins.property
|
|
3309
|
+
def role_arn(self) -> builtins.str:
|
|
3310
|
+
'''The IAM role ARN for the configuration.
|
|
3311
|
+
|
|
3312
|
+
:default: - a new role will be created
|
|
3313
|
+
'''
|
|
3314
|
+
result = self._values.get("role_arn")
|
|
3315
|
+
assert result is not None, "Required property 'role_arn' is missing"
|
|
3316
|
+
return typing.cast(builtins.str, result)
|
|
3317
|
+
|
|
3318
|
+
@builtins.property
|
|
3319
|
+
def production_listener_rule(self) -> typing.Optional[builtins.str]:
|
|
3320
|
+
'''The production listener rule ARN (ALB) or listener ARN (NLB).
|
|
3321
|
+
|
|
3322
|
+
:default: - none
|
|
3323
|
+
'''
|
|
3324
|
+
result = self._values.get("production_listener_rule")
|
|
3325
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
3326
|
+
|
|
3327
|
+
@builtins.property
|
|
3328
|
+
def test_listener_rule(self) -> typing.Optional[builtins.str]:
|
|
3329
|
+
'''The test listener rule ARN (ALB) or listener ARN (NLB).
|
|
3330
|
+
|
|
3331
|
+
:default: - none
|
|
3332
|
+
'''
|
|
3333
|
+
result = self._values.get("test_listener_rule")
|
|
3334
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
3335
|
+
|
|
3336
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
3337
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
3338
|
+
|
|
3339
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
3340
|
+
return not (rhs == self)
|
|
3341
|
+
|
|
3342
|
+
def __repr__(self) -> str:
|
|
3343
|
+
return "AlternateTargetConfig(%s)" % ", ".join(
|
|
3344
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
3345
|
+
)
|
|
3346
|
+
|
|
3347
|
+
|
|
3348
|
+
@jsii.data_type(
|
|
3349
|
+
jsii_type="aws-cdk-lib.aws_ecs.AlternateTargetOptions",
|
|
3350
|
+
jsii_struct_bases=[],
|
|
3351
|
+
name_mapping={"role": "role", "test_listener": "testListener"},
|
|
3352
|
+
)
|
|
3353
|
+
class AlternateTargetOptions:
|
|
3354
|
+
def __init__(
|
|
3355
|
+
self,
|
|
3356
|
+
*,
|
|
3357
|
+
role: typing.Optional[_IRole_235f5d8e] = None,
|
|
3358
|
+
test_listener: typing.Optional["ListenerRuleConfiguration"] = None,
|
|
3359
|
+
) -> None:
|
|
3360
|
+
'''Options for AlternateTarget configuration.
|
|
3361
|
+
|
|
3362
|
+
:param role: The IAM role for the configuration. Default: - a new role will be created
|
|
3363
|
+
:param test_listener: The test listener configuration. Default: - none
|
|
3364
|
+
|
|
3365
|
+
:exampleMetadata: fixture=_generated
|
|
3366
|
+
|
|
3367
|
+
Example::
|
|
3368
|
+
|
|
3369
|
+
# The code below shows an example of how to instantiate this type.
|
|
3370
|
+
# The values are placeholders you should change.
|
|
3371
|
+
from aws_cdk import aws_ecs as ecs
|
|
3372
|
+
from aws_cdk import aws_iam as iam
|
|
3373
|
+
|
|
3374
|
+
# listener_rule_configuration: ecs.ListenerRuleConfiguration
|
|
3375
|
+
# role: iam.Role
|
|
3376
|
+
|
|
3377
|
+
alternate_target_options = ecs.AlternateTargetOptions(
|
|
3378
|
+
role=role,
|
|
3379
|
+
test_listener=listener_rule_configuration
|
|
3380
|
+
)
|
|
3381
|
+
'''
|
|
3382
|
+
if __debug__:
|
|
3383
|
+
type_hints = typing.get_type_hints(_typecheckingstub__419cc917bedbbd0a41ca044bcc54720f5a35bdc4f2dca6e11ae40da3ed05758d)
|
|
3384
|
+
check_type(argname="argument role", value=role, expected_type=type_hints["role"])
|
|
3385
|
+
check_type(argname="argument test_listener", value=test_listener, expected_type=type_hints["test_listener"])
|
|
3386
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
3387
|
+
if role is not None:
|
|
3388
|
+
self._values["role"] = role
|
|
3389
|
+
if test_listener is not None:
|
|
3390
|
+
self._values["test_listener"] = test_listener
|
|
3391
|
+
|
|
3392
|
+
@builtins.property
|
|
3393
|
+
def role(self) -> typing.Optional[_IRole_235f5d8e]:
|
|
3394
|
+
'''The IAM role for the configuration.
|
|
3395
|
+
|
|
3396
|
+
:default: - a new role will be created
|
|
3397
|
+
'''
|
|
3398
|
+
result = self._values.get("role")
|
|
3399
|
+
return typing.cast(typing.Optional[_IRole_235f5d8e], result)
|
|
3400
|
+
|
|
3401
|
+
@builtins.property
|
|
3402
|
+
def test_listener(self) -> typing.Optional["ListenerRuleConfiguration"]:
|
|
3403
|
+
'''The test listener configuration.
|
|
3404
|
+
|
|
3405
|
+
:default: - none
|
|
3406
|
+
'''
|
|
3407
|
+
result = self._values.get("test_listener")
|
|
3408
|
+
return typing.cast(typing.Optional["ListenerRuleConfiguration"], result)
|
|
3409
|
+
|
|
3410
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
3411
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
3412
|
+
|
|
3413
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
3414
|
+
return not (rhs == self)
|
|
3415
|
+
|
|
3416
|
+
def __repr__(self) -> str:
|
|
3417
|
+
return "AlternateTargetOptions(%s)" % ", ".join(
|
|
3418
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
3419
|
+
)
|
|
3420
|
+
|
|
3421
|
+
|
|
3422
|
+
@jsii.data_type(
|
|
3423
|
+
jsii_type="aws-cdk-lib.aws_ecs.AlternateTargetProps",
|
|
3424
|
+
jsii_struct_bases=[AlternateTargetOptions],
|
|
3425
|
+
name_mapping={
|
|
3426
|
+
"role": "role",
|
|
3427
|
+
"test_listener": "testListener",
|
|
3428
|
+
"alternate_target_group": "alternateTargetGroup",
|
|
3429
|
+
"production_listener": "productionListener",
|
|
3430
|
+
},
|
|
3431
|
+
)
|
|
3432
|
+
class AlternateTargetProps(AlternateTargetOptions):
|
|
3433
|
+
def __init__(
|
|
3434
|
+
self,
|
|
3435
|
+
*,
|
|
3436
|
+
role: typing.Optional[_IRole_235f5d8e] = None,
|
|
3437
|
+
test_listener: typing.Optional["ListenerRuleConfiguration"] = None,
|
|
3438
|
+
alternate_target_group: _ITargetGroup_83c6f8c4,
|
|
3439
|
+
production_listener: "ListenerRuleConfiguration",
|
|
3440
|
+
) -> None:
|
|
3441
|
+
'''Properties for AlternateTarget configuration.
|
|
3442
|
+
|
|
3443
|
+
:param role: The IAM role for the configuration. Default: - a new role will be created
|
|
3444
|
+
:param test_listener: The test listener configuration. Default: - none
|
|
3445
|
+
:param alternate_target_group: The alternate target group.
|
|
3446
|
+
:param production_listener: The production listener rule ARN (ALB) or listener ARN (NLB).
|
|
3447
|
+
|
|
3448
|
+
:exampleMetadata: infused
|
|
3449
|
+
|
|
3450
|
+
Example::
|
|
3451
|
+
|
|
3452
|
+
import aws_cdk.aws_lambda as lambda_
|
|
3453
|
+
|
|
3454
|
+
# cluster: ecs.Cluster
|
|
3455
|
+
# task_definition: ecs.TaskDefinition
|
|
3456
|
+
# lambda_hook: lambda.Function
|
|
3457
|
+
# blue_target_group: elbv2.ApplicationTargetGroup
|
|
3458
|
+
# green_target_group: elbv2.ApplicationTargetGroup
|
|
3459
|
+
# prod_listener_rule: elbv2.ApplicationListenerRule
|
|
3460
|
+
|
|
3461
|
+
|
|
3462
|
+
service = ecs.FargateService(self, "Service",
|
|
3463
|
+
cluster=cluster,
|
|
3464
|
+
task_definition=task_definition,
|
|
3465
|
+
deployment_strategy=ecs.DeploymentStrategy.BLUE_GREEN
|
|
3466
|
+
)
|
|
3467
|
+
|
|
3468
|
+
service.add_lifecycle_hook(ecs.DeploymentLifecycleLambdaTarget(lambda_hook, "PreScaleHook",
|
|
3469
|
+
lifecycle_stages=[ecs.DeploymentLifecycleStage.PRE_SCALE_UP]
|
|
3470
|
+
))
|
|
3471
|
+
|
|
3472
|
+
target = service.load_balancer_target(
|
|
3473
|
+
container_name="nginx",
|
|
3474
|
+
container_port=80,
|
|
3475
|
+
protocol=ecs.Protocol.TCP,
|
|
3476
|
+
alternate_target=ecs.AlternateTarget("AlternateTarget",
|
|
3477
|
+
alternate_target_group=green_target_group,
|
|
3478
|
+
production_listener=ecs.ListenerRuleConfiguration.application_listener_rule(prod_listener_rule)
|
|
3479
|
+
)
|
|
3480
|
+
)
|
|
3481
|
+
|
|
3482
|
+
target.attach_to_application_target_group(blue_target_group)
|
|
3483
|
+
'''
|
|
3484
|
+
if __debug__:
|
|
3485
|
+
type_hints = typing.get_type_hints(_typecheckingstub__308a285b9e7be7ba49d4d78caf88537a973f5504d7b7519fb1fe4ab1c987b690)
|
|
3486
|
+
check_type(argname="argument role", value=role, expected_type=type_hints["role"])
|
|
3487
|
+
check_type(argname="argument test_listener", value=test_listener, expected_type=type_hints["test_listener"])
|
|
3488
|
+
check_type(argname="argument alternate_target_group", value=alternate_target_group, expected_type=type_hints["alternate_target_group"])
|
|
3489
|
+
check_type(argname="argument production_listener", value=production_listener, expected_type=type_hints["production_listener"])
|
|
3490
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
3491
|
+
"alternate_target_group": alternate_target_group,
|
|
3492
|
+
"production_listener": production_listener,
|
|
3493
|
+
}
|
|
3494
|
+
if role is not None:
|
|
3495
|
+
self._values["role"] = role
|
|
3496
|
+
if test_listener is not None:
|
|
3497
|
+
self._values["test_listener"] = test_listener
|
|
3498
|
+
|
|
3499
|
+
@builtins.property
|
|
3500
|
+
def role(self) -> typing.Optional[_IRole_235f5d8e]:
|
|
3501
|
+
'''The IAM role for the configuration.
|
|
3502
|
+
|
|
3503
|
+
:default: - a new role will be created
|
|
3504
|
+
'''
|
|
3505
|
+
result = self._values.get("role")
|
|
3506
|
+
return typing.cast(typing.Optional[_IRole_235f5d8e], result)
|
|
3507
|
+
|
|
3508
|
+
@builtins.property
|
|
3509
|
+
def test_listener(self) -> typing.Optional["ListenerRuleConfiguration"]:
|
|
3510
|
+
'''The test listener configuration.
|
|
3511
|
+
|
|
3512
|
+
:default: - none
|
|
3513
|
+
'''
|
|
3514
|
+
result = self._values.get("test_listener")
|
|
3515
|
+
return typing.cast(typing.Optional["ListenerRuleConfiguration"], result)
|
|
3516
|
+
|
|
3517
|
+
@builtins.property
|
|
3518
|
+
def alternate_target_group(self) -> _ITargetGroup_83c6f8c4:
|
|
3519
|
+
'''The alternate target group.'''
|
|
3520
|
+
result = self._values.get("alternate_target_group")
|
|
3521
|
+
assert result is not None, "Required property 'alternate_target_group' is missing"
|
|
3522
|
+
return typing.cast(_ITargetGroup_83c6f8c4, result)
|
|
3523
|
+
|
|
3524
|
+
@builtins.property
|
|
3525
|
+
def production_listener(self) -> "ListenerRuleConfiguration":
|
|
3526
|
+
'''The production listener rule ARN (ALB) or listener ARN (NLB).'''
|
|
3527
|
+
result = self._values.get("production_listener")
|
|
3528
|
+
assert result is not None, "Required property 'production_listener' is missing"
|
|
3529
|
+
return typing.cast("ListenerRuleConfiguration", result)
|
|
3530
|
+
|
|
3531
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
3532
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
3533
|
+
|
|
3534
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
3535
|
+
return not (rhs == self)
|
|
3536
|
+
|
|
3537
|
+
def __repr__(self) -> str:
|
|
3538
|
+
return "AlternateTargetProps(%s)" % ", ".join(
|
|
3539
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
3540
|
+
)
|
|
3541
|
+
|
|
3542
|
+
|
|
3289
3543
|
@jsii.enum(jsii_type="aws-cdk-lib.aws_ecs.AmiHardwareType")
|
|
3290
3544
|
class AmiHardwareType(enum.Enum):
|
|
3291
3545
|
'''The ECS-optimized AMI variant to use.
|
|
@@ -5097,15 +5351,18 @@ class BaseMountPoint:
|
|
|
5097
5351
|
jsii_struct_bases=[],
|
|
5098
5352
|
name_mapping={
|
|
5099
5353
|
"cluster": "cluster",
|
|
5354
|
+
"bake_time": "bakeTime",
|
|
5100
5355
|
"capacity_provider_strategies": "capacityProviderStrategies",
|
|
5101
5356
|
"circuit_breaker": "circuitBreaker",
|
|
5102
5357
|
"cloud_map_options": "cloudMapOptions",
|
|
5103
5358
|
"deployment_alarms": "deploymentAlarms",
|
|
5104
5359
|
"deployment_controller": "deploymentController",
|
|
5360
|
+
"deployment_strategy": "deploymentStrategy",
|
|
5105
5361
|
"desired_count": "desiredCount",
|
|
5106
5362
|
"enable_ecs_managed_tags": "enableECSManagedTags",
|
|
5107
5363
|
"enable_execute_command": "enableExecuteCommand",
|
|
5108
5364
|
"health_check_grace_period": "healthCheckGracePeriod",
|
|
5365
|
+
"lifecycle_hooks": "lifecycleHooks",
|
|
5109
5366
|
"max_healthy_percent": "maxHealthyPercent",
|
|
5110
5367
|
"min_healthy_percent": "minHealthyPercent",
|
|
5111
5368
|
"propagate_tags": "propagateTags",
|
|
@@ -5120,15 +5377,18 @@ class BaseServiceOptions:
|
|
|
5120
5377
|
self,
|
|
5121
5378
|
*,
|
|
5122
5379
|
cluster: "ICluster",
|
|
5380
|
+
bake_time: typing.Optional[_Duration_4839e8c3] = None,
|
|
5123
5381
|
capacity_provider_strategies: typing.Optional[typing.Sequence[typing.Union["CapacityProviderStrategy", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
5124
5382
|
circuit_breaker: typing.Optional[typing.Union["DeploymentCircuitBreaker", typing.Dict[builtins.str, typing.Any]]] = None,
|
|
5125
5383
|
cloud_map_options: typing.Optional[typing.Union["CloudMapOptions", typing.Dict[builtins.str, typing.Any]]] = None,
|
|
5126
5384
|
deployment_alarms: typing.Optional[typing.Union["DeploymentAlarmConfig", typing.Dict[builtins.str, typing.Any]]] = None,
|
|
5127
5385
|
deployment_controller: typing.Optional[typing.Union["DeploymentController", typing.Dict[builtins.str, typing.Any]]] = None,
|
|
5386
|
+
deployment_strategy: typing.Optional["DeploymentStrategy"] = None,
|
|
5128
5387
|
desired_count: typing.Optional[jsii.Number] = None,
|
|
5129
5388
|
enable_ecs_managed_tags: typing.Optional[builtins.bool] = None,
|
|
5130
5389
|
enable_execute_command: typing.Optional[builtins.bool] = None,
|
|
5131
5390
|
health_check_grace_period: typing.Optional[_Duration_4839e8c3] = None,
|
|
5391
|
+
lifecycle_hooks: typing.Optional[typing.Sequence["IDeploymentLifecycleHookTarget"]] = None,
|
|
5132
5392
|
max_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
5133
5393
|
min_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
5134
5394
|
propagate_tags: typing.Optional["PropagatedTagSource"] = None,
|
|
@@ -5140,15 +5400,18 @@ class BaseServiceOptions:
|
|
|
5140
5400
|
'''The properties for the base Ec2Service or FargateService service.
|
|
5141
5401
|
|
|
5142
5402
|
:param cluster: The name of the cluster that hosts the service.
|
|
5403
|
+
:param bake_time: bake time minutes for service. Default: - none
|
|
5143
5404
|
:param capacity_provider_strategies: A list of Capacity Provider strategies used to place a service. Default: - undefined
|
|
5144
5405
|
:param circuit_breaker: Whether to enable the deployment circuit breaker. If this property is defined, circuit breaker will be implicitly enabled. Default: - disabled
|
|
5145
5406
|
:param cloud_map_options: The options for configuring an Amazon ECS service to use service discovery. Default: - AWS Cloud Map service discovery is not enabled.
|
|
5146
5407
|
:param deployment_alarms: The alarm(s) to monitor during deployment, and behavior to apply if at least one enters a state of alarm during the deployment or bake time. Default: - No alarms will be monitored during deployment.
|
|
5147
5408
|
:param deployment_controller: Specifies which deployment controller to use for the service. For more information, see `Amazon ECS Deployment Types <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html>`_ Default: - Rolling update (ECS)
|
|
5409
|
+
:param deployment_strategy: The deployment strategy to use for the service. Default: ROLLING
|
|
5148
5410
|
:param desired_count: The desired number of instantiations of the task definition to keep running on the service. Default: - When creating the service, default is 1; when updating the service, default uses the current task number.
|
|
5149
5411
|
:param enable_ecs_managed_tags: Specifies whether to enable 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>`_ Default: false
|
|
5150
5412
|
:param enable_execute_command: Whether to enable the ability to execute into a container. Default: - undefined
|
|
5151
5413
|
:param health_check_grace_period: The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started. Default: - defaults to 60 seconds if at least one load balancer is in-use and it is not already set
|
|
5414
|
+
:param lifecycle_hooks: The lifecycle hooks to execute during deployment stages. Default: - none;
|
|
5152
5415
|
:param max_healthy_percent: The maximum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that can run in a service during a deployment. Default: - 100 if daemon, otherwise 200
|
|
5153
5416
|
:param min_healthy_percent: The minimum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that must continue to run and remain healthy during a deployment. Default: - 0 if daemon, otherwise 50
|
|
5154
5417
|
:param propagate_tags: Specifies whether to propagate the tags from the task definition or the service to the tasks in the service. Valid values are: PropagatedTagSource.SERVICE, PropagatedTagSource.TASK_DEFINITION or PropagatedTagSource.NONE Default: PropagatedTagSource.NONE
|
|
@@ -5171,6 +5434,7 @@ class BaseServiceOptions:
|
|
|
5171
5434
|
|
|
5172
5435
|
# cluster: ecs.Cluster
|
|
5173
5436
|
# container_definition: ecs.ContainerDefinition
|
|
5437
|
+
# deployment_lifecycle_hook_target: ecs.IDeploymentLifecycleHookTarget
|
|
5174
5438
|
# key: kms.Key
|
|
5175
5439
|
# log_driver: ecs.LogDriver
|
|
5176
5440
|
# namespace: servicediscovery.INamespace
|
|
@@ -5182,6 +5446,7 @@ class BaseServiceOptions:
|
|
|
5182
5446
|
cluster=cluster,
|
|
5183
5447
|
|
|
5184
5448
|
# the properties below are optional
|
|
5449
|
+
bake_time=cdk.Duration.minutes(30),
|
|
5185
5450
|
capacity_provider_strategies=[ecs.CapacityProviderStrategy(
|
|
5186
5451
|
capacity_provider="capacityProvider",
|
|
5187
5452
|
|
|
@@ -5211,10 +5476,12 @@ class BaseServiceOptions:
|
|
|
5211
5476
|
deployment_controller=ecs.DeploymentController(
|
|
5212
5477
|
type=ecs.DeploymentControllerType.ECS
|
|
5213
5478
|
),
|
|
5479
|
+
deployment_strategy=ecs.DeploymentStrategy.ROLLING,
|
|
5214
5480
|
desired_count=123,
|
|
5215
5481
|
enable_eCSManaged_tags=False,
|
|
5216
5482
|
enable_execute_command=False,
|
|
5217
5483
|
health_check_grace_period=cdk.Duration.minutes(30),
|
|
5484
|
+
lifecycle_hooks=[deployment_lifecycle_hook_target],
|
|
5218
5485
|
max_healthy_percent=123,
|
|
5219
5486
|
min_healthy_percent=123,
|
|
5220
5487
|
propagate_tags=ecs.PropagatedTagSource.SERVICE,
|
|
@@ -5256,15 +5523,18 @@ class BaseServiceOptions:
|
|
|
5256
5523
|
if __debug__:
|
|
5257
5524
|
type_hints = typing.get_type_hints(_typecheckingstub__c2e0ba28c74987301a54b0d197b791a6a94084b5f40d15304ffabf113b3f7daa)
|
|
5258
5525
|
check_type(argname="argument cluster", value=cluster, expected_type=type_hints["cluster"])
|
|
5526
|
+
check_type(argname="argument bake_time", value=bake_time, expected_type=type_hints["bake_time"])
|
|
5259
5527
|
check_type(argname="argument capacity_provider_strategies", value=capacity_provider_strategies, expected_type=type_hints["capacity_provider_strategies"])
|
|
5260
5528
|
check_type(argname="argument circuit_breaker", value=circuit_breaker, expected_type=type_hints["circuit_breaker"])
|
|
5261
5529
|
check_type(argname="argument cloud_map_options", value=cloud_map_options, expected_type=type_hints["cloud_map_options"])
|
|
5262
5530
|
check_type(argname="argument deployment_alarms", value=deployment_alarms, expected_type=type_hints["deployment_alarms"])
|
|
5263
5531
|
check_type(argname="argument deployment_controller", value=deployment_controller, expected_type=type_hints["deployment_controller"])
|
|
5532
|
+
check_type(argname="argument deployment_strategy", value=deployment_strategy, expected_type=type_hints["deployment_strategy"])
|
|
5264
5533
|
check_type(argname="argument desired_count", value=desired_count, expected_type=type_hints["desired_count"])
|
|
5265
5534
|
check_type(argname="argument enable_ecs_managed_tags", value=enable_ecs_managed_tags, expected_type=type_hints["enable_ecs_managed_tags"])
|
|
5266
5535
|
check_type(argname="argument enable_execute_command", value=enable_execute_command, expected_type=type_hints["enable_execute_command"])
|
|
5267
5536
|
check_type(argname="argument health_check_grace_period", value=health_check_grace_period, expected_type=type_hints["health_check_grace_period"])
|
|
5537
|
+
check_type(argname="argument lifecycle_hooks", value=lifecycle_hooks, expected_type=type_hints["lifecycle_hooks"])
|
|
5268
5538
|
check_type(argname="argument max_healthy_percent", value=max_healthy_percent, expected_type=type_hints["max_healthy_percent"])
|
|
5269
5539
|
check_type(argname="argument min_healthy_percent", value=min_healthy_percent, expected_type=type_hints["min_healthy_percent"])
|
|
5270
5540
|
check_type(argname="argument propagate_tags", value=propagate_tags, expected_type=type_hints["propagate_tags"])
|
|
@@ -5275,6 +5545,8 @@ class BaseServiceOptions:
|
|
|
5275
5545
|
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
5276
5546
|
"cluster": cluster,
|
|
5277
5547
|
}
|
|
5548
|
+
if bake_time is not None:
|
|
5549
|
+
self._values["bake_time"] = bake_time
|
|
5278
5550
|
if capacity_provider_strategies is not None:
|
|
5279
5551
|
self._values["capacity_provider_strategies"] = capacity_provider_strategies
|
|
5280
5552
|
if circuit_breaker is not None:
|
|
@@ -5285,6 +5557,8 @@ class BaseServiceOptions:
|
|
|
5285
5557
|
self._values["deployment_alarms"] = deployment_alarms
|
|
5286
5558
|
if deployment_controller is not None:
|
|
5287
5559
|
self._values["deployment_controller"] = deployment_controller
|
|
5560
|
+
if deployment_strategy is not None:
|
|
5561
|
+
self._values["deployment_strategy"] = deployment_strategy
|
|
5288
5562
|
if desired_count is not None:
|
|
5289
5563
|
self._values["desired_count"] = desired_count
|
|
5290
5564
|
if enable_ecs_managed_tags is not None:
|
|
@@ -5293,6 +5567,8 @@ class BaseServiceOptions:
|
|
|
5293
5567
|
self._values["enable_execute_command"] = enable_execute_command
|
|
5294
5568
|
if health_check_grace_period is not None:
|
|
5295
5569
|
self._values["health_check_grace_period"] = health_check_grace_period
|
|
5570
|
+
if lifecycle_hooks is not None:
|
|
5571
|
+
self._values["lifecycle_hooks"] = lifecycle_hooks
|
|
5296
5572
|
if max_healthy_percent is not None:
|
|
5297
5573
|
self._values["max_healthy_percent"] = max_healthy_percent
|
|
5298
5574
|
if min_healthy_percent is not None:
|
|
@@ -5315,6 +5591,15 @@ class BaseServiceOptions:
|
|
|
5315
5591
|
assert result is not None, "Required property 'cluster' is missing"
|
|
5316
5592
|
return typing.cast("ICluster", result)
|
|
5317
5593
|
|
|
5594
|
+
@builtins.property
|
|
5595
|
+
def bake_time(self) -> typing.Optional[_Duration_4839e8c3]:
|
|
5596
|
+
'''bake time minutes for service.
|
|
5597
|
+
|
|
5598
|
+
:default: - none
|
|
5599
|
+
'''
|
|
5600
|
+
result = self._values.get("bake_time")
|
|
5601
|
+
return typing.cast(typing.Optional[_Duration_4839e8c3], result)
|
|
5602
|
+
|
|
5318
5603
|
@builtins.property
|
|
5319
5604
|
def capacity_provider_strategies(
|
|
5320
5605
|
self,
|
|
@@ -5368,6 +5653,15 @@ class BaseServiceOptions:
|
|
|
5368
5653
|
result = self._values.get("deployment_controller")
|
|
5369
5654
|
return typing.cast(typing.Optional["DeploymentController"], result)
|
|
5370
5655
|
|
|
5656
|
+
@builtins.property
|
|
5657
|
+
def deployment_strategy(self) -> typing.Optional["DeploymentStrategy"]:
|
|
5658
|
+
'''The deployment strategy to use for the service.
|
|
5659
|
+
|
|
5660
|
+
:default: ROLLING
|
|
5661
|
+
'''
|
|
5662
|
+
result = self._values.get("deployment_strategy")
|
|
5663
|
+
return typing.cast(typing.Optional["DeploymentStrategy"], result)
|
|
5664
|
+
|
|
5371
5665
|
@builtins.property
|
|
5372
5666
|
def desired_count(self) -> typing.Optional[jsii.Number]:
|
|
5373
5667
|
'''The desired number of instantiations of the task definition to keep running on the service.
|
|
@@ -5410,6 +5704,17 @@ class BaseServiceOptions:
|
|
|
5410
5704
|
result = self._values.get("health_check_grace_period")
|
|
5411
5705
|
return typing.cast(typing.Optional[_Duration_4839e8c3], result)
|
|
5412
5706
|
|
|
5707
|
+
@builtins.property
|
|
5708
|
+
def lifecycle_hooks(
|
|
5709
|
+
self,
|
|
5710
|
+
) -> typing.Optional[typing.List["IDeploymentLifecycleHookTarget"]]:
|
|
5711
|
+
'''The lifecycle hooks to execute during deployment stages.
|
|
5712
|
+
|
|
5713
|
+
:default: - none;
|
|
5714
|
+
'''
|
|
5715
|
+
result = self._values.get("lifecycle_hooks")
|
|
5716
|
+
return typing.cast(typing.Optional[typing.List["IDeploymentLifecycleHookTarget"]], result)
|
|
5717
|
+
|
|
5413
5718
|
@builtins.property
|
|
5414
5719
|
def max_healthy_percent(self) -> typing.Optional[jsii.Number]:
|
|
5415
5720
|
'''The maximum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that can run in a service during a deployment.
|
|
@@ -5500,15 +5805,18 @@ class BaseServiceOptions:
|
|
|
5500
5805
|
jsii_struct_bases=[BaseServiceOptions],
|
|
5501
5806
|
name_mapping={
|
|
5502
5807
|
"cluster": "cluster",
|
|
5808
|
+
"bake_time": "bakeTime",
|
|
5503
5809
|
"capacity_provider_strategies": "capacityProviderStrategies",
|
|
5504
5810
|
"circuit_breaker": "circuitBreaker",
|
|
5505
5811
|
"cloud_map_options": "cloudMapOptions",
|
|
5506
5812
|
"deployment_alarms": "deploymentAlarms",
|
|
5507
5813
|
"deployment_controller": "deploymentController",
|
|
5814
|
+
"deployment_strategy": "deploymentStrategy",
|
|
5508
5815
|
"desired_count": "desiredCount",
|
|
5509
5816
|
"enable_ecs_managed_tags": "enableECSManagedTags",
|
|
5510
5817
|
"enable_execute_command": "enableExecuteCommand",
|
|
5511
5818
|
"health_check_grace_period": "healthCheckGracePeriod",
|
|
5819
|
+
"lifecycle_hooks": "lifecycleHooks",
|
|
5512
5820
|
"max_healthy_percent": "maxHealthyPercent",
|
|
5513
5821
|
"min_healthy_percent": "minHealthyPercent",
|
|
5514
5822
|
"propagate_tags": "propagateTags",
|
|
@@ -5524,15 +5832,18 @@ class BaseServiceProps(BaseServiceOptions):
|
|
|
5524
5832
|
self,
|
|
5525
5833
|
*,
|
|
5526
5834
|
cluster: "ICluster",
|
|
5835
|
+
bake_time: typing.Optional[_Duration_4839e8c3] = None,
|
|
5527
5836
|
capacity_provider_strategies: typing.Optional[typing.Sequence[typing.Union["CapacityProviderStrategy", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
5528
5837
|
circuit_breaker: typing.Optional[typing.Union["DeploymentCircuitBreaker", typing.Dict[builtins.str, typing.Any]]] = None,
|
|
5529
5838
|
cloud_map_options: typing.Optional[typing.Union["CloudMapOptions", typing.Dict[builtins.str, typing.Any]]] = None,
|
|
5530
5839
|
deployment_alarms: typing.Optional[typing.Union["DeploymentAlarmConfig", typing.Dict[builtins.str, typing.Any]]] = None,
|
|
5531
5840
|
deployment_controller: typing.Optional[typing.Union["DeploymentController", typing.Dict[builtins.str, typing.Any]]] = None,
|
|
5841
|
+
deployment_strategy: typing.Optional["DeploymentStrategy"] = None,
|
|
5532
5842
|
desired_count: typing.Optional[jsii.Number] = None,
|
|
5533
5843
|
enable_ecs_managed_tags: typing.Optional[builtins.bool] = None,
|
|
5534
5844
|
enable_execute_command: typing.Optional[builtins.bool] = None,
|
|
5535
5845
|
health_check_grace_period: typing.Optional[_Duration_4839e8c3] = None,
|
|
5846
|
+
lifecycle_hooks: typing.Optional[typing.Sequence["IDeploymentLifecycleHookTarget"]] = None,
|
|
5536
5847
|
max_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
5537
5848
|
min_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
5538
5849
|
propagate_tags: typing.Optional["PropagatedTagSource"] = None,
|
|
@@ -5545,15 +5856,18 @@ class BaseServiceProps(BaseServiceOptions):
|
|
|
5545
5856
|
'''Complete base service properties that are required to be supplied by the implementation of the BaseService class.
|
|
5546
5857
|
|
|
5547
5858
|
:param cluster: The name of the cluster that hosts the service.
|
|
5859
|
+
:param bake_time: bake time minutes for service. Default: - none
|
|
5548
5860
|
:param capacity_provider_strategies: A list of Capacity Provider strategies used to place a service. Default: - undefined
|
|
5549
5861
|
:param circuit_breaker: Whether to enable the deployment circuit breaker. If this property is defined, circuit breaker will be implicitly enabled. Default: - disabled
|
|
5550
5862
|
:param cloud_map_options: The options for configuring an Amazon ECS service to use service discovery. Default: - AWS Cloud Map service discovery is not enabled.
|
|
5551
5863
|
:param deployment_alarms: The alarm(s) to monitor during deployment, and behavior to apply if at least one enters a state of alarm during the deployment or bake time. Default: - No alarms will be monitored during deployment.
|
|
5552
5864
|
:param deployment_controller: Specifies which deployment controller to use for the service. For more information, see `Amazon ECS Deployment Types <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html>`_ Default: - Rolling update (ECS)
|
|
5865
|
+
:param deployment_strategy: The deployment strategy to use for the service. Default: ROLLING
|
|
5553
5866
|
:param desired_count: The desired number of instantiations of the task definition to keep running on the service. Default: - When creating the service, default is 1; when updating the service, default uses the current task number.
|
|
5554
5867
|
:param enable_ecs_managed_tags: Specifies whether to enable 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>`_ Default: false
|
|
5555
5868
|
:param enable_execute_command: Whether to enable the ability to execute into a container. Default: - undefined
|
|
5556
5869
|
:param health_check_grace_period: The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started. Default: - defaults to 60 seconds if at least one load balancer is in-use and it is not already set
|
|
5870
|
+
:param lifecycle_hooks: The lifecycle hooks to execute during deployment stages. Default: - none;
|
|
5557
5871
|
:param max_healthy_percent: The maximum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that can run in a service during a deployment. Default: - 100 if daemon, otherwise 200
|
|
5558
5872
|
:param min_healthy_percent: The minimum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that must continue to run and remain healthy during a deployment. Default: - 0 if daemon, otherwise 50
|
|
5559
5873
|
:param propagate_tags: Specifies whether to propagate the tags from the task definition or the service to the tasks in the service. Valid values are: PropagatedTagSource.SERVICE, PropagatedTagSource.TASK_DEFINITION or PropagatedTagSource.NONE Default: PropagatedTagSource.NONE
|
|
@@ -5577,6 +5891,7 @@ class BaseServiceProps(BaseServiceOptions):
|
|
|
5577
5891
|
|
|
5578
5892
|
# cluster: ecs.Cluster
|
|
5579
5893
|
# container_definition: ecs.ContainerDefinition
|
|
5894
|
+
# deployment_lifecycle_hook_target: ecs.IDeploymentLifecycleHookTarget
|
|
5580
5895
|
# key: kms.Key
|
|
5581
5896
|
# log_driver: ecs.LogDriver
|
|
5582
5897
|
# namespace: servicediscovery.INamespace
|
|
@@ -5589,6 +5904,7 @@ class BaseServiceProps(BaseServiceOptions):
|
|
|
5589
5904
|
launch_type=ecs.LaunchType.EC2,
|
|
5590
5905
|
|
|
5591
5906
|
# the properties below are optional
|
|
5907
|
+
bake_time=cdk.Duration.minutes(30),
|
|
5592
5908
|
capacity_provider_strategies=[ecs.CapacityProviderStrategy(
|
|
5593
5909
|
capacity_provider="capacityProvider",
|
|
5594
5910
|
|
|
@@ -5618,10 +5934,12 @@ class BaseServiceProps(BaseServiceOptions):
|
|
|
5618
5934
|
deployment_controller=ecs.DeploymentController(
|
|
5619
5935
|
type=ecs.DeploymentControllerType.ECS
|
|
5620
5936
|
),
|
|
5937
|
+
deployment_strategy=ecs.DeploymentStrategy.ROLLING,
|
|
5621
5938
|
desired_count=123,
|
|
5622
5939
|
enable_eCSManaged_tags=False,
|
|
5623
5940
|
enable_execute_command=False,
|
|
5624
5941
|
health_check_grace_period=cdk.Duration.minutes(30),
|
|
5942
|
+
lifecycle_hooks=[deployment_lifecycle_hook_target],
|
|
5625
5943
|
max_healthy_percent=123,
|
|
5626
5944
|
min_healthy_percent=123,
|
|
5627
5945
|
propagate_tags=ecs.PropagatedTagSource.SERVICE,
|
|
@@ -5663,15 +5981,18 @@ class BaseServiceProps(BaseServiceOptions):
|
|
|
5663
5981
|
if __debug__:
|
|
5664
5982
|
type_hints = typing.get_type_hints(_typecheckingstub__3ecfd95265b873c2042a9d5cb8465a48f9e325e2271c18461e2b266333563d84)
|
|
5665
5983
|
check_type(argname="argument cluster", value=cluster, expected_type=type_hints["cluster"])
|
|
5984
|
+
check_type(argname="argument bake_time", value=bake_time, expected_type=type_hints["bake_time"])
|
|
5666
5985
|
check_type(argname="argument capacity_provider_strategies", value=capacity_provider_strategies, expected_type=type_hints["capacity_provider_strategies"])
|
|
5667
5986
|
check_type(argname="argument circuit_breaker", value=circuit_breaker, expected_type=type_hints["circuit_breaker"])
|
|
5668
5987
|
check_type(argname="argument cloud_map_options", value=cloud_map_options, expected_type=type_hints["cloud_map_options"])
|
|
5669
5988
|
check_type(argname="argument deployment_alarms", value=deployment_alarms, expected_type=type_hints["deployment_alarms"])
|
|
5670
5989
|
check_type(argname="argument deployment_controller", value=deployment_controller, expected_type=type_hints["deployment_controller"])
|
|
5990
|
+
check_type(argname="argument deployment_strategy", value=deployment_strategy, expected_type=type_hints["deployment_strategy"])
|
|
5671
5991
|
check_type(argname="argument desired_count", value=desired_count, expected_type=type_hints["desired_count"])
|
|
5672
5992
|
check_type(argname="argument enable_ecs_managed_tags", value=enable_ecs_managed_tags, expected_type=type_hints["enable_ecs_managed_tags"])
|
|
5673
5993
|
check_type(argname="argument enable_execute_command", value=enable_execute_command, expected_type=type_hints["enable_execute_command"])
|
|
5674
5994
|
check_type(argname="argument health_check_grace_period", value=health_check_grace_period, expected_type=type_hints["health_check_grace_period"])
|
|
5995
|
+
check_type(argname="argument lifecycle_hooks", value=lifecycle_hooks, expected_type=type_hints["lifecycle_hooks"])
|
|
5675
5996
|
check_type(argname="argument max_healthy_percent", value=max_healthy_percent, expected_type=type_hints["max_healthy_percent"])
|
|
5676
5997
|
check_type(argname="argument min_healthy_percent", value=min_healthy_percent, expected_type=type_hints["min_healthy_percent"])
|
|
5677
5998
|
check_type(argname="argument propagate_tags", value=propagate_tags, expected_type=type_hints["propagate_tags"])
|
|
@@ -5684,6 +6005,8 @@ class BaseServiceProps(BaseServiceOptions):
|
|
|
5684
6005
|
"cluster": cluster,
|
|
5685
6006
|
"launch_type": launch_type,
|
|
5686
6007
|
}
|
|
6008
|
+
if bake_time is not None:
|
|
6009
|
+
self._values["bake_time"] = bake_time
|
|
5687
6010
|
if capacity_provider_strategies is not None:
|
|
5688
6011
|
self._values["capacity_provider_strategies"] = capacity_provider_strategies
|
|
5689
6012
|
if circuit_breaker is not None:
|
|
@@ -5694,6 +6017,8 @@ class BaseServiceProps(BaseServiceOptions):
|
|
|
5694
6017
|
self._values["deployment_alarms"] = deployment_alarms
|
|
5695
6018
|
if deployment_controller is not None:
|
|
5696
6019
|
self._values["deployment_controller"] = deployment_controller
|
|
6020
|
+
if deployment_strategy is not None:
|
|
6021
|
+
self._values["deployment_strategy"] = deployment_strategy
|
|
5697
6022
|
if desired_count is not None:
|
|
5698
6023
|
self._values["desired_count"] = desired_count
|
|
5699
6024
|
if enable_ecs_managed_tags is not None:
|
|
@@ -5702,6 +6027,8 @@ class BaseServiceProps(BaseServiceOptions):
|
|
|
5702
6027
|
self._values["enable_execute_command"] = enable_execute_command
|
|
5703
6028
|
if health_check_grace_period is not None:
|
|
5704
6029
|
self._values["health_check_grace_period"] = health_check_grace_period
|
|
6030
|
+
if lifecycle_hooks is not None:
|
|
6031
|
+
self._values["lifecycle_hooks"] = lifecycle_hooks
|
|
5705
6032
|
if max_healthy_percent is not None:
|
|
5706
6033
|
self._values["max_healthy_percent"] = max_healthy_percent
|
|
5707
6034
|
if min_healthy_percent is not None:
|
|
@@ -5724,6 +6051,15 @@ class BaseServiceProps(BaseServiceOptions):
|
|
|
5724
6051
|
assert result is not None, "Required property 'cluster' is missing"
|
|
5725
6052
|
return typing.cast("ICluster", result)
|
|
5726
6053
|
|
|
6054
|
+
@builtins.property
|
|
6055
|
+
def bake_time(self) -> typing.Optional[_Duration_4839e8c3]:
|
|
6056
|
+
'''bake time minutes for service.
|
|
6057
|
+
|
|
6058
|
+
:default: - none
|
|
6059
|
+
'''
|
|
6060
|
+
result = self._values.get("bake_time")
|
|
6061
|
+
return typing.cast(typing.Optional[_Duration_4839e8c3], result)
|
|
6062
|
+
|
|
5727
6063
|
@builtins.property
|
|
5728
6064
|
def capacity_provider_strategies(
|
|
5729
6065
|
self,
|
|
@@ -5777,6 +6113,15 @@ class BaseServiceProps(BaseServiceOptions):
|
|
|
5777
6113
|
result = self._values.get("deployment_controller")
|
|
5778
6114
|
return typing.cast(typing.Optional["DeploymentController"], result)
|
|
5779
6115
|
|
|
6116
|
+
@builtins.property
|
|
6117
|
+
def deployment_strategy(self) -> typing.Optional["DeploymentStrategy"]:
|
|
6118
|
+
'''The deployment strategy to use for the service.
|
|
6119
|
+
|
|
6120
|
+
:default: ROLLING
|
|
6121
|
+
'''
|
|
6122
|
+
result = self._values.get("deployment_strategy")
|
|
6123
|
+
return typing.cast(typing.Optional["DeploymentStrategy"], result)
|
|
6124
|
+
|
|
5780
6125
|
@builtins.property
|
|
5781
6126
|
def desired_count(self) -> typing.Optional[jsii.Number]:
|
|
5782
6127
|
'''The desired number of instantiations of the task definition to keep running on the service.
|
|
@@ -5819,6 +6164,17 @@ class BaseServiceProps(BaseServiceOptions):
|
|
|
5819
6164
|
result = self._values.get("health_check_grace_period")
|
|
5820
6165
|
return typing.cast(typing.Optional[_Duration_4839e8c3], result)
|
|
5821
6166
|
|
|
6167
|
+
@builtins.property
|
|
6168
|
+
def lifecycle_hooks(
|
|
6169
|
+
self,
|
|
6170
|
+
) -> typing.Optional[typing.List["IDeploymentLifecycleHookTarget"]]:
|
|
6171
|
+
'''The lifecycle hooks to execute during deployment stages.
|
|
6172
|
+
|
|
6173
|
+
:default: - none;
|
|
6174
|
+
'''
|
|
6175
|
+
result = self._values.get("lifecycle_hooks")
|
|
6176
|
+
return typing.cast(typing.Optional[typing.List["IDeploymentLifecycleHookTarget"]], result)
|
|
6177
|
+
|
|
5822
6178
|
@builtins.property
|
|
5823
6179
|
def max_healthy_percent(self) -> typing.Optional[jsii.Number]:
|
|
5824
6180
|
'''The maximum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that can run in a service during a deployment.
|
|
@@ -8642,23 +8998,184 @@ class CfnService(
|
|
|
8642
8998
|
|
|
8643
8999
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html
|
|
8644
9000
|
:cloudformationResource: AWS::ECS::Service
|
|
8645
|
-
:exampleMetadata:
|
|
9001
|
+
:exampleMetadata: fixture=_generated
|
|
8646
9002
|
|
|
8647
9003
|
Example::
|
|
8648
9004
|
|
|
8649
|
-
#
|
|
9005
|
+
# The code below shows an example of how to instantiate this type.
|
|
9006
|
+
# The values are placeholders you should change.
|
|
9007
|
+
from aws_cdk import aws_ecs as ecs
|
|
8650
9008
|
|
|
9009
|
+
cfn_service = ecs.CfnService(self, "MyCfnService",
|
|
9010
|
+
availability_zone_rebalancing="availabilityZoneRebalancing",
|
|
9011
|
+
capacity_provider_strategy=[ecs.CfnService.CapacityProviderStrategyItemProperty(
|
|
9012
|
+
base=123,
|
|
9013
|
+
capacity_provider="capacityProvider",
|
|
9014
|
+
weight=123
|
|
9015
|
+
)],
|
|
9016
|
+
cluster="cluster",
|
|
9017
|
+
deployment_configuration=ecs.CfnService.DeploymentConfigurationProperty(
|
|
9018
|
+
alarms=ecs.CfnService.DeploymentAlarmsProperty(
|
|
9019
|
+
alarm_names=["alarmNames"],
|
|
9020
|
+
enable=False,
|
|
9021
|
+
rollback=False
|
|
9022
|
+
),
|
|
9023
|
+
bake_time_in_minutes=123,
|
|
9024
|
+
deployment_circuit_breaker=ecs.CfnService.DeploymentCircuitBreakerProperty(
|
|
9025
|
+
enable=False,
|
|
9026
|
+
rollback=False
|
|
9027
|
+
),
|
|
9028
|
+
lifecycle_hooks=[ecs.CfnService.DeploymentLifecycleHookProperty(
|
|
9029
|
+
hook_target_arn="hookTargetArn",
|
|
9030
|
+
lifecycle_stages=["lifecycleStages"],
|
|
9031
|
+
role_arn="roleArn"
|
|
9032
|
+
)],
|
|
9033
|
+
maximum_percent=123,
|
|
9034
|
+
minimum_healthy_percent=123,
|
|
9035
|
+
strategy="strategy"
|
|
9036
|
+
),
|
|
9037
|
+
deployment_controller=ecs.CfnService.DeploymentControllerProperty(
|
|
9038
|
+
type="type"
|
|
9039
|
+
),
|
|
9040
|
+
desired_count=123,
|
|
9041
|
+
enable_ecs_managed_tags=False,
|
|
9042
|
+
enable_execute_command=False,
|
|
9043
|
+
health_check_grace_period_seconds=123,
|
|
9044
|
+
launch_type="launchType",
|
|
9045
|
+
load_balancers=[ecs.CfnService.LoadBalancerProperty(
|
|
9046
|
+
advanced_configuration=ecs.CfnService.AdvancedConfigurationProperty(
|
|
9047
|
+
alternate_target_group_arn="alternateTargetGroupArn",
|
|
9048
|
+
|
|
9049
|
+
# the properties below are optional
|
|
9050
|
+
production_listener_rule="productionListenerRule",
|
|
9051
|
+
role_arn="roleArn",
|
|
9052
|
+
test_listener_rule="testListenerRule"
|
|
9053
|
+
),
|
|
9054
|
+
container_name="containerName",
|
|
9055
|
+
container_port=123,
|
|
9056
|
+
load_balancer_name="loadBalancerName",
|
|
9057
|
+
target_group_arn="targetGroupArn"
|
|
9058
|
+
)],
|
|
9059
|
+
network_configuration=ecs.CfnService.NetworkConfigurationProperty(
|
|
9060
|
+
awsvpc_configuration=ecs.CfnService.AwsVpcConfigurationProperty(
|
|
9061
|
+
assign_public_ip="assignPublicIp",
|
|
9062
|
+
security_groups=["securityGroups"],
|
|
9063
|
+
subnets=["subnets"]
|
|
9064
|
+
)
|
|
9065
|
+
),
|
|
9066
|
+
placement_constraints=[ecs.CfnService.PlacementConstraintProperty(
|
|
9067
|
+
type="type",
|
|
8651
9068
|
|
|
8652
|
-
|
|
8653
|
-
|
|
8654
|
-
|
|
8655
|
-
|
|
8656
|
-
|
|
8657
|
-
|
|
8658
|
-
|
|
8659
|
-
|
|
8660
|
-
|
|
8661
|
-
|
|
9069
|
+
# the properties below are optional
|
|
9070
|
+
expression="expression"
|
|
9071
|
+
)],
|
|
9072
|
+
placement_strategies=[ecs.CfnService.PlacementStrategyProperty(
|
|
9073
|
+
type="type",
|
|
9074
|
+
|
|
9075
|
+
# the properties below are optional
|
|
9076
|
+
field="field"
|
|
9077
|
+
)],
|
|
9078
|
+
platform_version="platformVersion",
|
|
9079
|
+
propagate_tags="propagateTags",
|
|
9080
|
+
role="role",
|
|
9081
|
+
scheduling_strategy="schedulingStrategy",
|
|
9082
|
+
service_connect_configuration=ecs.CfnService.ServiceConnectConfigurationProperty(
|
|
9083
|
+
enabled=False,
|
|
9084
|
+
|
|
9085
|
+
# the properties below are optional
|
|
9086
|
+
log_configuration=ecs.CfnService.LogConfigurationProperty(
|
|
9087
|
+
log_driver="logDriver",
|
|
9088
|
+
options={
|
|
9089
|
+
"options_key": "options"
|
|
9090
|
+
},
|
|
9091
|
+
secret_options=[ecs.CfnService.SecretProperty(
|
|
9092
|
+
name="name",
|
|
9093
|
+
value_from="valueFrom"
|
|
9094
|
+
)]
|
|
9095
|
+
),
|
|
9096
|
+
namespace="namespace",
|
|
9097
|
+
services=[ecs.CfnService.ServiceConnectServiceProperty(
|
|
9098
|
+
port_name="portName",
|
|
9099
|
+
|
|
9100
|
+
# the properties below are optional
|
|
9101
|
+
client_aliases=[ecs.CfnService.ServiceConnectClientAliasProperty(
|
|
9102
|
+
port=123,
|
|
9103
|
+
|
|
9104
|
+
# the properties below are optional
|
|
9105
|
+
dns_name="dnsName",
|
|
9106
|
+
test_traffic_rules=ecs.CfnService.ServiceConnectTestTrafficRulesProperty(
|
|
9107
|
+
header=ecs.CfnService.ServiceConnectTestTrafficRulesHeaderProperty(
|
|
9108
|
+
name="name",
|
|
9109
|
+
|
|
9110
|
+
# the properties below are optional
|
|
9111
|
+
value=ecs.CfnService.ServiceConnectTestTrafficRulesHeaderValueProperty(
|
|
9112
|
+
exact="exact"
|
|
9113
|
+
)
|
|
9114
|
+
)
|
|
9115
|
+
)
|
|
9116
|
+
)],
|
|
9117
|
+
discovery_name="discoveryName",
|
|
9118
|
+
ingress_port_override=123,
|
|
9119
|
+
timeout=ecs.CfnService.TimeoutConfigurationProperty(
|
|
9120
|
+
idle_timeout_seconds=123,
|
|
9121
|
+
per_request_timeout_seconds=123
|
|
9122
|
+
),
|
|
9123
|
+
tls=ecs.CfnService.ServiceConnectTlsConfigurationProperty(
|
|
9124
|
+
issuer_certificate_authority=ecs.CfnService.ServiceConnectTlsCertificateAuthorityProperty(
|
|
9125
|
+
aws_pca_authority_arn="awsPcaAuthorityArn"
|
|
9126
|
+
),
|
|
9127
|
+
|
|
9128
|
+
# the properties below are optional
|
|
9129
|
+
kms_key="kmsKey",
|
|
9130
|
+
role_arn="roleArn"
|
|
9131
|
+
)
|
|
9132
|
+
)]
|
|
9133
|
+
),
|
|
9134
|
+
service_name="serviceName",
|
|
9135
|
+
service_registries=[ecs.CfnService.ServiceRegistryProperty(
|
|
9136
|
+
container_name="containerName",
|
|
9137
|
+
container_port=123,
|
|
9138
|
+
port=123,
|
|
9139
|
+
registry_arn="registryArn"
|
|
9140
|
+
)],
|
|
9141
|
+
tags=[CfnTag(
|
|
9142
|
+
key="key",
|
|
9143
|
+
value="value"
|
|
9144
|
+
)],
|
|
9145
|
+
task_definition="taskDefinition",
|
|
9146
|
+
volume_configurations=[ecs.CfnService.ServiceVolumeConfigurationProperty(
|
|
9147
|
+
name="name",
|
|
9148
|
+
|
|
9149
|
+
# the properties below are optional
|
|
9150
|
+
managed_ebs_volume=ecs.CfnService.ServiceManagedEBSVolumeConfigurationProperty(
|
|
9151
|
+
role_arn="roleArn",
|
|
9152
|
+
|
|
9153
|
+
# the properties below are optional
|
|
9154
|
+
encrypted=False,
|
|
9155
|
+
filesystem_type="filesystemType",
|
|
9156
|
+
iops=123,
|
|
9157
|
+
kms_key_id="kmsKeyId",
|
|
9158
|
+
size_in_gi_b=123,
|
|
9159
|
+
snapshot_id="snapshotId",
|
|
9160
|
+
tag_specifications=[ecs.CfnService.EBSTagSpecificationProperty(
|
|
9161
|
+
resource_type="resourceType",
|
|
9162
|
+
|
|
9163
|
+
# the properties below are optional
|
|
9164
|
+
propagate_tags="propagateTags",
|
|
9165
|
+
tags=[CfnTag(
|
|
9166
|
+
key="key",
|
|
9167
|
+
value="value"
|
|
9168
|
+
)]
|
|
9169
|
+
)],
|
|
9170
|
+
throughput=123,
|
|
9171
|
+
volume_initialization_rate=123,
|
|
9172
|
+
volume_type="volumeType"
|
|
9173
|
+
)
|
|
9174
|
+
)],
|
|
9175
|
+
vpc_lattice_configurations=[ecs.CfnService.VpcLatticeConfigurationProperty(
|
|
9176
|
+
port_name="portName",
|
|
9177
|
+
role_arn="roleArn",
|
|
9178
|
+
target_group_arn="targetGroupArn"
|
|
8662
9179
|
)]
|
|
8663
9180
|
)
|
|
8664
9181
|
'''
|
|
@@ -8697,7 +9214,7 @@ class CfnService(
|
|
|
8697
9214
|
'''
|
|
8698
9215
|
:param scope: Scope in which this resource is defined.
|
|
8699
9216
|
:param id: Construct identifier for this resource (unique in its scope).
|
|
8700
|
-
:param availability_zone_rebalancing: Indicates whether to use Availability Zone rebalancing for the service. For more information, see `Balancing an Amazon ECS service across Availability Zones <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html>`_ in the **Amazon Elastic Container Service Developer Guide** . Default: - "
|
|
9217
|
+
:param availability_zone_rebalancing: Indicates whether to use Availability Zone rebalancing for the service. For more information, see `Balancing an Amazon ECS service across Availability Zones <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html>`_ in the **Amazon Elastic Container Service Developer Guide** . Default: - "ENABLED"
|
|
8701
9218
|
:param capacity_provider_strategy: The capacity provider strategy to use for the service. If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used. A capacity provider strategy can contain a maximum of 20 capacity providers. .. epigraph:: To remove this property from your service resource, specify an empty ``CapacityProviderStrategyItem`` array.
|
|
8702
9219
|
:param cluster: The short name or full Amazon Resource Name (ARN) of the cluster that you run your service on. If you do not specify a cluster, the default cluster is assumed.
|
|
8703
9220
|
:param deployment_configuration: Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.
|
|
@@ -12556,7 +13073,7 @@ class CfnServiceProps:
|
|
|
12556
13073
|
) -> None:
|
|
12557
13074
|
'''Properties for defining a ``CfnService``.
|
|
12558
13075
|
|
|
12559
|
-
:param availability_zone_rebalancing: Indicates whether to use Availability Zone rebalancing for the service. For more information, see `Balancing an Amazon ECS service across Availability Zones <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html>`_ in the **Amazon Elastic Container Service Developer Guide** . Default: - "
|
|
13076
|
+
:param availability_zone_rebalancing: Indicates whether to use Availability Zone rebalancing for the service. For more information, see `Balancing an Amazon ECS service across Availability Zones <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html>`_ in the **Amazon Elastic Container Service Developer Guide** . Default: - "ENABLED"
|
|
12560
13077
|
:param capacity_provider_strategy: The capacity provider strategy to use for the service. If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used. A capacity provider strategy can contain a maximum of 20 capacity providers. .. epigraph:: To remove this property from your service resource, specify an empty ``CapacityProviderStrategyItem`` array.
|
|
12561
13078
|
:param cluster: The short name or full Amazon Resource Name (ARN) of the cluster that you run your service on. If you do not specify a cluster, the default cluster is assumed.
|
|
12562
13079
|
:param deployment_configuration: Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.
|
|
@@ -12849,7 +13366,7 @@ class CfnServiceProps:
|
|
|
12849
13366
|
|
|
12850
13367
|
For more information, see `Balancing an Amazon ECS service across Availability Zones <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html>`_ in the **Amazon Elastic Container Service Developer Guide** .
|
|
12851
13368
|
|
|
12852
|
-
:default: - "
|
|
13369
|
+
:default: - "ENABLED"
|
|
12853
13370
|
|
|
12854
13371
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-availabilityzonerebalancing
|
|
12855
13372
|
'''
|
|
@@ -24421,6 +24938,290 @@ class DeploymentControllerType(enum.Enum):
|
|
|
24421
24938
|
'''The external (EXTERNAL) deployment type enables you to use any third-party deployment controller.'''
|
|
24422
24939
|
|
|
24423
24940
|
|
|
24941
|
+
@jsii.data_type(
|
|
24942
|
+
jsii_type="aws-cdk-lib.aws_ecs.DeploymentLifecycleHookTargetConfig",
|
|
24943
|
+
jsii_struct_bases=[],
|
|
24944
|
+
name_mapping={
|
|
24945
|
+
"lifecycle_stages": "lifecycleStages",
|
|
24946
|
+
"target_arn": "targetArn",
|
|
24947
|
+
"role": "role",
|
|
24948
|
+
},
|
|
24949
|
+
)
|
|
24950
|
+
class DeploymentLifecycleHookTargetConfig:
|
|
24951
|
+
def __init__(
|
|
24952
|
+
self,
|
|
24953
|
+
*,
|
|
24954
|
+
lifecycle_stages: typing.Sequence["DeploymentLifecycleStage"],
|
|
24955
|
+
target_arn: builtins.str,
|
|
24956
|
+
role: typing.Optional[_IRole_235f5d8e] = None,
|
|
24957
|
+
) -> None:
|
|
24958
|
+
'''Configuration for a deployment lifecycle hook target.
|
|
24959
|
+
|
|
24960
|
+
:param lifecycle_stages: The lifecycle stages when this hook should be executed.
|
|
24961
|
+
:param target_arn: The ARN of the target resource.
|
|
24962
|
+
:param role: The IAM role that grants permissions to invoke the target. Default: - a role will be created automatically
|
|
24963
|
+
|
|
24964
|
+
:exampleMetadata: fixture=_generated
|
|
24965
|
+
|
|
24966
|
+
Example::
|
|
24967
|
+
|
|
24968
|
+
# The code below shows an example of how to instantiate this type.
|
|
24969
|
+
# The values are placeholders you should change.
|
|
24970
|
+
from aws_cdk import aws_ecs as ecs
|
|
24971
|
+
from aws_cdk import aws_iam as iam
|
|
24972
|
+
|
|
24973
|
+
# role: iam.Role
|
|
24974
|
+
|
|
24975
|
+
deployment_lifecycle_hook_target_config = ecs.DeploymentLifecycleHookTargetConfig(
|
|
24976
|
+
lifecycle_stages=[ecs.DeploymentLifecycleStage.RECONCILE_SERVICE],
|
|
24977
|
+
target_arn="targetArn",
|
|
24978
|
+
|
|
24979
|
+
# the properties below are optional
|
|
24980
|
+
role=role
|
|
24981
|
+
)
|
|
24982
|
+
'''
|
|
24983
|
+
if __debug__:
|
|
24984
|
+
type_hints = typing.get_type_hints(_typecheckingstub__58b105a4a38be4fd4e5d81c3d78a7d0fc4d3120086f0f1235d58be7e964bf172)
|
|
24985
|
+
check_type(argname="argument lifecycle_stages", value=lifecycle_stages, expected_type=type_hints["lifecycle_stages"])
|
|
24986
|
+
check_type(argname="argument target_arn", value=target_arn, expected_type=type_hints["target_arn"])
|
|
24987
|
+
check_type(argname="argument role", value=role, expected_type=type_hints["role"])
|
|
24988
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
24989
|
+
"lifecycle_stages": lifecycle_stages,
|
|
24990
|
+
"target_arn": target_arn,
|
|
24991
|
+
}
|
|
24992
|
+
if role is not None:
|
|
24993
|
+
self._values["role"] = role
|
|
24994
|
+
|
|
24995
|
+
@builtins.property
|
|
24996
|
+
def lifecycle_stages(self) -> typing.List["DeploymentLifecycleStage"]:
|
|
24997
|
+
'''The lifecycle stages when this hook should be executed.'''
|
|
24998
|
+
result = self._values.get("lifecycle_stages")
|
|
24999
|
+
assert result is not None, "Required property 'lifecycle_stages' is missing"
|
|
25000
|
+
return typing.cast(typing.List["DeploymentLifecycleStage"], result)
|
|
25001
|
+
|
|
25002
|
+
@builtins.property
|
|
25003
|
+
def target_arn(self) -> builtins.str:
|
|
25004
|
+
'''The ARN of the target resource.'''
|
|
25005
|
+
result = self._values.get("target_arn")
|
|
25006
|
+
assert result is not None, "Required property 'target_arn' is missing"
|
|
25007
|
+
return typing.cast(builtins.str, result)
|
|
25008
|
+
|
|
25009
|
+
@builtins.property
|
|
25010
|
+
def role(self) -> typing.Optional[_IRole_235f5d8e]:
|
|
25011
|
+
'''The IAM role that grants permissions to invoke the target.
|
|
25012
|
+
|
|
25013
|
+
:default: - a role will be created automatically
|
|
25014
|
+
'''
|
|
25015
|
+
result = self._values.get("role")
|
|
25016
|
+
return typing.cast(typing.Optional[_IRole_235f5d8e], result)
|
|
25017
|
+
|
|
25018
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
25019
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
25020
|
+
|
|
25021
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
25022
|
+
return not (rhs == self)
|
|
25023
|
+
|
|
25024
|
+
def __repr__(self) -> str:
|
|
25025
|
+
return "DeploymentLifecycleHookTargetConfig(%s)" % ", ".join(
|
|
25026
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
25027
|
+
)
|
|
25028
|
+
|
|
25029
|
+
|
|
25030
|
+
@jsii.data_type(
|
|
25031
|
+
jsii_type="aws-cdk-lib.aws_ecs.DeploymentLifecycleLambdaTargetProps",
|
|
25032
|
+
jsii_struct_bases=[],
|
|
25033
|
+
name_mapping={"lifecycle_stages": "lifecycleStages", "role": "role"},
|
|
25034
|
+
)
|
|
25035
|
+
class DeploymentLifecycleLambdaTargetProps:
|
|
25036
|
+
def __init__(
|
|
25037
|
+
self,
|
|
25038
|
+
*,
|
|
25039
|
+
lifecycle_stages: typing.Sequence["DeploymentLifecycleStage"],
|
|
25040
|
+
role: typing.Optional[_IRole_235f5d8e] = None,
|
|
25041
|
+
) -> None:
|
|
25042
|
+
'''Configuration for a lambda deployment lifecycle hook.
|
|
25043
|
+
|
|
25044
|
+
:param lifecycle_stages: The lifecycle stages when this hook should be executed.
|
|
25045
|
+
:param role: The IAM role that grants permissions to invoke the lambda target. Default: - A unique role will be generated for this lambda function.
|
|
25046
|
+
|
|
25047
|
+
:exampleMetadata: infused
|
|
25048
|
+
|
|
25049
|
+
Example::
|
|
25050
|
+
|
|
25051
|
+
import aws_cdk.aws_lambda as lambda_
|
|
25052
|
+
|
|
25053
|
+
# cluster: ecs.Cluster
|
|
25054
|
+
# task_definition: ecs.TaskDefinition
|
|
25055
|
+
# lambda_hook: lambda.Function
|
|
25056
|
+
# blue_target_group: elbv2.ApplicationTargetGroup
|
|
25057
|
+
# green_target_group: elbv2.ApplicationTargetGroup
|
|
25058
|
+
# prod_listener_rule: elbv2.ApplicationListenerRule
|
|
25059
|
+
|
|
25060
|
+
|
|
25061
|
+
service = ecs.FargateService(self, "Service",
|
|
25062
|
+
cluster=cluster,
|
|
25063
|
+
task_definition=task_definition,
|
|
25064
|
+
deployment_strategy=ecs.DeploymentStrategy.BLUE_GREEN
|
|
25065
|
+
)
|
|
25066
|
+
|
|
25067
|
+
service.add_lifecycle_hook(ecs.DeploymentLifecycleLambdaTarget(lambda_hook, "PreScaleHook",
|
|
25068
|
+
lifecycle_stages=[ecs.DeploymentLifecycleStage.PRE_SCALE_UP]
|
|
25069
|
+
))
|
|
25070
|
+
|
|
25071
|
+
target = service.load_balancer_target(
|
|
25072
|
+
container_name="nginx",
|
|
25073
|
+
container_port=80,
|
|
25074
|
+
protocol=ecs.Protocol.TCP,
|
|
25075
|
+
alternate_target=ecs.AlternateTarget("AlternateTarget",
|
|
25076
|
+
alternate_target_group=green_target_group,
|
|
25077
|
+
production_listener=ecs.ListenerRuleConfiguration.application_listener_rule(prod_listener_rule)
|
|
25078
|
+
)
|
|
25079
|
+
)
|
|
25080
|
+
|
|
25081
|
+
target.attach_to_application_target_group(blue_target_group)
|
|
25082
|
+
'''
|
|
25083
|
+
if __debug__:
|
|
25084
|
+
type_hints = typing.get_type_hints(_typecheckingstub__e812b4c257c9817fdc66c09cfbc9ed6c2dae75feb52fdb91c33339837dbb883c)
|
|
25085
|
+
check_type(argname="argument lifecycle_stages", value=lifecycle_stages, expected_type=type_hints["lifecycle_stages"])
|
|
25086
|
+
check_type(argname="argument role", value=role, expected_type=type_hints["role"])
|
|
25087
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
25088
|
+
"lifecycle_stages": lifecycle_stages,
|
|
25089
|
+
}
|
|
25090
|
+
if role is not None:
|
|
25091
|
+
self._values["role"] = role
|
|
25092
|
+
|
|
25093
|
+
@builtins.property
|
|
25094
|
+
def lifecycle_stages(self) -> typing.List["DeploymentLifecycleStage"]:
|
|
25095
|
+
'''The lifecycle stages when this hook should be executed.'''
|
|
25096
|
+
result = self._values.get("lifecycle_stages")
|
|
25097
|
+
assert result is not None, "Required property 'lifecycle_stages' is missing"
|
|
25098
|
+
return typing.cast(typing.List["DeploymentLifecycleStage"], result)
|
|
25099
|
+
|
|
25100
|
+
@builtins.property
|
|
25101
|
+
def role(self) -> typing.Optional[_IRole_235f5d8e]:
|
|
25102
|
+
'''The IAM role that grants permissions to invoke the lambda target.
|
|
25103
|
+
|
|
25104
|
+
:default: - A unique role will be generated for this lambda function.
|
|
25105
|
+
'''
|
|
25106
|
+
result = self._values.get("role")
|
|
25107
|
+
return typing.cast(typing.Optional[_IRole_235f5d8e], result)
|
|
25108
|
+
|
|
25109
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
25110
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
25111
|
+
|
|
25112
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
25113
|
+
return not (rhs == self)
|
|
25114
|
+
|
|
25115
|
+
def __repr__(self) -> str:
|
|
25116
|
+
return "DeploymentLifecycleLambdaTargetProps(%s)" % ", ".join(
|
|
25117
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
25118
|
+
)
|
|
25119
|
+
|
|
25120
|
+
|
|
25121
|
+
@jsii.enum(jsii_type="aws-cdk-lib.aws_ecs.DeploymentLifecycleStage")
|
|
25122
|
+
class DeploymentLifecycleStage(enum.Enum):
|
|
25123
|
+
'''Deployment lifecycle stages where hooks can be executed.
|
|
25124
|
+
|
|
25125
|
+
:exampleMetadata: infused
|
|
25126
|
+
|
|
25127
|
+
Example::
|
|
25128
|
+
|
|
25129
|
+
import aws_cdk.aws_lambda as lambda_
|
|
25130
|
+
|
|
25131
|
+
# cluster: ecs.Cluster
|
|
25132
|
+
# task_definition: ecs.TaskDefinition
|
|
25133
|
+
# lambda_hook: lambda.Function
|
|
25134
|
+
# blue_target_group: elbv2.ApplicationTargetGroup
|
|
25135
|
+
# green_target_group: elbv2.ApplicationTargetGroup
|
|
25136
|
+
# prod_listener_rule: elbv2.ApplicationListenerRule
|
|
25137
|
+
|
|
25138
|
+
|
|
25139
|
+
service = ecs.FargateService(self, "Service",
|
|
25140
|
+
cluster=cluster,
|
|
25141
|
+
task_definition=task_definition,
|
|
25142
|
+
deployment_strategy=ecs.DeploymentStrategy.BLUE_GREEN
|
|
25143
|
+
)
|
|
25144
|
+
|
|
25145
|
+
service.add_lifecycle_hook(ecs.DeploymentLifecycleLambdaTarget(lambda_hook, "PreScaleHook",
|
|
25146
|
+
lifecycle_stages=[ecs.DeploymentLifecycleStage.PRE_SCALE_UP]
|
|
25147
|
+
))
|
|
25148
|
+
|
|
25149
|
+
target = service.load_balancer_target(
|
|
25150
|
+
container_name="nginx",
|
|
25151
|
+
container_port=80,
|
|
25152
|
+
protocol=ecs.Protocol.TCP,
|
|
25153
|
+
alternate_target=ecs.AlternateTarget("AlternateTarget",
|
|
25154
|
+
alternate_target_group=green_target_group,
|
|
25155
|
+
production_listener=ecs.ListenerRuleConfiguration.application_listener_rule(prod_listener_rule)
|
|
25156
|
+
)
|
|
25157
|
+
)
|
|
25158
|
+
|
|
25159
|
+
target.attach_to_application_target_group(blue_target_group)
|
|
25160
|
+
'''
|
|
25161
|
+
|
|
25162
|
+
RECONCILE_SERVICE = "RECONCILE_SERVICE"
|
|
25163
|
+
'''Execute during service reconciliation.'''
|
|
25164
|
+
PRE_SCALE_UP = "PRE_SCALE_UP"
|
|
25165
|
+
'''Execute before scaling up tasks.'''
|
|
25166
|
+
POST_SCALE_UP = "POST_SCALE_UP"
|
|
25167
|
+
'''Execute after scaling up tasks.'''
|
|
25168
|
+
TEST_TRAFFIC_SHIFT = "TEST_TRAFFIC_SHIFT"
|
|
25169
|
+
'''Execute during test traffic shift.'''
|
|
25170
|
+
POST_TEST_TRAFFIC_SHIFT = "POST_TEST_TRAFFIC_SHIFT"
|
|
25171
|
+
'''Execute after test traffic shift.'''
|
|
25172
|
+
PRODUCTION_TRAFFIC_SHIFT = "PRODUCTION_TRAFFIC_SHIFT"
|
|
25173
|
+
'''Execute during production traffic shift.'''
|
|
25174
|
+
POST_PRODUCTION_TRAFFIC_SHIFT = "POST_PRODUCTION_TRAFFIC_SHIFT"
|
|
25175
|
+
'''Execute after production traffic shift.'''
|
|
25176
|
+
|
|
25177
|
+
|
|
25178
|
+
@jsii.enum(jsii_type="aws-cdk-lib.aws_ecs.DeploymentStrategy")
|
|
25179
|
+
class DeploymentStrategy(enum.Enum):
|
|
25180
|
+
'''The deployment stratergy to use for ECS controller.
|
|
25181
|
+
|
|
25182
|
+
:exampleMetadata: infused
|
|
25183
|
+
|
|
25184
|
+
Example::
|
|
25185
|
+
|
|
25186
|
+
import aws_cdk.aws_lambda as lambda_
|
|
25187
|
+
|
|
25188
|
+
# cluster: ecs.Cluster
|
|
25189
|
+
# task_definition: ecs.TaskDefinition
|
|
25190
|
+
# lambda_hook: lambda.Function
|
|
25191
|
+
# blue_target_group: elbv2.ApplicationTargetGroup
|
|
25192
|
+
# green_target_group: elbv2.ApplicationTargetGroup
|
|
25193
|
+
# prod_listener_rule: elbv2.ApplicationListenerRule
|
|
25194
|
+
|
|
25195
|
+
|
|
25196
|
+
service = ecs.FargateService(self, "Service",
|
|
25197
|
+
cluster=cluster,
|
|
25198
|
+
task_definition=task_definition,
|
|
25199
|
+
deployment_strategy=ecs.DeploymentStrategy.BLUE_GREEN
|
|
25200
|
+
)
|
|
25201
|
+
|
|
25202
|
+
service.add_lifecycle_hook(ecs.DeploymentLifecycleLambdaTarget(lambda_hook, "PreScaleHook",
|
|
25203
|
+
lifecycle_stages=[ecs.DeploymentLifecycleStage.PRE_SCALE_UP]
|
|
25204
|
+
))
|
|
25205
|
+
|
|
25206
|
+
target = service.load_balancer_target(
|
|
25207
|
+
container_name="nginx",
|
|
25208
|
+
container_port=80,
|
|
25209
|
+
protocol=ecs.Protocol.TCP,
|
|
25210
|
+
alternate_target=ecs.AlternateTarget("AlternateTarget",
|
|
25211
|
+
alternate_target_group=green_target_group,
|
|
25212
|
+
production_listener=ecs.ListenerRuleConfiguration.application_listener_rule(prod_listener_rule)
|
|
25213
|
+
)
|
|
25214
|
+
)
|
|
25215
|
+
|
|
25216
|
+
target.attach_to_application_target_group(blue_target_group)
|
|
25217
|
+
'''
|
|
25218
|
+
|
|
25219
|
+
ROLLING = "ROLLING"
|
|
25220
|
+
'''Rolling update deployment.'''
|
|
25221
|
+
BLUE_GREEN = "BLUE_GREEN"
|
|
25222
|
+
'''Blue/green deployment.'''
|
|
25223
|
+
|
|
25224
|
+
|
|
24424
25225
|
@jsii.data_type(
|
|
24425
25226
|
jsii_type="aws-cdk-lib.aws_ecs.Device",
|
|
24426
25227
|
jsii_struct_bases=[],
|
|
@@ -25023,15 +25824,18 @@ class Ec2ServiceAttributes:
|
|
|
25023
25824
|
jsii_struct_bases=[BaseServiceOptions],
|
|
25024
25825
|
name_mapping={
|
|
25025
25826
|
"cluster": "cluster",
|
|
25827
|
+
"bake_time": "bakeTime",
|
|
25026
25828
|
"capacity_provider_strategies": "capacityProviderStrategies",
|
|
25027
25829
|
"circuit_breaker": "circuitBreaker",
|
|
25028
25830
|
"cloud_map_options": "cloudMapOptions",
|
|
25029
25831
|
"deployment_alarms": "deploymentAlarms",
|
|
25030
25832
|
"deployment_controller": "deploymentController",
|
|
25833
|
+
"deployment_strategy": "deploymentStrategy",
|
|
25031
25834
|
"desired_count": "desiredCount",
|
|
25032
25835
|
"enable_ecs_managed_tags": "enableECSManagedTags",
|
|
25033
25836
|
"enable_execute_command": "enableExecuteCommand",
|
|
25034
25837
|
"health_check_grace_period": "healthCheckGracePeriod",
|
|
25838
|
+
"lifecycle_hooks": "lifecycleHooks",
|
|
25035
25839
|
"max_healthy_percent": "maxHealthyPercent",
|
|
25036
25840
|
"min_healthy_percent": "minHealthyPercent",
|
|
25037
25841
|
"propagate_tags": "propagateTags",
|
|
@@ -25054,15 +25858,18 @@ class Ec2ServiceProps(BaseServiceOptions):
|
|
|
25054
25858
|
self,
|
|
25055
25859
|
*,
|
|
25056
25860
|
cluster: "ICluster",
|
|
25861
|
+
bake_time: typing.Optional[_Duration_4839e8c3] = None,
|
|
25057
25862
|
capacity_provider_strategies: typing.Optional[typing.Sequence[typing.Union[CapacityProviderStrategy, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
25058
25863
|
circuit_breaker: typing.Optional[typing.Union[DeploymentCircuitBreaker, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
25059
25864
|
cloud_map_options: typing.Optional[typing.Union[CloudMapOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
25060
25865
|
deployment_alarms: typing.Optional[typing.Union["DeploymentAlarmConfig", typing.Dict[builtins.str, typing.Any]]] = None,
|
|
25061
25866
|
deployment_controller: typing.Optional[typing.Union[DeploymentController, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
25867
|
+
deployment_strategy: typing.Optional[DeploymentStrategy] = None,
|
|
25062
25868
|
desired_count: typing.Optional[jsii.Number] = None,
|
|
25063
25869
|
enable_ecs_managed_tags: typing.Optional[builtins.bool] = None,
|
|
25064
25870
|
enable_execute_command: typing.Optional[builtins.bool] = None,
|
|
25065
25871
|
health_check_grace_period: typing.Optional[_Duration_4839e8c3] = None,
|
|
25872
|
+
lifecycle_hooks: typing.Optional[typing.Sequence["IDeploymentLifecycleHookTarget"]] = None,
|
|
25066
25873
|
max_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
25067
25874
|
min_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
25068
25875
|
propagate_tags: typing.Optional["PropagatedTagSource"] = None,
|
|
@@ -25082,15 +25889,18 @@ class Ec2ServiceProps(BaseServiceOptions):
|
|
|
25082
25889
|
'''The properties for defining a service using the EC2 launch type.
|
|
25083
25890
|
|
|
25084
25891
|
:param cluster: The name of the cluster that hosts the service.
|
|
25892
|
+
:param bake_time: bake time minutes for service. Default: - none
|
|
25085
25893
|
:param capacity_provider_strategies: A list of Capacity Provider strategies used to place a service. Default: - undefined
|
|
25086
25894
|
:param circuit_breaker: Whether to enable the deployment circuit breaker. If this property is defined, circuit breaker will be implicitly enabled. Default: - disabled
|
|
25087
25895
|
:param cloud_map_options: The options for configuring an Amazon ECS service to use service discovery. Default: - AWS Cloud Map service discovery is not enabled.
|
|
25088
25896
|
:param deployment_alarms: The alarm(s) to monitor during deployment, and behavior to apply if at least one enters a state of alarm during the deployment or bake time. Default: - No alarms will be monitored during deployment.
|
|
25089
25897
|
:param deployment_controller: Specifies which deployment controller to use for the service. For more information, see `Amazon ECS Deployment Types <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html>`_ Default: - Rolling update (ECS)
|
|
25898
|
+
:param deployment_strategy: The deployment strategy to use for the service. Default: ROLLING
|
|
25090
25899
|
:param desired_count: The desired number of instantiations of the task definition to keep running on the service. Default: - When creating the service, default is 1; when updating the service, default uses the current task number.
|
|
25091
25900
|
:param enable_ecs_managed_tags: Specifies whether to enable 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>`_ Default: false
|
|
25092
25901
|
:param enable_execute_command: Whether to enable the ability to execute into a container. Default: - undefined
|
|
25093
25902
|
:param health_check_grace_period: The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started. Default: - defaults to 60 seconds if at least one load balancer is in-use and it is not already set
|
|
25903
|
+
:param lifecycle_hooks: The lifecycle hooks to execute during deployment stages. Default: - none;
|
|
25094
25904
|
:param max_healthy_percent: The maximum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that can run in a service during a deployment. Default: - 100 if daemon, otherwise 200
|
|
25095
25905
|
:param min_healthy_percent: The minimum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that must continue to run and remain healthy during a deployment. Default: - 0 if daemon, otherwise 50
|
|
25096
25906
|
:param propagate_tags: Specifies whether to propagate the tags from the task definition or the service to the tasks in the service. Valid values are: PropagatedTagSource.SERVICE, PropagatedTagSource.TASK_DEFINITION or PropagatedTagSource.NONE Default: PropagatedTagSource.NONE
|
|
@@ -25100,7 +25910,7 @@ class Ec2ServiceProps(BaseServiceOptions):
|
|
|
25100
25910
|
:param volume_configurations: Configuration details for a volume used by the service. This allows you to specify details about the EBS volume that can be attched to ECS tasks. Default: - undefined
|
|
25101
25911
|
:param task_definition: The task definition to use for tasks in the service. [disable-awslint:ref-via-interface]
|
|
25102
25912
|
:param assign_public_ip: Specifies whether the task's elastic network interface receives a public IP address. If true, each task will receive a public IP address. This property is only used for tasks that use the awsvpc network mode. Default: false
|
|
25103
|
-
:param availability_zone_rebalancing: Whether to use Availability Zone rebalancing for the service. If enabled: ``maxHealthyPercent`` must be greater than 100; ``daemon`` must be false; if there are any ``placementStrategies``, the first must be "spread across Availability Zones"; there must be no ``placementConstraints`` using ``attribute:ecs.availability-zone``, and the service must not be a target of a Classic Load Balancer. Default: AvailabilityZoneRebalancing.
|
|
25913
|
+
:param availability_zone_rebalancing: Whether to use Availability Zone rebalancing for the service. If enabled: ``maxHealthyPercent`` must be greater than 100; ``daemon`` must be false; if there are any ``placementStrategies``, the first must be "spread across Availability Zones"; there must be no ``placementConstraints`` using ``attribute:ecs.availability-zone``, and the service must not be a target of a Classic Load Balancer. Default: AvailabilityZoneRebalancing.ENABLED
|
|
25104
25914
|
:param daemon: Specifies whether the service will use the daemon scheduling strategy. If true, the service scheduler deploys exactly one task on each container instance in your cluster. When you are using this strategy, do not specify a desired number of tasks or any task placement strategies. Default: false
|
|
25105
25915
|
:param placement_constraints: The placement constraints to use for tasks in the service. For more information, see `Amazon ECS Task Placement Constraints <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html>`_. Default: - No constraints.
|
|
25106
25916
|
:param placement_strategies: The placement strategies to use for tasks in the service. For more information, see `Amazon ECS Task Placement Strategies <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html>`_. Default: - No strategies.
|
|
@@ -25152,15 +25962,18 @@ class Ec2ServiceProps(BaseServiceOptions):
|
|
|
25152
25962
|
if __debug__:
|
|
25153
25963
|
type_hints = typing.get_type_hints(_typecheckingstub__95634258086aa3448fbdfd9896017a2cbeb858f382deb61186bb9e22b1ccd366)
|
|
25154
25964
|
check_type(argname="argument cluster", value=cluster, expected_type=type_hints["cluster"])
|
|
25965
|
+
check_type(argname="argument bake_time", value=bake_time, expected_type=type_hints["bake_time"])
|
|
25155
25966
|
check_type(argname="argument capacity_provider_strategies", value=capacity_provider_strategies, expected_type=type_hints["capacity_provider_strategies"])
|
|
25156
25967
|
check_type(argname="argument circuit_breaker", value=circuit_breaker, expected_type=type_hints["circuit_breaker"])
|
|
25157
25968
|
check_type(argname="argument cloud_map_options", value=cloud_map_options, expected_type=type_hints["cloud_map_options"])
|
|
25158
25969
|
check_type(argname="argument deployment_alarms", value=deployment_alarms, expected_type=type_hints["deployment_alarms"])
|
|
25159
25970
|
check_type(argname="argument deployment_controller", value=deployment_controller, expected_type=type_hints["deployment_controller"])
|
|
25971
|
+
check_type(argname="argument deployment_strategy", value=deployment_strategy, expected_type=type_hints["deployment_strategy"])
|
|
25160
25972
|
check_type(argname="argument desired_count", value=desired_count, expected_type=type_hints["desired_count"])
|
|
25161
25973
|
check_type(argname="argument enable_ecs_managed_tags", value=enable_ecs_managed_tags, expected_type=type_hints["enable_ecs_managed_tags"])
|
|
25162
25974
|
check_type(argname="argument enable_execute_command", value=enable_execute_command, expected_type=type_hints["enable_execute_command"])
|
|
25163
25975
|
check_type(argname="argument health_check_grace_period", value=health_check_grace_period, expected_type=type_hints["health_check_grace_period"])
|
|
25976
|
+
check_type(argname="argument lifecycle_hooks", value=lifecycle_hooks, expected_type=type_hints["lifecycle_hooks"])
|
|
25164
25977
|
check_type(argname="argument max_healthy_percent", value=max_healthy_percent, expected_type=type_hints["max_healthy_percent"])
|
|
25165
25978
|
check_type(argname="argument min_healthy_percent", value=min_healthy_percent, expected_type=type_hints["min_healthy_percent"])
|
|
25166
25979
|
check_type(argname="argument propagate_tags", value=propagate_tags, expected_type=type_hints["propagate_tags"])
|
|
@@ -25180,6 +25993,8 @@ class Ec2ServiceProps(BaseServiceOptions):
|
|
|
25180
25993
|
"cluster": cluster,
|
|
25181
25994
|
"task_definition": task_definition,
|
|
25182
25995
|
}
|
|
25996
|
+
if bake_time is not None:
|
|
25997
|
+
self._values["bake_time"] = bake_time
|
|
25183
25998
|
if capacity_provider_strategies is not None:
|
|
25184
25999
|
self._values["capacity_provider_strategies"] = capacity_provider_strategies
|
|
25185
26000
|
if circuit_breaker is not None:
|
|
@@ -25190,6 +26005,8 @@ class Ec2ServiceProps(BaseServiceOptions):
|
|
|
25190
26005
|
self._values["deployment_alarms"] = deployment_alarms
|
|
25191
26006
|
if deployment_controller is not None:
|
|
25192
26007
|
self._values["deployment_controller"] = deployment_controller
|
|
26008
|
+
if deployment_strategy is not None:
|
|
26009
|
+
self._values["deployment_strategy"] = deployment_strategy
|
|
25193
26010
|
if desired_count is not None:
|
|
25194
26011
|
self._values["desired_count"] = desired_count
|
|
25195
26012
|
if enable_ecs_managed_tags is not None:
|
|
@@ -25198,6 +26015,8 @@ class Ec2ServiceProps(BaseServiceOptions):
|
|
|
25198
26015
|
self._values["enable_execute_command"] = enable_execute_command
|
|
25199
26016
|
if health_check_grace_period is not None:
|
|
25200
26017
|
self._values["health_check_grace_period"] = health_check_grace_period
|
|
26018
|
+
if lifecycle_hooks is not None:
|
|
26019
|
+
self._values["lifecycle_hooks"] = lifecycle_hooks
|
|
25201
26020
|
if max_healthy_percent is not None:
|
|
25202
26021
|
self._values["max_healthy_percent"] = max_healthy_percent
|
|
25203
26022
|
if min_healthy_percent is not None:
|
|
@@ -25234,6 +26053,15 @@ class Ec2ServiceProps(BaseServiceOptions):
|
|
|
25234
26053
|
assert result is not None, "Required property 'cluster' is missing"
|
|
25235
26054
|
return typing.cast("ICluster", result)
|
|
25236
26055
|
|
|
26056
|
+
@builtins.property
|
|
26057
|
+
def bake_time(self) -> typing.Optional[_Duration_4839e8c3]:
|
|
26058
|
+
'''bake time minutes for service.
|
|
26059
|
+
|
|
26060
|
+
:default: - none
|
|
26061
|
+
'''
|
|
26062
|
+
result = self._values.get("bake_time")
|
|
26063
|
+
return typing.cast(typing.Optional[_Duration_4839e8c3], result)
|
|
26064
|
+
|
|
25237
26065
|
@builtins.property
|
|
25238
26066
|
def capacity_provider_strategies(
|
|
25239
26067
|
self,
|
|
@@ -25287,6 +26115,15 @@ class Ec2ServiceProps(BaseServiceOptions):
|
|
|
25287
26115
|
result = self._values.get("deployment_controller")
|
|
25288
26116
|
return typing.cast(typing.Optional[DeploymentController], result)
|
|
25289
26117
|
|
|
26118
|
+
@builtins.property
|
|
26119
|
+
def deployment_strategy(self) -> typing.Optional[DeploymentStrategy]:
|
|
26120
|
+
'''The deployment strategy to use for the service.
|
|
26121
|
+
|
|
26122
|
+
:default: ROLLING
|
|
26123
|
+
'''
|
|
26124
|
+
result = self._values.get("deployment_strategy")
|
|
26125
|
+
return typing.cast(typing.Optional[DeploymentStrategy], result)
|
|
26126
|
+
|
|
25290
26127
|
@builtins.property
|
|
25291
26128
|
def desired_count(self) -> typing.Optional[jsii.Number]:
|
|
25292
26129
|
'''The desired number of instantiations of the task definition to keep running on the service.
|
|
@@ -25329,6 +26166,17 @@ class Ec2ServiceProps(BaseServiceOptions):
|
|
|
25329
26166
|
result = self._values.get("health_check_grace_period")
|
|
25330
26167
|
return typing.cast(typing.Optional[_Duration_4839e8c3], result)
|
|
25331
26168
|
|
|
26169
|
+
@builtins.property
|
|
26170
|
+
def lifecycle_hooks(
|
|
26171
|
+
self,
|
|
26172
|
+
) -> typing.Optional[typing.List["IDeploymentLifecycleHookTarget"]]:
|
|
26173
|
+
'''The lifecycle hooks to execute during deployment stages.
|
|
26174
|
+
|
|
26175
|
+
:default: - none;
|
|
26176
|
+
'''
|
|
26177
|
+
result = self._values.get("lifecycle_hooks")
|
|
26178
|
+
return typing.cast(typing.Optional[typing.List["IDeploymentLifecycleHookTarget"]], result)
|
|
26179
|
+
|
|
25332
26180
|
@builtins.property
|
|
25333
26181
|
def max_healthy_percent(self) -> typing.Optional[jsii.Number]:
|
|
25334
26182
|
'''The maximum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that can run in a service during a deployment.
|
|
@@ -25436,7 +26284,7 @@ class Ec2ServiceProps(BaseServiceOptions):
|
|
|
25436
26284
|
must be no ``placementConstraints`` using ``attribute:ecs.availability-zone``, and the
|
|
25437
26285
|
service must not be a target of a Classic Load Balancer.
|
|
25438
26286
|
|
|
25439
|
-
:default: AvailabilityZoneRebalancing.
|
|
26287
|
+
:default: AvailabilityZoneRebalancing.ENABLED
|
|
25440
26288
|
|
|
25441
26289
|
:see: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html
|
|
25442
26290
|
'''
|
|
@@ -27044,15 +27892,18 @@ class ExternalServiceAttributes:
|
|
|
27044
27892
|
jsii_struct_bases=[BaseServiceOptions],
|
|
27045
27893
|
name_mapping={
|
|
27046
27894
|
"cluster": "cluster",
|
|
27895
|
+
"bake_time": "bakeTime",
|
|
27047
27896
|
"capacity_provider_strategies": "capacityProviderStrategies",
|
|
27048
27897
|
"circuit_breaker": "circuitBreaker",
|
|
27049
27898
|
"cloud_map_options": "cloudMapOptions",
|
|
27050
27899
|
"deployment_alarms": "deploymentAlarms",
|
|
27051
27900
|
"deployment_controller": "deploymentController",
|
|
27901
|
+
"deployment_strategy": "deploymentStrategy",
|
|
27052
27902
|
"desired_count": "desiredCount",
|
|
27053
27903
|
"enable_ecs_managed_tags": "enableECSManagedTags",
|
|
27054
27904
|
"enable_execute_command": "enableExecuteCommand",
|
|
27055
27905
|
"health_check_grace_period": "healthCheckGracePeriod",
|
|
27906
|
+
"lifecycle_hooks": "lifecycleHooks",
|
|
27056
27907
|
"max_healthy_percent": "maxHealthyPercent",
|
|
27057
27908
|
"min_healthy_percent": "minHealthyPercent",
|
|
27058
27909
|
"propagate_tags": "propagateTags",
|
|
@@ -27070,15 +27921,18 @@ class ExternalServiceProps(BaseServiceOptions):
|
|
|
27070
27921
|
self,
|
|
27071
27922
|
*,
|
|
27072
27923
|
cluster: "ICluster",
|
|
27924
|
+
bake_time: typing.Optional[_Duration_4839e8c3] = None,
|
|
27073
27925
|
capacity_provider_strategies: typing.Optional[typing.Sequence[typing.Union[CapacityProviderStrategy, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
27074
27926
|
circuit_breaker: typing.Optional[typing.Union[DeploymentCircuitBreaker, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
27075
27927
|
cloud_map_options: typing.Optional[typing.Union[CloudMapOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
27076
27928
|
deployment_alarms: typing.Optional[typing.Union["DeploymentAlarmConfig", typing.Dict[builtins.str, typing.Any]]] = None,
|
|
27077
27929
|
deployment_controller: typing.Optional[typing.Union[DeploymentController, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
27930
|
+
deployment_strategy: typing.Optional[DeploymentStrategy] = None,
|
|
27078
27931
|
desired_count: typing.Optional[jsii.Number] = None,
|
|
27079
27932
|
enable_ecs_managed_tags: typing.Optional[builtins.bool] = None,
|
|
27080
27933
|
enable_execute_command: typing.Optional[builtins.bool] = None,
|
|
27081
27934
|
health_check_grace_period: typing.Optional[_Duration_4839e8c3] = None,
|
|
27935
|
+
lifecycle_hooks: typing.Optional[typing.Sequence["IDeploymentLifecycleHookTarget"]] = None,
|
|
27082
27936
|
max_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
27083
27937
|
min_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
27084
27938
|
propagate_tags: typing.Optional["PropagatedTagSource"] = None,
|
|
@@ -27093,15 +27947,18 @@ class ExternalServiceProps(BaseServiceOptions):
|
|
|
27093
27947
|
'''The properties for defining a service using the External launch type.
|
|
27094
27948
|
|
|
27095
27949
|
:param cluster: The name of the cluster that hosts the service.
|
|
27950
|
+
:param bake_time: bake time minutes for service. Default: - none
|
|
27096
27951
|
:param capacity_provider_strategies: A list of Capacity Provider strategies used to place a service. Default: - undefined
|
|
27097
27952
|
:param circuit_breaker: Whether to enable the deployment circuit breaker. If this property is defined, circuit breaker will be implicitly enabled. Default: - disabled
|
|
27098
27953
|
:param cloud_map_options: The options for configuring an Amazon ECS service to use service discovery. Default: - AWS Cloud Map service discovery is not enabled.
|
|
27099
27954
|
:param deployment_alarms: The alarm(s) to monitor during deployment, and behavior to apply if at least one enters a state of alarm during the deployment or bake time. Default: - No alarms will be monitored during deployment.
|
|
27100
27955
|
:param deployment_controller: Specifies which deployment controller to use for the service. For more information, see `Amazon ECS Deployment Types <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html>`_ Default: - Rolling update (ECS)
|
|
27956
|
+
:param deployment_strategy: The deployment strategy to use for the service. Default: ROLLING
|
|
27101
27957
|
:param desired_count: The desired number of instantiations of the task definition to keep running on the service. Default: - When creating the service, default is 1; when updating the service, default uses the current task number.
|
|
27102
27958
|
:param enable_ecs_managed_tags: Specifies whether to enable 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>`_ Default: false
|
|
27103
27959
|
:param enable_execute_command: Whether to enable the ability to execute into a container. Default: - undefined
|
|
27104
27960
|
:param health_check_grace_period: The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started. Default: - defaults to 60 seconds if at least one load balancer is in-use and it is not already set
|
|
27961
|
+
:param lifecycle_hooks: The lifecycle hooks to execute during deployment stages. Default: - none;
|
|
27105
27962
|
:param max_healthy_percent: The maximum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that can run in a service during a deployment. Default: - 100 if daemon, otherwise 200
|
|
27106
27963
|
:param min_healthy_percent: The minimum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that must continue to run and remain healthy during a deployment. Default: - 0 if daemon, otherwise 50
|
|
27107
27964
|
:param propagate_tags: Specifies whether to propagate the tags from the task definition or the service to the tasks in the service. Valid values are: PropagatedTagSource.SERVICE, PropagatedTagSource.TASK_DEFINITION or PropagatedTagSource.NONE Default: PropagatedTagSource.NONE
|
|
@@ -27146,15 +28003,18 @@ class ExternalServiceProps(BaseServiceOptions):
|
|
|
27146
28003
|
if __debug__:
|
|
27147
28004
|
type_hints = typing.get_type_hints(_typecheckingstub__3cc413964caae89bfcfbcabff8356ffe5c054f46824be99731a77b64ec052a8a)
|
|
27148
28005
|
check_type(argname="argument cluster", value=cluster, expected_type=type_hints["cluster"])
|
|
28006
|
+
check_type(argname="argument bake_time", value=bake_time, expected_type=type_hints["bake_time"])
|
|
27149
28007
|
check_type(argname="argument capacity_provider_strategies", value=capacity_provider_strategies, expected_type=type_hints["capacity_provider_strategies"])
|
|
27150
28008
|
check_type(argname="argument circuit_breaker", value=circuit_breaker, expected_type=type_hints["circuit_breaker"])
|
|
27151
28009
|
check_type(argname="argument cloud_map_options", value=cloud_map_options, expected_type=type_hints["cloud_map_options"])
|
|
27152
28010
|
check_type(argname="argument deployment_alarms", value=deployment_alarms, expected_type=type_hints["deployment_alarms"])
|
|
27153
28011
|
check_type(argname="argument deployment_controller", value=deployment_controller, expected_type=type_hints["deployment_controller"])
|
|
28012
|
+
check_type(argname="argument deployment_strategy", value=deployment_strategy, expected_type=type_hints["deployment_strategy"])
|
|
27154
28013
|
check_type(argname="argument desired_count", value=desired_count, expected_type=type_hints["desired_count"])
|
|
27155
28014
|
check_type(argname="argument enable_ecs_managed_tags", value=enable_ecs_managed_tags, expected_type=type_hints["enable_ecs_managed_tags"])
|
|
27156
28015
|
check_type(argname="argument enable_execute_command", value=enable_execute_command, expected_type=type_hints["enable_execute_command"])
|
|
27157
28016
|
check_type(argname="argument health_check_grace_period", value=health_check_grace_period, expected_type=type_hints["health_check_grace_period"])
|
|
28017
|
+
check_type(argname="argument lifecycle_hooks", value=lifecycle_hooks, expected_type=type_hints["lifecycle_hooks"])
|
|
27158
28018
|
check_type(argname="argument max_healthy_percent", value=max_healthy_percent, expected_type=type_hints["max_healthy_percent"])
|
|
27159
28019
|
check_type(argname="argument min_healthy_percent", value=min_healthy_percent, expected_type=type_hints["min_healthy_percent"])
|
|
27160
28020
|
check_type(argname="argument propagate_tags", value=propagate_tags, expected_type=type_hints["propagate_tags"])
|
|
@@ -27169,6 +28029,8 @@ class ExternalServiceProps(BaseServiceOptions):
|
|
|
27169
28029
|
"cluster": cluster,
|
|
27170
28030
|
"task_definition": task_definition,
|
|
27171
28031
|
}
|
|
28032
|
+
if bake_time is not None:
|
|
28033
|
+
self._values["bake_time"] = bake_time
|
|
27172
28034
|
if capacity_provider_strategies is not None:
|
|
27173
28035
|
self._values["capacity_provider_strategies"] = capacity_provider_strategies
|
|
27174
28036
|
if circuit_breaker is not None:
|
|
@@ -27179,6 +28041,8 @@ class ExternalServiceProps(BaseServiceOptions):
|
|
|
27179
28041
|
self._values["deployment_alarms"] = deployment_alarms
|
|
27180
28042
|
if deployment_controller is not None:
|
|
27181
28043
|
self._values["deployment_controller"] = deployment_controller
|
|
28044
|
+
if deployment_strategy is not None:
|
|
28045
|
+
self._values["deployment_strategy"] = deployment_strategy
|
|
27182
28046
|
if desired_count is not None:
|
|
27183
28047
|
self._values["desired_count"] = desired_count
|
|
27184
28048
|
if enable_ecs_managed_tags is not None:
|
|
@@ -27187,6 +28051,8 @@ class ExternalServiceProps(BaseServiceOptions):
|
|
|
27187
28051
|
self._values["enable_execute_command"] = enable_execute_command
|
|
27188
28052
|
if health_check_grace_period is not None:
|
|
27189
28053
|
self._values["health_check_grace_period"] = health_check_grace_period
|
|
28054
|
+
if lifecycle_hooks is not None:
|
|
28055
|
+
self._values["lifecycle_hooks"] = lifecycle_hooks
|
|
27190
28056
|
if max_healthy_percent is not None:
|
|
27191
28057
|
self._values["max_healthy_percent"] = max_healthy_percent
|
|
27192
28058
|
if min_healthy_percent is not None:
|
|
@@ -27213,6 +28079,15 @@ class ExternalServiceProps(BaseServiceOptions):
|
|
|
27213
28079
|
assert result is not None, "Required property 'cluster' is missing"
|
|
27214
28080
|
return typing.cast("ICluster", result)
|
|
27215
28081
|
|
|
28082
|
+
@builtins.property
|
|
28083
|
+
def bake_time(self) -> typing.Optional[_Duration_4839e8c3]:
|
|
28084
|
+
'''bake time minutes for service.
|
|
28085
|
+
|
|
28086
|
+
:default: - none
|
|
28087
|
+
'''
|
|
28088
|
+
result = self._values.get("bake_time")
|
|
28089
|
+
return typing.cast(typing.Optional[_Duration_4839e8c3], result)
|
|
28090
|
+
|
|
27216
28091
|
@builtins.property
|
|
27217
28092
|
def capacity_provider_strategies(
|
|
27218
28093
|
self,
|
|
@@ -27266,6 +28141,15 @@ class ExternalServiceProps(BaseServiceOptions):
|
|
|
27266
28141
|
result = self._values.get("deployment_controller")
|
|
27267
28142
|
return typing.cast(typing.Optional[DeploymentController], result)
|
|
27268
28143
|
|
|
28144
|
+
@builtins.property
|
|
28145
|
+
def deployment_strategy(self) -> typing.Optional[DeploymentStrategy]:
|
|
28146
|
+
'''The deployment strategy to use for the service.
|
|
28147
|
+
|
|
28148
|
+
:default: ROLLING
|
|
28149
|
+
'''
|
|
28150
|
+
result = self._values.get("deployment_strategy")
|
|
28151
|
+
return typing.cast(typing.Optional[DeploymentStrategy], result)
|
|
28152
|
+
|
|
27269
28153
|
@builtins.property
|
|
27270
28154
|
def desired_count(self) -> typing.Optional[jsii.Number]:
|
|
27271
28155
|
'''The desired number of instantiations of the task definition to keep running on the service.
|
|
@@ -27308,6 +28192,17 @@ class ExternalServiceProps(BaseServiceOptions):
|
|
|
27308
28192
|
result = self._values.get("health_check_grace_period")
|
|
27309
28193
|
return typing.cast(typing.Optional[_Duration_4839e8c3], result)
|
|
27310
28194
|
|
|
28195
|
+
@builtins.property
|
|
28196
|
+
def lifecycle_hooks(
|
|
28197
|
+
self,
|
|
28198
|
+
) -> typing.Optional[typing.List["IDeploymentLifecycleHookTarget"]]:
|
|
28199
|
+
'''The lifecycle hooks to execute during deployment stages.
|
|
28200
|
+
|
|
28201
|
+
:default: - none;
|
|
28202
|
+
'''
|
|
28203
|
+
result = self._values.get("lifecycle_hooks")
|
|
28204
|
+
return typing.cast(typing.Optional[typing.List["IDeploymentLifecycleHookTarget"]], result)
|
|
28205
|
+
|
|
27311
28206
|
@builtins.property
|
|
27312
28207
|
def max_healthy_percent(self) -> typing.Optional[jsii.Number]:
|
|
27313
28208
|
'''The maximum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that can run in a service during a deployment.
|
|
@@ -27888,15 +28783,18 @@ class FargateServiceAttributes:
|
|
|
27888
28783
|
jsii_struct_bases=[BaseServiceOptions],
|
|
27889
28784
|
name_mapping={
|
|
27890
28785
|
"cluster": "cluster",
|
|
28786
|
+
"bake_time": "bakeTime",
|
|
27891
28787
|
"capacity_provider_strategies": "capacityProviderStrategies",
|
|
27892
28788
|
"circuit_breaker": "circuitBreaker",
|
|
27893
28789
|
"cloud_map_options": "cloudMapOptions",
|
|
27894
28790
|
"deployment_alarms": "deploymentAlarms",
|
|
27895
28791
|
"deployment_controller": "deploymentController",
|
|
28792
|
+
"deployment_strategy": "deploymentStrategy",
|
|
27896
28793
|
"desired_count": "desiredCount",
|
|
27897
28794
|
"enable_ecs_managed_tags": "enableECSManagedTags",
|
|
27898
28795
|
"enable_execute_command": "enableExecuteCommand",
|
|
27899
28796
|
"health_check_grace_period": "healthCheckGracePeriod",
|
|
28797
|
+
"lifecycle_hooks": "lifecycleHooks",
|
|
27900
28798
|
"max_healthy_percent": "maxHealthyPercent",
|
|
27901
28799
|
"min_healthy_percent": "minHealthyPercent",
|
|
27902
28800
|
"propagate_tags": "propagateTags",
|
|
@@ -27917,15 +28815,18 @@ class FargateServiceProps(BaseServiceOptions):
|
|
|
27917
28815
|
self,
|
|
27918
28816
|
*,
|
|
27919
28817
|
cluster: "ICluster",
|
|
28818
|
+
bake_time: typing.Optional[_Duration_4839e8c3] = None,
|
|
27920
28819
|
capacity_provider_strategies: typing.Optional[typing.Sequence[typing.Union[CapacityProviderStrategy, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
27921
28820
|
circuit_breaker: typing.Optional[typing.Union[DeploymentCircuitBreaker, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
27922
28821
|
cloud_map_options: typing.Optional[typing.Union[CloudMapOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
27923
28822
|
deployment_alarms: typing.Optional[typing.Union["DeploymentAlarmConfig", typing.Dict[builtins.str, typing.Any]]] = None,
|
|
27924
28823
|
deployment_controller: typing.Optional[typing.Union[DeploymentController, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
28824
|
+
deployment_strategy: typing.Optional[DeploymentStrategy] = None,
|
|
27925
28825
|
desired_count: typing.Optional[jsii.Number] = None,
|
|
27926
28826
|
enable_ecs_managed_tags: typing.Optional[builtins.bool] = None,
|
|
27927
28827
|
enable_execute_command: typing.Optional[builtins.bool] = None,
|
|
27928
28828
|
health_check_grace_period: typing.Optional[_Duration_4839e8c3] = None,
|
|
28829
|
+
lifecycle_hooks: typing.Optional[typing.Sequence["IDeploymentLifecycleHookTarget"]] = None,
|
|
27929
28830
|
max_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
27930
28831
|
min_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
27931
28832
|
propagate_tags: typing.Optional["PropagatedTagSource"] = None,
|
|
@@ -27943,15 +28844,18 @@ class FargateServiceProps(BaseServiceOptions):
|
|
|
27943
28844
|
'''The properties for defining a service using the Fargate launch type.
|
|
27944
28845
|
|
|
27945
28846
|
:param cluster: The name of the cluster that hosts the service.
|
|
28847
|
+
:param bake_time: bake time minutes for service. Default: - none
|
|
27946
28848
|
:param capacity_provider_strategies: A list of Capacity Provider strategies used to place a service. Default: - undefined
|
|
27947
28849
|
:param circuit_breaker: Whether to enable the deployment circuit breaker. If this property is defined, circuit breaker will be implicitly enabled. Default: - disabled
|
|
27948
28850
|
:param cloud_map_options: The options for configuring an Amazon ECS service to use service discovery. Default: - AWS Cloud Map service discovery is not enabled.
|
|
27949
28851
|
:param deployment_alarms: The alarm(s) to monitor during deployment, and behavior to apply if at least one enters a state of alarm during the deployment or bake time. Default: - No alarms will be monitored during deployment.
|
|
27950
28852
|
:param deployment_controller: Specifies which deployment controller to use for the service. For more information, see `Amazon ECS Deployment Types <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html>`_ Default: - Rolling update (ECS)
|
|
28853
|
+
:param deployment_strategy: The deployment strategy to use for the service. Default: ROLLING
|
|
27951
28854
|
:param desired_count: The desired number of instantiations of the task definition to keep running on the service. Default: - When creating the service, default is 1; when updating the service, default uses the current task number.
|
|
27952
28855
|
:param enable_ecs_managed_tags: Specifies whether to enable 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>`_ Default: false
|
|
27953
28856
|
:param enable_execute_command: Whether to enable the ability to execute into a container. Default: - undefined
|
|
27954
28857
|
:param health_check_grace_period: The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started. Default: - defaults to 60 seconds if at least one load balancer is in-use and it is not already set
|
|
28858
|
+
:param lifecycle_hooks: The lifecycle hooks to execute during deployment stages. Default: - none;
|
|
27955
28859
|
:param max_healthy_percent: The maximum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that can run in a service during a deployment. Default: - 100 if daemon, otherwise 200
|
|
27956
28860
|
:param min_healthy_percent: The minimum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that must continue to run and remain healthy during a deployment. Default: - 0 if daemon, otherwise 50
|
|
27957
28861
|
:param propagate_tags: Specifies whether to propagate the tags from the task definition or the service to the tasks in the service. Valid values are: PropagatedTagSource.SERVICE, PropagatedTagSource.TASK_DEFINITION or PropagatedTagSource.NONE Default: PropagatedTagSource.NONE
|
|
@@ -27961,7 +28865,7 @@ class FargateServiceProps(BaseServiceOptions):
|
|
|
27961
28865
|
:param volume_configurations: Configuration details for a volume used by the service. This allows you to specify details about the EBS volume that can be attched to ECS tasks. Default: - undefined
|
|
27962
28866
|
:param task_definition: The task definition to use for tasks in the service. [disable-awslint:ref-via-interface]
|
|
27963
28867
|
:param assign_public_ip: Specifies whether the task's elastic network interface receives a public IP address. If true, each task will receive a public IP address. Default: false
|
|
27964
|
-
:param availability_zone_rebalancing: Whether to use Availability Zone rebalancing for the service. If enabled, ``maxHealthyPercent`` must be greater than 100, and the service must not be a target of a Classic Load Balancer. Default: AvailabilityZoneRebalancing.
|
|
28868
|
+
:param availability_zone_rebalancing: Whether to use Availability Zone rebalancing for the service. If enabled, ``maxHealthyPercent`` must be greater than 100, and the service must not be a target of a Classic Load Balancer. Default: AvailabilityZoneRebalancing.ENABLED
|
|
27965
28869
|
:param platform_version: The platform version on which to run your service. If one is not specified, the LATEST platform version is used by default. For more information, see `AWS Fargate Platform Versions <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html>`_ in the Amazon Elastic Container Service Developer Guide. Default: Latest
|
|
27966
28870
|
:param security_groups: The security groups to associate with the service. If you do not specify a security group, a new security group is created. Default: - A new security group is created.
|
|
27967
28871
|
:param vpc_subnets: The subnets to associate with the service. Default: - Public subnets if ``assignPublicIp`` is set, otherwise the first available one of Private, Isolated, Public, in that order.
|
|
@@ -27974,28 +28878,34 @@ class FargateServiceProps(BaseServiceOptions):
|
|
|
27974
28878
|
|
|
27975
28879
|
# cluster: ecs.Cluster
|
|
27976
28880
|
# task_definition: ecs.TaskDefinition
|
|
27977
|
-
# elb_alarm: cw.Alarm
|
|
27978
|
-
|
|
27979
28881
|
|
|
28882
|
+
service_name = "MyFargateService"
|
|
27980
28883
|
service = ecs.FargateService(self, "Service",
|
|
28884
|
+
service_name=service_name,
|
|
27981
28885
|
cluster=cluster,
|
|
27982
28886
|
task_definition=task_definition,
|
|
27983
|
-
min_healthy_percent=100
|
|
27984
|
-
deployment_alarms=ecs.DeploymentAlarmConfig(
|
|
27985
|
-
alarm_names=[elb_alarm.alarm_name],
|
|
27986
|
-
behavior=ecs.AlarmBehavior.ROLLBACK_ON_ALARM
|
|
27987
|
-
)
|
|
28887
|
+
min_healthy_percent=100
|
|
27988
28888
|
)
|
|
27989
28889
|
|
|
27990
|
-
|
|
27991
|
-
|
|
27992
|
-
|
|
27993
|
-
|
|
27994
|
-
|
|
28890
|
+
cpu_metric = cw.Metric(
|
|
28891
|
+
metric_name="CPUUtilization",
|
|
28892
|
+
namespace="AWS/ECS",
|
|
28893
|
+
period=Duration.minutes(5),
|
|
28894
|
+
statistic="Average",
|
|
28895
|
+
dimensions_map={
|
|
28896
|
+
"ClusterName": cluster.cluster_name,
|
|
28897
|
+
# Using `service.serviceName` here will cause a circular dependency
|
|
28898
|
+
"ServiceName": service_name
|
|
28899
|
+
}
|
|
28900
|
+
)
|
|
28901
|
+
my_alarm = cw.Alarm(self, "CPUAlarm",
|
|
28902
|
+
alarm_name="cpuAlarmName",
|
|
28903
|
+
metric=cpu_metric,
|
|
27995
28904
|
evaluation_periods=2,
|
|
27996
28905
|
threshold=80
|
|
27997
28906
|
)
|
|
27998
|
-
|
|
28907
|
+
|
|
28908
|
+
service.enable_deployment_alarms([my_alarm.alarm_name],
|
|
27999
28909
|
behavior=ecs.AlarmBehavior.FAIL_ON_ALARM
|
|
28000
28910
|
)
|
|
28001
28911
|
'''
|
|
@@ -28014,15 +28924,18 @@ class FargateServiceProps(BaseServiceOptions):
|
|
|
28014
28924
|
if __debug__:
|
|
28015
28925
|
type_hints = typing.get_type_hints(_typecheckingstub__8290283f61f3e2d289b7e7f81cad1a5d1e9ed9dbc07ccce2b57604682a42ded7)
|
|
28016
28926
|
check_type(argname="argument cluster", value=cluster, expected_type=type_hints["cluster"])
|
|
28927
|
+
check_type(argname="argument bake_time", value=bake_time, expected_type=type_hints["bake_time"])
|
|
28017
28928
|
check_type(argname="argument capacity_provider_strategies", value=capacity_provider_strategies, expected_type=type_hints["capacity_provider_strategies"])
|
|
28018
28929
|
check_type(argname="argument circuit_breaker", value=circuit_breaker, expected_type=type_hints["circuit_breaker"])
|
|
28019
28930
|
check_type(argname="argument cloud_map_options", value=cloud_map_options, expected_type=type_hints["cloud_map_options"])
|
|
28020
28931
|
check_type(argname="argument deployment_alarms", value=deployment_alarms, expected_type=type_hints["deployment_alarms"])
|
|
28021
28932
|
check_type(argname="argument deployment_controller", value=deployment_controller, expected_type=type_hints["deployment_controller"])
|
|
28933
|
+
check_type(argname="argument deployment_strategy", value=deployment_strategy, expected_type=type_hints["deployment_strategy"])
|
|
28022
28934
|
check_type(argname="argument desired_count", value=desired_count, expected_type=type_hints["desired_count"])
|
|
28023
28935
|
check_type(argname="argument enable_ecs_managed_tags", value=enable_ecs_managed_tags, expected_type=type_hints["enable_ecs_managed_tags"])
|
|
28024
28936
|
check_type(argname="argument enable_execute_command", value=enable_execute_command, expected_type=type_hints["enable_execute_command"])
|
|
28025
28937
|
check_type(argname="argument health_check_grace_period", value=health_check_grace_period, expected_type=type_hints["health_check_grace_period"])
|
|
28938
|
+
check_type(argname="argument lifecycle_hooks", value=lifecycle_hooks, expected_type=type_hints["lifecycle_hooks"])
|
|
28026
28939
|
check_type(argname="argument max_healthy_percent", value=max_healthy_percent, expected_type=type_hints["max_healthy_percent"])
|
|
28027
28940
|
check_type(argname="argument min_healthy_percent", value=min_healthy_percent, expected_type=type_hints["min_healthy_percent"])
|
|
28028
28941
|
check_type(argname="argument propagate_tags", value=propagate_tags, expected_type=type_hints["propagate_tags"])
|
|
@@ -28040,6 +28953,8 @@ class FargateServiceProps(BaseServiceOptions):
|
|
|
28040
28953
|
"cluster": cluster,
|
|
28041
28954
|
"task_definition": task_definition,
|
|
28042
28955
|
}
|
|
28956
|
+
if bake_time is not None:
|
|
28957
|
+
self._values["bake_time"] = bake_time
|
|
28043
28958
|
if capacity_provider_strategies is not None:
|
|
28044
28959
|
self._values["capacity_provider_strategies"] = capacity_provider_strategies
|
|
28045
28960
|
if circuit_breaker is not None:
|
|
@@ -28050,6 +28965,8 @@ class FargateServiceProps(BaseServiceOptions):
|
|
|
28050
28965
|
self._values["deployment_alarms"] = deployment_alarms
|
|
28051
28966
|
if deployment_controller is not None:
|
|
28052
28967
|
self._values["deployment_controller"] = deployment_controller
|
|
28968
|
+
if deployment_strategy is not None:
|
|
28969
|
+
self._values["deployment_strategy"] = deployment_strategy
|
|
28053
28970
|
if desired_count is not None:
|
|
28054
28971
|
self._values["desired_count"] = desired_count
|
|
28055
28972
|
if enable_ecs_managed_tags is not None:
|
|
@@ -28058,6 +28975,8 @@ class FargateServiceProps(BaseServiceOptions):
|
|
|
28058
28975
|
self._values["enable_execute_command"] = enable_execute_command
|
|
28059
28976
|
if health_check_grace_period is not None:
|
|
28060
28977
|
self._values["health_check_grace_period"] = health_check_grace_period
|
|
28978
|
+
if lifecycle_hooks is not None:
|
|
28979
|
+
self._values["lifecycle_hooks"] = lifecycle_hooks
|
|
28061
28980
|
if max_healthy_percent is not None:
|
|
28062
28981
|
self._values["max_healthy_percent"] = max_healthy_percent
|
|
28063
28982
|
if min_healthy_percent is not None:
|
|
@@ -28090,6 +29009,15 @@ class FargateServiceProps(BaseServiceOptions):
|
|
|
28090
29009
|
assert result is not None, "Required property 'cluster' is missing"
|
|
28091
29010
|
return typing.cast("ICluster", result)
|
|
28092
29011
|
|
|
29012
|
+
@builtins.property
|
|
29013
|
+
def bake_time(self) -> typing.Optional[_Duration_4839e8c3]:
|
|
29014
|
+
'''bake time minutes for service.
|
|
29015
|
+
|
|
29016
|
+
:default: - none
|
|
29017
|
+
'''
|
|
29018
|
+
result = self._values.get("bake_time")
|
|
29019
|
+
return typing.cast(typing.Optional[_Duration_4839e8c3], result)
|
|
29020
|
+
|
|
28093
29021
|
@builtins.property
|
|
28094
29022
|
def capacity_provider_strategies(
|
|
28095
29023
|
self,
|
|
@@ -28143,6 +29071,15 @@ class FargateServiceProps(BaseServiceOptions):
|
|
|
28143
29071
|
result = self._values.get("deployment_controller")
|
|
28144
29072
|
return typing.cast(typing.Optional[DeploymentController], result)
|
|
28145
29073
|
|
|
29074
|
+
@builtins.property
|
|
29075
|
+
def deployment_strategy(self) -> typing.Optional[DeploymentStrategy]:
|
|
29076
|
+
'''The deployment strategy to use for the service.
|
|
29077
|
+
|
|
29078
|
+
:default: ROLLING
|
|
29079
|
+
'''
|
|
29080
|
+
result = self._values.get("deployment_strategy")
|
|
29081
|
+
return typing.cast(typing.Optional[DeploymentStrategy], result)
|
|
29082
|
+
|
|
28146
29083
|
@builtins.property
|
|
28147
29084
|
def desired_count(self) -> typing.Optional[jsii.Number]:
|
|
28148
29085
|
'''The desired number of instantiations of the task definition to keep running on the service.
|
|
@@ -28185,6 +29122,17 @@ class FargateServiceProps(BaseServiceOptions):
|
|
|
28185
29122
|
result = self._values.get("health_check_grace_period")
|
|
28186
29123
|
return typing.cast(typing.Optional[_Duration_4839e8c3], result)
|
|
28187
29124
|
|
|
29125
|
+
@builtins.property
|
|
29126
|
+
def lifecycle_hooks(
|
|
29127
|
+
self,
|
|
29128
|
+
) -> typing.Optional[typing.List["IDeploymentLifecycleHookTarget"]]:
|
|
29129
|
+
'''The lifecycle hooks to execute during deployment stages.
|
|
29130
|
+
|
|
29131
|
+
:default: - none;
|
|
29132
|
+
'''
|
|
29133
|
+
result = self._values.get("lifecycle_hooks")
|
|
29134
|
+
return typing.cast(typing.Optional[typing.List["IDeploymentLifecycleHookTarget"]], result)
|
|
29135
|
+
|
|
28188
29136
|
@builtins.property
|
|
28189
29137
|
def max_healthy_percent(self) -> typing.Optional[jsii.Number]:
|
|
28190
29138
|
'''The maximum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that can run in a service during a deployment.
|
|
@@ -28288,7 +29236,7 @@ class FargateServiceProps(BaseServiceOptions):
|
|
|
28288
29236
|
If enabled, ``maxHealthyPercent`` must be greater than 100, and the service must not be a target
|
|
28289
29237
|
of a Classic Load Balancer.
|
|
28290
29238
|
|
|
28291
|
-
:default: AvailabilityZoneRebalancing.
|
|
29239
|
+
:default: AvailabilityZoneRebalancing.ENABLED
|
|
28292
29240
|
|
|
28293
29241
|
:see: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html
|
|
28294
29242
|
'''
|
|
@@ -31828,6 +32776,43 @@ class Host:
|
|
|
31828
32776
|
)
|
|
31829
32777
|
|
|
31830
32778
|
|
|
32779
|
+
@jsii.interface(jsii_type="aws-cdk-lib.aws_ecs.IAlternateTarget")
|
|
32780
|
+
class IAlternateTarget(typing_extensions.Protocol):
|
|
32781
|
+
'''Interface for configuring alternate target groups for blue/green deployments.'''
|
|
32782
|
+
|
|
32783
|
+
@jsii.member(jsii_name="bind")
|
|
32784
|
+
def bind(self, scope: _constructs_77d1e7e8.IConstruct) -> AlternateTargetConfig:
|
|
32785
|
+
'''Bind this configuration to a service.
|
|
32786
|
+
|
|
32787
|
+
:param scope: The construct scope.
|
|
32788
|
+
|
|
32789
|
+
:return: The configuration to apply to the service
|
|
32790
|
+
'''
|
|
32791
|
+
...
|
|
32792
|
+
|
|
32793
|
+
|
|
32794
|
+
class _IAlternateTargetProxy:
|
|
32795
|
+
'''Interface for configuring alternate target groups for blue/green deployments.'''
|
|
32796
|
+
|
|
32797
|
+
__jsii_type__: typing.ClassVar[str] = "aws-cdk-lib.aws_ecs.IAlternateTarget"
|
|
32798
|
+
|
|
32799
|
+
@jsii.member(jsii_name="bind")
|
|
32800
|
+
def bind(self, scope: _constructs_77d1e7e8.IConstruct) -> AlternateTargetConfig:
|
|
32801
|
+
'''Bind this configuration to a service.
|
|
32802
|
+
|
|
32803
|
+
:param scope: The construct scope.
|
|
32804
|
+
|
|
32805
|
+
:return: The configuration to apply to the service
|
|
32806
|
+
'''
|
|
32807
|
+
if __debug__:
|
|
32808
|
+
type_hints = typing.get_type_hints(_typecheckingstub__1f10764be69e962209020c3a7e772567f1cbc3d3673cf209506562511ce9cd0a)
|
|
32809
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
32810
|
+
return typing.cast(AlternateTargetConfig, jsii.invoke(self, "bind", [scope]))
|
|
32811
|
+
|
|
32812
|
+
# Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
|
|
32813
|
+
typing.cast(typing.Any, IAlternateTarget).__jsii_proxy_class__ = lambda : _IAlternateTargetProxy
|
|
32814
|
+
|
|
32815
|
+
|
|
31831
32816
|
@jsii.interface(jsii_type="aws-cdk-lib.aws_ecs.ICluster")
|
|
31832
32817
|
class ICluster(_IResource_c80c4260, typing_extensions.Protocol):
|
|
31833
32818
|
'''A regional grouping of one or more container instances on which you can run tasks and services.'''
|
|
@@ -31956,6 +32941,45 @@ class _IClusterProxy(
|
|
|
31956
32941
|
typing.cast(typing.Any, ICluster).__jsii_proxy_class__ = lambda : _IClusterProxy
|
|
31957
32942
|
|
|
31958
32943
|
|
|
32944
|
+
@jsii.interface(jsii_type="aws-cdk-lib.aws_ecs.IDeploymentLifecycleHookTarget")
|
|
32945
|
+
class IDeploymentLifecycleHookTarget(typing_extensions.Protocol):
|
|
32946
|
+
'''Interface for deployment lifecycle hook targets.'''
|
|
32947
|
+
|
|
32948
|
+
@jsii.member(jsii_name="bind")
|
|
32949
|
+
def bind(
|
|
32950
|
+
self,
|
|
32951
|
+
scope: _constructs_77d1e7e8.IConstruct,
|
|
32952
|
+
) -> DeploymentLifecycleHookTargetConfig:
|
|
32953
|
+
'''Bind this target to a deployment lifecycle hook.
|
|
32954
|
+
|
|
32955
|
+
:param scope: The construct scope.
|
|
32956
|
+
'''
|
|
32957
|
+
...
|
|
32958
|
+
|
|
32959
|
+
|
|
32960
|
+
class _IDeploymentLifecycleHookTargetProxy:
|
|
32961
|
+
'''Interface for deployment lifecycle hook targets.'''
|
|
32962
|
+
|
|
32963
|
+
__jsii_type__: typing.ClassVar[str] = "aws-cdk-lib.aws_ecs.IDeploymentLifecycleHookTarget"
|
|
32964
|
+
|
|
32965
|
+
@jsii.member(jsii_name="bind")
|
|
32966
|
+
def bind(
|
|
32967
|
+
self,
|
|
32968
|
+
scope: _constructs_77d1e7e8.IConstruct,
|
|
32969
|
+
) -> DeploymentLifecycleHookTargetConfig:
|
|
32970
|
+
'''Bind this target to a deployment lifecycle hook.
|
|
32971
|
+
|
|
32972
|
+
:param scope: The construct scope.
|
|
32973
|
+
'''
|
|
32974
|
+
if __debug__:
|
|
32975
|
+
type_hints = typing.get_type_hints(_typecheckingstub__1cdcc51dc61399e62078243a225e42fd6901317236efebe039a9e3b36834d4b7)
|
|
32976
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
32977
|
+
return typing.cast(DeploymentLifecycleHookTargetConfig, jsii.invoke(self, "bind", [scope]))
|
|
32978
|
+
|
|
32979
|
+
# Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
|
|
32980
|
+
typing.cast(typing.Any, IDeploymentLifecycleHookTarget).__jsii_proxy_class__ = lambda : _IDeploymentLifecycleHookTargetProxy
|
|
32981
|
+
|
|
32982
|
+
|
|
31959
32983
|
@jsii.interface(jsii_type="aws-cdk-lib.aws_ecs.IEcsLoadBalancerTarget")
|
|
31960
32984
|
class IEcsLoadBalancerTarget(
|
|
31961
32985
|
_IApplicationLoadBalancerTarget_fabf9003,
|
|
@@ -33030,11 +34054,96 @@ class _ListenerConfigProxy(ListenerConfig):
|
|
|
33030
34054
|
typing.cast(typing.Any, ListenerConfig).__jsii_proxy_class__ = lambda : _ListenerConfigProxy
|
|
33031
34055
|
|
|
33032
34056
|
|
|
34057
|
+
class ListenerRuleConfiguration(
|
|
34058
|
+
metaclass=jsii.JSIIAbstractClass,
|
|
34059
|
+
jsii_type="aws-cdk-lib.aws_ecs.ListenerRuleConfiguration",
|
|
34060
|
+
):
|
|
34061
|
+
'''Represents a listener configuration for advanced load balancer settings.
|
|
34062
|
+
|
|
34063
|
+
:exampleMetadata: infused
|
|
34064
|
+
|
|
34065
|
+
Example::
|
|
34066
|
+
|
|
34067
|
+
import aws_cdk.aws_lambda as lambda_
|
|
34068
|
+
|
|
34069
|
+
# cluster: ecs.Cluster
|
|
34070
|
+
# task_definition: ecs.TaskDefinition
|
|
34071
|
+
# lambda_hook: lambda.Function
|
|
34072
|
+
# blue_target_group: elbv2.ApplicationTargetGroup
|
|
34073
|
+
# green_target_group: elbv2.ApplicationTargetGroup
|
|
34074
|
+
# prod_listener_rule: elbv2.ApplicationListenerRule
|
|
34075
|
+
|
|
34076
|
+
|
|
34077
|
+
service = ecs.FargateService(self, "Service",
|
|
34078
|
+
cluster=cluster,
|
|
34079
|
+
task_definition=task_definition,
|
|
34080
|
+
deployment_strategy=ecs.DeploymentStrategy.BLUE_GREEN
|
|
34081
|
+
)
|
|
34082
|
+
|
|
34083
|
+
service.add_lifecycle_hook(ecs.DeploymentLifecycleLambdaTarget(lambda_hook, "PreScaleHook",
|
|
34084
|
+
lifecycle_stages=[ecs.DeploymentLifecycleStage.PRE_SCALE_UP]
|
|
34085
|
+
))
|
|
34086
|
+
|
|
34087
|
+
target = service.load_balancer_target(
|
|
34088
|
+
container_name="nginx",
|
|
34089
|
+
container_port=80,
|
|
34090
|
+
protocol=ecs.Protocol.TCP,
|
|
34091
|
+
alternate_target=ecs.AlternateTarget("AlternateTarget",
|
|
34092
|
+
alternate_target_group=green_target_group,
|
|
34093
|
+
production_listener=ecs.ListenerRuleConfiguration.application_listener_rule(prod_listener_rule)
|
|
34094
|
+
)
|
|
34095
|
+
)
|
|
34096
|
+
|
|
34097
|
+
target.attach_to_application_target_group(blue_target_group)
|
|
34098
|
+
'''
|
|
34099
|
+
|
|
34100
|
+
def __init__(self) -> None:
|
|
34101
|
+
jsii.create(self.__class__, self, [])
|
|
34102
|
+
|
|
34103
|
+
@jsii.member(jsii_name="applicationListenerRule")
|
|
34104
|
+
@builtins.classmethod
|
|
34105
|
+
def application_listener_rule(
|
|
34106
|
+
cls,
|
|
34107
|
+
rule: _ApplicationListenerRule_f93ff606,
|
|
34108
|
+
) -> "ListenerRuleConfiguration":
|
|
34109
|
+
'''Use an Application Load Balancer listener rule.
|
|
34110
|
+
|
|
34111
|
+
:param rule: -
|
|
34112
|
+
'''
|
|
34113
|
+
if __debug__:
|
|
34114
|
+
type_hints = typing.get_type_hints(_typecheckingstub__e4bdbe1ec0e220912f9ff8b7769875a4eebd5168734b702329f9d4600ecdb318)
|
|
34115
|
+
check_type(argname="argument rule", value=rule, expected_type=type_hints["rule"])
|
|
34116
|
+
return typing.cast("ListenerRuleConfiguration", jsii.sinvoke(cls, "applicationListenerRule", [rule]))
|
|
34117
|
+
|
|
34118
|
+
@jsii.member(jsii_name="networkListener")
|
|
34119
|
+
@builtins.classmethod
|
|
34120
|
+
def network_listener(
|
|
34121
|
+
cls,
|
|
34122
|
+
listener: _NetworkListener_539c17bf,
|
|
34123
|
+
) -> "ListenerRuleConfiguration":
|
|
34124
|
+
'''Use a Network Load Balancer listener.
|
|
34125
|
+
|
|
34126
|
+
:param listener: -
|
|
34127
|
+
'''
|
|
34128
|
+
if __debug__:
|
|
34129
|
+
type_hints = typing.get_type_hints(_typecheckingstub__c964a7ba26c195318cd3937b823b36facecf4120aeb9196876feb206f6f9855a)
|
|
34130
|
+
check_type(argname="argument listener", value=listener, expected_type=type_hints["listener"])
|
|
34131
|
+
return typing.cast("ListenerRuleConfiguration", jsii.sinvoke(cls, "networkListener", [listener]))
|
|
34132
|
+
|
|
34133
|
+
|
|
34134
|
+
class _ListenerRuleConfigurationProxy(ListenerRuleConfiguration):
|
|
34135
|
+
pass
|
|
34136
|
+
|
|
34137
|
+
# Adding a "__jsii_proxy_class__(): typing.Type" function to the abstract class
|
|
34138
|
+
typing.cast(typing.Any, ListenerRuleConfiguration).__jsii_proxy_class__ = lambda : _ListenerRuleConfigurationProxy
|
|
34139
|
+
|
|
34140
|
+
|
|
33033
34141
|
@jsii.data_type(
|
|
33034
34142
|
jsii_type="aws-cdk-lib.aws_ecs.LoadBalancerTargetOptions",
|
|
33035
34143
|
jsii_struct_bases=[],
|
|
33036
34144
|
name_mapping={
|
|
33037
34145
|
"container_name": "containerName",
|
|
34146
|
+
"alternate_target": "alternateTarget",
|
|
33038
34147
|
"container_port": "containerPort",
|
|
33039
34148
|
"protocol": "protocol",
|
|
33040
34149
|
},
|
|
@@ -33044,6 +34153,7 @@ class LoadBalancerTargetOptions:
|
|
|
33044
34153
|
self,
|
|
33045
34154
|
*,
|
|
33046
34155
|
container_name: builtins.str,
|
|
34156
|
+
alternate_target: typing.Optional[IAlternateTarget] = None,
|
|
33047
34157
|
container_port: typing.Optional[jsii.Number] = None,
|
|
33048
34158
|
protocol: typing.Optional["Protocol"] = None,
|
|
33049
34159
|
) -> None:
|
|
@@ -33052,6 +34162,7 @@ class LoadBalancerTargetOptions:
|
|
|
33052
34162
|
The port mapping for it must already have been created through addPortMapping().
|
|
33053
34163
|
|
|
33054
34164
|
:param container_name: The name of the container.
|
|
34165
|
+
:param alternate_target: Alternate target configuration for blue/green deployments. Default: - No alternate target configuration
|
|
33055
34166
|
:param container_port: The port number of the container. Only applicable when using application/network load balancers. Default: - Container port of the first added port mapping.
|
|
33056
34167
|
:param protocol: The protocol used for the port mapping. Only applicable when using application load balancers. Default: Protocol.TCP
|
|
33057
34168
|
|
|
@@ -33075,11 +34186,14 @@ class LoadBalancerTargetOptions:
|
|
|
33075
34186
|
if __debug__:
|
|
33076
34187
|
type_hints = typing.get_type_hints(_typecheckingstub__5499166a691d3d9b788ba4a9808f921437da0987c4c4733332600e4e584bf30f)
|
|
33077
34188
|
check_type(argname="argument container_name", value=container_name, expected_type=type_hints["container_name"])
|
|
34189
|
+
check_type(argname="argument alternate_target", value=alternate_target, expected_type=type_hints["alternate_target"])
|
|
33078
34190
|
check_type(argname="argument container_port", value=container_port, expected_type=type_hints["container_port"])
|
|
33079
34191
|
check_type(argname="argument protocol", value=protocol, expected_type=type_hints["protocol"])
|
|
33080
34192
|
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
33081
34193
|
"container_name": container_name,
|
|
33082
34194
|
}
|
|
34195
|
+
if alternate_target is not None:
|
|
34196
|
+
self._values["alternate_target"] = alternate_target
|
|
33083
34197
|
if container_port is not None:
|
|
33084
34198
|
self._values["container_port"] = container_port
|
|
33085
34199
|
if protocol is not None:
|
|
@@ -33092,6 +34206,15 @@ class LoadBalancerTargetOptions:
|
|
|
33092
34206
|
assert result is not None, "Required property 'container_name' is missing"
|
|
33093
34207
|
return typing.cast(builtins.str, result)
|
|
33094
34208
|
|
|
34209
|
+
@builtins.property
|
|
34210
|
+
def alternate_target(self) -> typing.Optional[IAlternateTarget]:
|
|
34211
|
+
'''Alternate target configuration for blue/green deployments.
|
|
34212
|
+
|
|
34213
|
+
:default: - No alternate target configuration
|
|
34214
|
+
'''
|
|
34215
|
+
result = self._values.get("alternate_target")
|
|
34216
|
+
return typing.cast(typing.Optional[IAlternateTarget], result)
|
|
34217
|
+
|
|
33095
34218
|
@builtins.property
|
|
33096
34219
|
def container_port(self) -> typing.Optional[jsii.Number]:
|
|
33097
34220
|
'''The port number of the container.
|
|
@@ -34716,34 +35839,37 @@ class Protocol(enum.Enum):
|
|
|
34716
35839
|
|
|
34717
35840
|
Example::
|
|
34718
35841
|
|
|
34719
|
-
|
|
35842
|
+
import aws_cdk.aws_lambda as lambda_
|
|
35843
|
+
|
|
34720
35844
|
# cluster: ecs.Cluster
|
|
35845
|
+
# task_definition: ecs.TaskDefinition
|
|
35846
|
+
# lambda_hook: lambda.Function
|
|
35847
|
+
# blue_target_group: elbv2.ApplicationTargetGroup
|
|
35848
|
+
# green_target_group: elbv2.ApplicationTargetGroup
|
|
35849
|
+
# prod_listener_rule: elbv2.ApplicationListenerRule
|
|
34721
35850
|
|
|
34722
35851
|
|
|
34723
|
-
|
|
34724
|
-
|
|
34725
|
-
|
|
34726
|
-
|
|
35852
|
+
service = ecs.FargateService(self, "Service",
|
|
35853
|
+
cluster=cluster,
|
|
35854
|
+
task_definition=task_definition,
|
|
35855
|
+
deployment_strategy=ecs.DeploymentStrategy.BLUE_GREEN
|
|
34727
35856
|
)
|
|
34728
35857
|
|
|
34729
|
-
|
|
34730
|
-
|
|
34731
|
-
|
|
34732
|
-
protocol=ecs.Protocol.TCP
|
|
34733
|
-
)
|
|
35858
|
+
service.add_lifecycle_hook(ecs.DeploymentLifecycleLambdaTarget(lambda_hook, "PreScaleHook",
|
|
35859
|
+
lifecycle_stages=[ecs.DeploymentLifecycleStage.PRE_SCALE_UP]
|
|
35860
|
+
))
|
|
34734
35861
|
|
|
34735
|
-
|
|
34736
|
-
|
|
34737
|
-
|
|
34738
|
-
|
|
34739
|
-
|
|
34740
|
-
|
|
34741
|
-
|
|
34742
|
-
# Targets port TCP port 7600 `specificContainer`
|
|
34743
|
-
container=specific_container,
|
|
34744
|
-
container_port=7600
|
|
35862
|
+
target = service.load_balancer_target(
|
|
35863
|
+
container_name="nginx",
|
|
35864
|
+
container_port=80,
|
|
35865
|
+
protocol=ecs.Protocol.TCP,
|
|
35866
|
+
alternate_target=ecs.AlternateTarget("AlternateTarget",
|
|
35867
|
+
alternate_target_group=green_target_group,
|
|
35868
|
+
production_listener=ecs.ListenerRuleConfiguration.application_listener_rule(prod_listener_rule)
|
|
34745
35869
|
)
|
|
34746
35870
|
)
|
|
35871
|
+
|
|
35872
|
+
target.attach_to_application_target_group(blue_target_group)
|
|
34747
35873
|
'''
|
|
34748
35874
|
|
|
34749
35875
|
TCP = "TCP"
|
|
@@ -40004,6 +41130,90 @@ class WindowsOptimizedVersion(enum.Enum):
|
|
|
40004
41130
|
SERVER_2016 = "SERVER_2016"
|
|
40005
41131
|
|
|
40006
41132
|
|
|
41133
|
+
@jsii.implements(IAlternateTarget)
|
|
41134
|
+
class AlternateTarget(
|
|
41135
|
+
metaclass=jsii.JSIIMeta,
|
|
41136
|
+
jsii_type="aws-cdk-lib.aws_ecs.AlternateTarget",
|
|
41137
|
+
):
|
|
41138
|
+
'''Configuration for alternate target groups used in blue/green deployments with load balancers.
|
|
41139
|
+
|
|
41140
|
+
:exampleMetadata: infused
|
|
41141
|
+
|
|
41142
|
+
Example::
|
|
41143
|
+
|
|
41144
|
+
import aws_cdk.aws_lambda as lambda_
|
|
41145
|
+
|
|
41146
|
+
# cluster: ecs.Cluster
|
|
41147
|
+
# task_definition: ecs.TaskDefinition
|
|
41148
|
+
# lambda_hook: lambda.Function
|
|
41149
|
+
# blue_target_group: elbv2.ApplicationTargetGroup
|
|
41150
|
+
# green_target_group: elbv2.ApplicationTargetGroup
|
|
41151
|
+
# prod_listener_rule: elbv2.ApplicationListenerRule
|
|
41152
|
+
|
|
41153
|
+
|
|
41154
|
+
service = ecs.FargateService(self, "Service",
|
|
41155
|
+
cluster=cluster,
|
|
41156
|
+
task_definition=task_definition,
|
|
41157
|
+
deployment_strategy=ecs.DeploymentStrategy.BLUE_GREEN
|
|
41158
|
+
)
|
|
41159
|
+
|
|
41160
|
+
service.add_lifecycle_hook(ecs.DeploymentLifecycleLambdaTarget(lambda_hook, "PreScaleHook",
|
|
41161
|
+
lifecycle_stages=[ecs.DeploymentLifecycleStage.PRE_SCALE_UP]
|
|
41162
|
+
))
|
|
41163
|
+
|
|
41164
|
+
target = service.load_balancer_target(
|
|
41165
|
+
container_name="nginx",
|
|
41166
|
+
container_port=80,
|
|
41167
|
+
protocol=ecs.Protocol.TCP,
|
|
41168
|
+
alternate_target=ecs.AlternateTarget("AlternateTarget",
|
|
41169
|
+
alternate_target_group=green_target_group,
|
|
41170
|
+
production_listener=ecs.ListenerRuleConfiguration.application_listener_rule(prod_listener_rule)
|
|
41171
|
+
)
|
|
41172
|
+
)
|
|
41173
|
+
|
|
41174
|
+
target.attach_to_application_target_group(blue_target_group)
|
|
41175
|
+
'''
|
|
41176
|
+
|
|
41177
|
+
def __init__(
|
|
41178
|
+
self,
|
|
41179
|
+
id: builtins.str,
|
|
41180
|
+
*,
|
|
41181
|
+
alternate_target_group: _ITargetGroup_83c6f8c4,
|
|
41182
|
+
production_listener: ListenerRuleConfiguration,
|
|
41183
|
+
role: typing.Optional[_IRole_235f5d8e] = None,
|
|
41184
|
+
test_listener: typing.Optional[ListenerRuleConfiguration] = None,
|
|
41185
|
+
) -> None:
|
|
41186
|
+
'''
|
|
41187
|
+
:param id: -
|
|
41188
|
+
:param alternate_target_group: The alternate target group.
|
|
41189
|
+
:param production_listener: The production listener rule ARN (ALB) or listener ARN (NLB).
|
|
41190
|
+
:param role: The IAM role for the configuration. Default: - a new role will be created
|
|
41191
|
+
:param test_listener: The test listener configuration. Default: - none
|
|
41192
|
+
'''
|
|
41193
|
+
if __debug__:
|
|
41194
|
+
type_hints = typing.get_type_hints(_typecheckingstub__aa25b044df0e4eef1817fd07bd799a88800df4e6bd79f283ca2657cfee9e4b29)
|
|
41195
|
+
check_type(argname="argument id", value=id, expected_type=type_hints["id"])
|
|
41196
|
+
props = AlternateTargetProps(
|
|
41197
|
+
alternate_target_group=alternate_target_group,
|
|
41198
|
+
production_listener=production_listener,
|
|
41199
|
+
role=role,
|
|
41200
|
+
test_listener=test_listener,
|
|
41201
|
+
)
|
|
41202
|
+
|
|
41203
|
+
jsii.create(self.__class__, self, [id, props])
|
|
41204
|
+
|
|
41205
|
+
@jsii.member(jsii_name="bind")
|
|
41206
|
+
def bind(self, scope: _constructs_77d1e7e8.IConstruct) -> AlternateTargetConfig:
|
|
41207
|
+
'''Bind this configuration to a service.
|
|
41208
|
+
|
|
41209
|
+
:param scope: -
|
|
41210
|
+
'''
|
|
41211
|
+
if __debug__:
|
|
41212
|
+
type_hints = typing.get_type_hints(_typecheckingstub__147067753bcb82b7fc98e3b04dd99ea91c99dac8aec50a2f7076d3593aced862)
|
|
41213
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
41214
|
+
return typing.cast(AlternateTargetConfig, jsii.invoke(self, "bind", [scope]))
|
|
41215
|
+
|
|
41216
|
+
|
|
40007
41217
|
class AppMeshProxyConfiguration(
|
|
40008
41218
|
ProxyConfiguration,
|
|
40009
41219
|
metaclass=jsii.JSIIMeta,
|
|
@@ -40733,7 +41943,7 @@ class Cluster(
|
|
|
40733
41943
|
:param key_name: (deprecated) Name of SSH keypair to grant access to instances. ``launchTemplate`` and ``mixedInstancesPolicy`` must not be specified when this property is specified You can either specify ``keyPair`` or ``keyName``, not both. Default: - No SSH access will be possible.
|
|
40734
41944
|
:param key_pair: The SSH keypair to grant access to the instance. Feature flag ``AUTOSCALING_GENERATE_LAUNCH_TEMPLATE`` must be enabled to use this property. ``launchTemplate`` and ``mixedInstancesPolicy`` must not be specified when this property is specified. You can either specify ``keyPair`` or ``keyName``, not both. Default: - No SSH access will be possible.
|
|
40735
41945
|
:param max_capacity: Maximum number of instances in the fleet. Default: desiredCapacity
|
|
40736
|
-
:param max_instance_lifetime: The maximum amount of time that an instance can be in service. The maximum duration applies to all current and future instances in the group. As an instance approaches its maximum duration, it is terminated and replaced, and cannot be used again. You must specify a value of at least
|
|
41946
|
+
:param max_instance_lifetime: The maximum amount of time that an instance can be in service. The maximum duration applies to all current and future instances in the group. As an instance approaches its maximum duration, it is terminated and replaced, and cannot be used again. You must specify a value of at least 86,400 seconds (one day). To clear a previously set value, leave this property undefined. Default: none
|
|
40737
41947
|
:param min_capacity: Minimum number of instances in the fleet. Default: 1
|
|
40738
41948
|
:param new_instances_protected_from_scale_in: Whether newly-launched instances are protected from termination by Amazon EC2 Auto Scaling when scaling in. By default, Auto Scaling can terminate an instance at any time after launch when scaling in an Auto Scaling Group, subject to the group's termination policy. However, you may wish to protect newly-launched instances from being scaled in if they are going to run critical applications that should not be prematurely terminated. This flag must be enabled if the Auto Scaling Group will be associated with an ECS Capacity Provider with managed termination protection. Default: false
|
|
40739
41949
|
:param notifications: Configure autoscaling group to send notifications about fleet changes to an SNS topic(s). Default: - No fleet change notifications will be sent.
|
|
@@ -41281,6 +42491,95 @@ class DeploymentAlarmConfig(DeploymentAlarmOptions):
|
|
|
41281
42491
|
)
|
|
41282
42492
|
|
|
41283
42493
|
|
|
42494
|
+
@jsii.implements(IDeploymentLifecycleHookTarget)
|
|
42495
|
+
class DeploymentLifecycleLambdaTarget(
|
|
42496
|
+
metaclass=jsii.JSIIMeta,
|
|
42497
|
+
jsii_type="aws-cdk-lib.aws_ecs.DeploymentLifecycleLambdaTarget",
|
|
42498
|
+
):
|
|
42499
|
+
'''Use an AWS Lambda function as a deployment lifecycle hook target.
|
|
42500
|
+
|
|
42501
|
+
:exampleMetadata: infused
|
|
42502
|
+
|
|
42503
|
+
Example::
|
|
42504
|
+
|
|
42505
|
+
import aws_cdk.aws_lambda as lambda_
|
|
42506
|
+
|
|
42507
|
+
# cluster: ecs.Cluster
|
|
42508
|
+
# task_definition: ecs.TaskDefinition
|
|
42509
|
+
# lambda_hook: lambda.Function
|
|
42510
|
+
# blue_target_group: elbv2.ApplicationTargetGroup
|
|
42511
|
+
# green_target_group: elbv2.ApplicationTargetGroup
|
|
42512
|
+
# prod_listener_rule: elbv2.ApplicationListenerRule
|
|
42513
|
+
|
|
42514
|
+
|
|
42515
|
+
service = ecs.FargateService(self, "Service",
|
|
42516
|
+
cluster=cluster,
|
|
42517
|
+
task_definition=task_definition,
|
|
42518
|
+
deployment_strategy=ecs.DeploymentStrategy.BLUE_GREEN
|
|
42519
|
+
)
|
|
42520
|
+
|
|
42521
|
+
service.add_lifecycle_hook(ecs.DeploymentLifecycleLambdaTarget(lambda_hook, "PreScaleHook",
|
|
42522
|
+
lifecycle_stages=[ecs.DeploymentLifecycleStage.PRE_SCALE_UP]
|
|
42523
|
+
))
|
|
42524
|
+
|
|
42525
|
+
target = service.load_balancer_target(
|
|
42526
|
+
container_name="nginx",
|
|
42527
|
+
container_port=80,
|
|
42528
|
+
protocol=ecs.Protocol.TCP,
|
|
42529
|
+
alternate_target=ecs.AlternateTarget("AlternateTarget",
|
|
42530
|
+
alternate_target_group=green_target_group,
|
|
42531
|
+
production_listener=ecs.ListenerRuleConfiguration.application_listener_rule(prod_listener_rule)
|
|
42532
|
+
)
|
|
42533
|
+
)
|
|
42534
|
+
|
|
42535
|
+
target.attach_to_application_target_group(blue_target_group)
|
|
42536
|
+
'''
|
|
42537
|
+
|
|
42538
|
+
def __init__(
|
|
42539
|
+
self,
|
|
42540
|
+
handler: _IFunction_6adb0ab8,
|
|
42541
|
+
id: builtins.str,
|
|
42542
|
+
*,
|
|
42543
|
+
lifecycle_stages: typing.Sequence[DeploymentLifecycleStage],
|
|
42544
|
+
role: typing.Optional[_IRole_235f5d8e] = None,
|
|
42545
|
+
) -> None:
|
|
42546
|
+
'''
|
|
42547
|
+
:param handler: -
|
|
42548
|
+
:param id: -
|
|
42549
|
+
:param lifecycle_stages: The lifecycle stages when this hook should be executed.
|
|
42550
|
+
:param role: The IAM role that grants permissions to invoke the lambda target. Default: - A unique role will be generated for this lambda function.
|
|
42551
|
+
'''
|
|
42552
|
+
if __debug__:
|
|
42553
|
+
type_hints = typing.get_type_hints(_typecheckingstub__bddcf05621152ce6e8fd520b5a7bb98f63b4f5805beda123da1f9f542d66294e)
|
|
42554
|
+
check_type(argname="argument handler", value=handler, expected_type=type_hints["handler"])
|
|
42555
|
+
check_type(argname="argument id", value=id, expected_type=type_hints["id"])
|
|
42556
|
+
props = DeploymentLifecycleLambdaTargetProps(
|
|
42557
|
+
lifecycle_stages=lifecycle_stages, role=role
|
|
42558
|
+
)
|
|
42559
|
+
|
|
42560
|
+
jsii.create(self.__class__, self, [handler, id, props])
|
|
42561
|
+
|
|
42562
|
+
@jsii.member(jsii_name="bind")
|
|
42563
|
+
def bind(
|
|
42564
|
+
self,
|
|
42565
|
+
scope: _constructs_77d1e7e8.IConstruct,
|
|
42566
|
+
) -> DeploymentLifecycleHookTargetConfig:
|
|
42567
|
+
'''Bind this target to a deployment lifecycle hook.
|
|
42568
|
+
|
|
42569
|
+
:param scope: -
|
|
42570
|
+
'''
|
|
42571
|
+
if __debug__:
|
|
42572
|
+
type_hints = typing.get_type_hints(_typecheckingstub__c6510372e5e0e0b1114c294538138af0f03ebd70441a76bddd8496eca40f2fe8)
|
|
42573
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
42574
|
+
return typing.cast(DeploymentLifecycleHookTargetConfig, jsii.invoke(self, "bind", [scope]))
|
|
42575
|
+
|
|
42576
|
+
@builtins.property
|
|
42577
|
+
@jsii.member(jsii_name="role")
|
|
42578
|
+
def role(self) -> _IRole_235f5d8e:
|
|
42579
|
+
'''The IAM role for the deployment lifecycle hook target.'''
|
|
42580
|
+
return typing.cast(_IRole_235f5d8e, jsii.get(self, "role"))
|
|
42581
|
+
|
|
42582
|
+
|
|
41284
42583
|
class FireLensLogDriver(
|
|
41285
42584
|
LogDriver,
|
|
41286
42585
|
metaclass=jsii.JSIIMeta,
|
|
@@ -41966,6 +43265,17 @@ class BaseService(
|
|
|
41966
43265
|
check_type(argname="argument service_arn", value=service_arn, expected_type=type_hints["service_arn"])
|
|
41967
43266
|
return typing.cast(IBaseService, jsii.sinvoke(cls, "fromServiceArnWithCluster", [scope, id, service_arn]))
|
|
41968
43267
|
|
|
43268
|
+
@jsii.member(jsii_name="addLifecycleHook")
|
|
43269
|
+
def add_lifecycle_hook(self, target: IDeploymentLifecycleHookTarget) -> None:
|
|
43270
|
+
'''Add a deployment lifecycle hook target.
|
|
43271
|
+
|
|
43272
|
+
:param target: The lifecycle hook target to add.
|
|
43273
|
+
'''
|
|
43274
|
+
if __debug__:
|
|
43275
|
+
type_hints = typing.get_type_hints(_typecheckingstub__480743d611a768bf60af18dc6a08c65385351ccd86b4290955b74d1541662389)
|
|
43276
|
+
check_type(argname="argument target", value=target, expected_type=type_hints["target"])
|
|
43277
|
+
return typing.cast(None, jsii.invoke(self, "addLifecycleHook", [target]))
|
|
43278
|
+
|
|
41969
43279
|
@jsii.member(jsii_name="addVolume")
|
|
41970
43280
|
def add_volume(self, volume: ServiceManagedVolume) -> None:
|
|
41971
43281
|
'''Adds a volume to the Service.
|
|
@@ -42173,11 +43483,20 @@ class BaseService(
|
|
|
42173
43483
|
|
|
42174
43484
|
return typing.cast(None, jsii.invoke(self, "enableServiceConnect", [config]))
|
|
42175
43485
|
|
|
43486
|
+
@jsii.member(jsii_name="isUsingECSDeploymentController")
|
|
43487
|
+
def is_using_ecs_deployment_controller(self) -> builtins.bool:
|
|
43488
|
+
'''Checks if the service is using the ECS deployment controller.
|
|
43489
|
+
|
|
43490
|
+
:return: true if the service is using the ECS deployment controller or if no deployment controller is specified (defaults to ECS)
|
|
43491
|
+
'''
|
|
43492
|
+
return typing.cast(builtins.bool, jsii.invoke(self, "isUsingECSDeploymentController", []))
|
|
43493
|
+
|
|
42176
43494
|
@jsii.member(jsii_name="loadBalancerTarget")
|
|
42177
43495
|
def load_balancer_target(
|
|
42178
43496
|
self,
|
|
42179
43497
|
*,
|
|
42180
43498
|
container_name: builtins.str,
|
|
43499
|
+
alternate_target: typing.Optional[IAlternateTarget] = None,
|
|
42181
43500
|
container_port: typing.Optional[jsii.Number] = None,
|
|
42182
43501
|
protocol: typing.Optional[Protocol] = None,
|
|
42183
43502
|
) -> IEcsLoadBalancerTarget:
|
|
@@ -42191,6 +43510,7 @@ class BaseService(
|
|
|
42191
43510
|
target, instead of the ``Service`` object itself.
|
|
42192
43511
|
|
|
42193
43512
|
:param container_name: The name of the container.
|
|
43513
|
+
:param alternate_target: Alternate target configuration for blue/green deployments. Default: - No alternate target configuration
|
|
42194
43514
|
:param container_port: The port number of the container. Only applicable when using application/network load balancers. Default: - Container port of the first added port mapping.
|
|
42195
43515
|
:param protocol: The protocol used for the port mapping. Only applicable when using application load balancers. Default: Protocol.TCP
|
|
42196
43516
|
|
|
@@ -42209,6 +43529,7 @@ class BaseService(
|
|
|
42209
43529
|
'''
|
|
42210
43530
|
options = LoadBalancerTargetOptions(
|
|
42211
43531
|
container_name=container_name,
|
|
43532
|
+
alternate_target=alternate_target,
|
|
42212
43533
|
container_port=container_port,
|
|
42213
43534
|
protocol=protocol,
|
|
42214
43535
|
)
|
|
@@ -42586,15 +43907,18 @@ class Ec2Service(
|
|
|
42586
43907
|
security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
|
|
42587
43908
|
vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
42588
43909
|
cluster: ICluster,
|
|
43910
|
+
bake_time: typing.Optional[_Duration_4839e8c3] = None,
|
|
42589
43911
|
capacity_provider_strategies: typing.Optional[typing.Sequence[typing.Union[CapacityProviderStrategy, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
42590
43912
|
circuit_breaker: typing.Optional[typing.Union[DeploymentCircuitBreaker, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
42591
43913
|
cloud_map_options: typing.Optional[typing.Union[CloudMapOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
42592
43914
|
deployment_alarms: typing.Optional[typing.Union[DeploymentAlarmConfig, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
42593
43915
|
deployment_controller: typing.Optional[typing.Union[DeploymentController, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
43916
|
+
deployment_strategy: typing.Optional[DeploymentStrategy] = None,
|
|
42594
43917
|
desired_count: typing.Optional[jsii.Number] = None,
|
|
42595
43918
|
enable_ecs_managed_tags: typing.Optional[builtins.bool] = None,
|
|
42596
43919
|
enable_execute_command: typing.Optional[builtins.bool] = None,
|
|
42597
43920
|
health_check_grace_period: typing.Optional[_Duration_4839e8c3] = None,
|
|
43921
|
+
lifecycle_hooks: typing.Optional[typing.Sequence[IDeploymentLifecycleHookTarget]] = None,
|
|
42598
43922
|
max_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
42599
43923
|
min_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
42600
43924
|
propagate_tags: typing.Optional[PropagatedTagSource] = None,
|
|
@@ -42609,22 +43933,25 @@ class Ec2Service(
|
|
|
42609
43933
|
:param id: -
|
|
42610
43934
|
:param task_definition: The task definition to use for tasks in the service. [disable-awslint:ref-via-interface]
|
|
42611
43935
|
:param assign_public_ip: Specifies whether the task's elastic network interface receives a public IP address. If true, each task will receive a public IP address. This property is only used for tasks that use the awsvpc network mode. Default: false
|
|
42612
|
-
:param availability_zone_rebalancing: Whether to use Availability Zone rebalancing for the service. If enabled: ``maxHealthyPercent`` must be greater than 100; ``daemon`` must be false; if there are any ``placementStrategies``, the first must be "spread across Availability Zones"; there must be no ``placementConstraints`` using ``attribute:ecs.availability-zone``, and the service must not be a target of a Classic Load Balancer. Default: AvailabilityZoneRebalancing.
|
|
43936
|
+
:param availability_zone_rebalancing: Whether to use Availability Zone rebalancing for the service. If enabled: ``maxHealthyPercent`` must be greater than 100; ``daemon`` must be false; if there are any ``placementStrategies``, the first must be "spread across Availability Zones"; there must be no ``placementConstraints`` using ``attribute:ecs.availability-zone``, and the service must not be a target of a Classic Load Balancer. Default: AvailabilityZoneRebalancing.ENABLED
|
|
42613
43937
|
:param daemon: Specifies whether the service will use the daemon scheduling strategy. If true, the service scheduler deploys exactly one task on each container instance in your cluster. When you are using this strategy, do not specify a desired number of tasks or any task placement strategies. Default: false
|
|
42614
43938
|
:param placement_constraints: The placement constraints to use for tasks in the service. For more information, see `Amazon ECS Task Placement Constraints <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html>`_. Default: - No constraints.
|
|
42615
43939
|
:param placement_strategies: The placement strategies to use for tasks in the service. For more information, see `Amazon ECS Task Placement Strategies <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html>`_. Default: - No strategies.
|
|
42616
43940
|
:param security_groups: The security groups to associate with the service. If you do not specify a security group, a new security group is created. This property is only used for tasks that use the awsvpc network mode. Default: - A new security group is created.
|
|
42617
43941
|
:param vpc_subnets: The subnets to associate with the service. This property is only used for tasks that use the awsvpc network mode. Default: - Public subnets if ``assignPublicIp`` is set, otherwise the first available one of Private, Isolated, Public, in that order.
|
|
42618
43942
|
:param cluster: The name of the cluster that hosts the service.
|
|
43943
|
+
:param bake_time: bake time minutes for service. Default: - none
|
|
42619
43944
|
:param capacity_provider_strategies: A list of Capacity Provider strategies used to place a service. Default: - undefined
|
|
42620
43945
|
:param circuit_breaker: Whether to enable the deployment circuit breaker. If this property is defined, circuit breaker will be implicitly enabled. Default: - disabled
|
|
42621
43946
|
:param cloud_map_options: The options for configuring an Amazon ECS service to use service discovery. Default: - AWS Cloud Map service discovery is not enabled.
|
|
42622
43947
|
:param deployment_alarms: The alarm(s) to monitor during deployment, and behavior to apply if at least one enters a state of alarm during the deployment or bake time. Default: - No alarms will be monitored during deployment.
|
|
42623
43948
|
:param deployment_controller: Specifies which deployment controller to use for the service. For more information, see `Amazon ECS Deployment Types <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html>`_ Default: - Rolling update (ECS)
|
|
43949
|
+
:param deployment_strategy: The deployment strategy to use for the service. Default: ROLLING
|
|
42624
43950
|
:param desired_count: The desired number of instantiations of the task definition to keep running on the service. Default: - When creating the service, default is 1; when updating the service, default uses the current task number.
|
|
42625
43951
|
:param enable_ecs_managed_tags: Specifies whether to enable 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>`_ Default: false
|
|
42626
43952
|
:param enable_execute_command: Whether to enable the ability to execute into a container. Default: - undefined
|
|
42627
43953
|
:param health_check_grace_period: The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started. Default: - defaults to 60 seconds if at least one load balancer is in-use and it is not already set
|
|
43954
|
+
:param lifecycle_hooks: The lifecycle hooks to execute during deployment stages. Default: - none;
|
|
42628
43955
|
:param max_healthy_percent: The maximum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that can run in a service during a deployment. Default: - 100 if daemon, otherwise 200
|
|
42629
43956
|
:param min_healthy_percent: The minimum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that must continue to run and remain healthy during a deployment. Default: - 0 if daemon, otherwise 50
|
|
42630
43957
|
:param propagate_tags: Specifies whether to propagate the tags from the task definition or the service to the tasks in the service. Valid values are: PropagatedTagSource.SERVICE, PropagatedTagSource.TASK_DEFINITION or PropagatedTagSource.NONE Default: PropagatedTagSource.NONE
|
|
@@ -42647,15 +43974,18 @@ class Ec2Service(
|
|
|
42647
43974
|
security_groups=security_groups,
|
|
42648
43975
|
vpc_subnets=vpc_subnets,
|
|
42649
43976
|
cluster=cluster,
|
|
43977
|
+
bake_time=bake_time,
|
|
42650
43978
|
capacity_provider_strategies=capacity_provider_strategies,
|
|
42651
43979
|
circuit_breaker=circuit_breaker,
|
|
42652
43980
|
cloud_map_options=cloud_map_options,
|
|
42653
43981
|
deployment_alarms=deployment_alarms,
|
|
42654
43982
|
deployment_controller=deployment_controller,
|
|
43983
|
+
deployment_strategy=deployment_strategy,
|
|
42655
43984
|
desired_count=desired_count,
|
|
42656
43985
|
enable_ecs_managed_tags=enable_ecs_managed_tags,
|
|
42657
43986
|
enable_execute_command=enable_execute_command,
|
|
42658
43987
|
health_check_grace_period=health_check_grace_period,
|
|
43988
|
+
lifecycle_hooks=lifecycle_hooks,
|
|
42659
43989
|
max_healthy_percent=max_healthy_percent,
|
|
42660
43990
|
min_healthy_percent=min_healthy_percent,
|
|
42661
43991
|
propagate_tags=propagate_tags,
|
|
@@ -43084,15 +44414,18 @@ class ExternalService(
|
|
|
43084
44414
|
daemon: typing.Optional[builtins.bool] = None,
|
|
43085
44415
|
security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
|
|
43086
44416
|
cluster: ICluster,
|
|
44417
|
+
bake_time: typing.Optional[_Duration_4839e8c3] = None,
|
|
43087
44418
|
capacity_provider_strategies: typing.Optional[typing.Sequence[typing.Union[CapacityProviderStrategy, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
43088
44419
|
circuit_breaker: typing.Optional[typing.Union[DeploymentCircuitBreaker, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
43089
44420
|
cloud_map_options: typing.Optional[typing.Union[CloudMapOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
43090
44421
|
deployment_alarms: typing.Optional[typing.Union[DeploymentAlarmConfig, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
43091
44422
|
deployment_controller: typing.Optional[typing.Union[DeploymentController, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
44423
|
+
deployment_strategy: typing.Optional[DeploymentStrategy] = None,
|
|
43092
44424
|
desired_count: typing.Optional[jsii.Number] = None,
|
|
43093
44425
|
enable_ecs_managed_tags: typing.Optional[builtins.bool] = None,
|
|
43094
44426
|
enable_execute_command: typing.Optional[builtins.bool] = None,
|
|
43095
44427
|
health_check_grace_period: typing.Optional[_Duration_4839e8c3] = None,
|
|
44428
|
+
lifecycle_hooks: typing.Optional[typing.Sequence[IDeploymentLifecycleHookTarget]] = None,
|
|
43096
44429
|
max_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
43097
44430
|
min_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
43098
44431
|
propagate_tags: typing.Optional[PropagatedTagSource] = None,
|
|
@@ -43109,15 +44442,18 @@ class ExternalService(
|
|
|
43109
44442
|
:param daemon: By default, service use REPLICA scheduling strategy, this parameter enable DAEMON scheduling strategy. If true, the service scheduler deploys exactly one task on each container instance in your cluster. When you are using this strategy, do not specify a desired number of tasks or any task placement strategies. Tasks using the Fargate launch type or the CODE_DEPLOY or EXTERNAL deployment controller types don't support the DAEMON scheduling strategy. Default: false
|
|
43110
44443
|
:param security_groups: The security groups to associate with the service. If you do not specify a security group, a new security group is created. Default: - A new security group is created.
|
|
43111
44444
|
:param cluster: The name of the cluster that hosts the service.
|
|
44445
|
+
:param bake_time: bake time minutes for service. Default: - none
|
|
43112
44446
|
:param capacity_provider_strategies: A list of Capacity Provider strategies used to place a service. Default: - undefined
|
|
43113
44447
|
:param circuit_breaker: Whether to enable the deployment circuit breaker. If this property is defined, circuit breaker will be implicitly enabled. Default: - disabled
|
|
43114
44448
|
:param cloud_map_options: The options for configuring an Amazon ECS service to use service discovery. Default: - AWS Cloud Map service discovery is not enabled.
|
|
43115
44449
|
:param deployment_alarms: The alarm(s) to monitor during deployment, and behavior to apply if at least one enters a state of alarm during the deployment or bake time. Default: - No alarms will be monitored during deployment.
|
|
43116
44450
|
:param deployment_controller: Specifies which deployment controller to use for the service. For more information, see `Amazon ECS Deployment Types <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html>`_ Default: - Rolling update (ECS)
|
|
44451
|
+
:param deployment_strategy: The deployment strategy to use for the service. Default: ROLLING
|
|
43117
44452
|
:param desired_count: The desired number of instantiations of the task definition to keep running on the service. Default: - When creating the service, default is 1; when updating the service, default uses the current task number.
|
|
43118
44453
|
:param enable_ecs_managed_tags: Specifies whether to enable 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>`_ Default: false
|
|
43119
44454
|
:param enable_execute_command: Whether to enable the ability to execute into a container. Default: - undefined
|
|
43120
44455
|
:param health_check_grace_period: The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started. Default: - defaults to 60 seconds if at least one load balancer is in-use and it is not already set
|
|
44456
|
+
:param lifecycle_hooks: The lifecycle hooks to execute during deployment stages. Default: - none;
|
|
43121
44457
|
:param max_healthy_percent: The maximum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that can run in a service during a deployment. Default: - 100 if daemon, otherwise 200
|
|
43122
44458
|
:param min_healthy_percent: The minimum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that must continue to run and remain healthy during a deployment. Default: - 0 if daemon, otherwise 50
|
|
43123
44459
|
:param propagate_tags: Specifies whether to propagate the tags from the task definition or the service to the tasks in the service. Valid values are: PropagatedTagSource.SERVICE, PropagatedTagSource.TASK_DEFINITION or PropagatedTagSource.NONE Default: PropagatedTagSource.NONE
|
|
@@ -43135,15 +44471,18 @@ class ExternalService(
|
|
|
43135
44471
|
daemon=daemon,
|
|
43136
44472
|
security_groups=security_groups,
|
|
43137
44473
|
cluster=cluster,
|
|
44474
|
+
bake_time=bake_time,
|
|
43138
44475
|
capacity_provider_strategies=capacity_provider_strategies,
|
|
43139
44476
|
circuit_breaker=circuit_breaker,
|
|
43140
44477
|
cloud_map_options=cloud_map_options,
|
|
43141
44478
|
deployment_alarms=deployment_alarms,
|
|
43142
44479
|
deployment_controller=deployment_controller,
|
|
44480
|
+
deployment_strategy=deployment_strategy,
|
|
43143
44481
|
desired_count=desired_count,
|
|
43144
44482
|
enable_ecs_managed_tags=enable_ecs_managed_tags,
|
|
43145
44483
|
enable_execute_command=enable_execute_command,
|
|
43146
44484
|
health_check_grace_period=health_check_grace_period,
|
|
44485
|
+
lifecycle_hooks=lifecycle_hooks,
|
|
43147
44486
|
max_healthy_percent=max_healthy_percent,
|
|
43148
44487
|
min_healthy_percent=min_healthy_percent,
|
|
43149
44488
|
propagate_tags=propagate_tags,
|
|
@@ -43319,17 +44658,20 @@ class ExternalService(
|
|
|
43319
44658
|
self,
|
|
43320
44659
|
*,
|
|
43321
44660
|
container_name: builtins.str,
|
|
44661
|
+
alternate_target: typing.Optional[IAlternateTarget] = None,
|
|
43322
44662
|
container_port: typing.Optional[jsii.Number] = None,
|
|
43323
44663
|
protocol: typing.Optional[Protocol] = None,
|
|
43324
44664
|
) -> IEcsLoadBalancerTarget:
|
|
43325
44665
|
'''Overridden method to throw error as ``loadBalancerTarget`` is not supported for external service.
|
|
43326
44666
|
|
|
43327
44667
|
:param container_name: The name of the container.
|
|
44668
|
+
:param alternate_target: Alternate target configuration for blue/green deployments. Default: - No alternate target configuration
|
|
43328
44669
|
:param container_port: The port number of the container. Only applicable when using application/network load balancers. Default: - Container port of the first added port mapping.
|
|
43329
44670
|
:param protocol: The protocol used for the port mapping. Only applicable when using application load balancers. Default: Protocol.TCP
|
|
43330
44671
|
'''
|
|
43331
44672
|
_options = LoadBalancerTargetOptions(
|
|
43332
44673
|
container_name=container_name,
|
|
44674
|
+
alternate_target=alternate_target,
|
|
43333
44675
|
container_port=container_port,
|
|
43334
44676
|
protocol=protocol,
|
|
43335
44677
|
)
|
|
@@ -43514,28 +44856,34 @@ class FargateService(
|
|
|
43514
44856
|
|
|
43515
44857
|
# cluster: ecs.Cluster
|
|
43516
44858
|
# task_definition: ecs.TaskDefinition
|
|
43517
|
-
# elb_alarm: cw.Alarm
|
|
43518
|
-
|
|
43519
44859
|
|
|
44860
|
+
service_name = "MyFargateService"
|
|
43520
44861
|
service = ecs.FargateService(self, "Service",
|
|
44862
|
+
service_name=service_name,
|
|
43521
44863
|
cluster=cluster,
|
|
43522
44864
|
task_definition=task_definition,
|
|
43523
|
-
min_healthy_percent=100
|
|
43524
|
-
deployment_alarms=ecs.DeploymentAlarmConfig(
|
|
43525
|
-
alarm_names=[elb_alarm.alarm_name],
|
|
43526
|
-
behavior=ecs.AlarmBehavior.ROLLBACK_ON_ALARM
|
|
43527
|
-
)
|
|
44865
|
+
min_healthy_percent=100
|
|
43528
44866
|
)
|
|
43529
44867
|
|
|
43530
|
-
|
|
43531
|
-
|
|
43532
|
-
|
|
43533
|
-
|
|
43534
|
-
|
|
44868
|
+
cpu_metric = cw.Metric(
|
|
44869
|
+
metric_name="CPUUtilization",
|
|
44870
|
+
namespace="AWS/ECS",
|
|
44871
|
+
period=Duration.minutes(5),
|
|
44872
|
+
statistic="Average",
|
|
44873
|
+
dimensions_map={
|
|
44874
|
+
"ClusterName": cluster.cluster_name,
|
|
44875
|
+
# Using `service.serviceName` here will cause a circular dependency
|
|
44876
|
+
"ServiceName": service_name
|
|
44877
|
+
}
|
|
44878
|
+
)
|
|
44879
|
+
my_alarm = cw.Alarm(self, "CPUAlarm",
|
|
44880
|
+
alarm_name="cpuAlarmName",
|
|
44881
|
+
metric=cpu_metric,
|
|
43535
44882
|
evaluation_periods=2,
|
|
43536
44883
|
threshold=80
|
|
43537
44884
|
)
|
|
43538
|
-
|
|
44885
|
+
|
|
44886
|
+
service.enable_deployment_alarms([my_alarm.alarm_name],
|
|
43539
44887
|
behavior=ecs.AlarmBehavior.FAIL_ON_ALARM
|
|
43540
44888
|
)
|
|
43541
44889
|
'''
|
|
@@ -43552,15 +44900,18 @@ class FargateService(
|
|
|
43552
44900
|
security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
|
|
43553
44901
|
vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
43554
44902
|
cluster: ICluster,
|
|
44903
|
+
bake_time: typing.Optional[_Duration_4839e8c3] = None,
|
|
43555
44904
|
capacity_provider_strategies: typing.Optional[typing.Sequence[typing.Union[CapacityProviderStrategy, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
43556
44905
|
circuit_breaker: typing.Optional[typing.Union[DeploymentCircuitBreaker, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
43557
44906
|
cloud_map_options: typing.Optional[typing.Union[CloudMapOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
43558
44907
|
deployment_alarms: typing.Optional[typing.Union[DeploymentAlarmConfig, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
43559
44908
|
deployment_controller: typing.Optional[typing.Union[DeploymentController, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
44909
|
+
deployment_strategy: typing.Optional[DeploymentStrategy] = None,
|
|
43560
44910
|
desired_count: typing.Optional[jsii.Number] = None,
|
|
43561
44911
|
enable_ecs_managed_tags: typing.Optional[builtins.bool] = None,
|
|
43562
44912
|
enable_execute_command: typing.Optional[builtins.bool] = None,
|
|
43563
44913
|
health_check_grace_period: typing.Optional[_Duration_4839e8c3] = None,
|
|
44914
|
+
lifecycle_hooks: typing.Optional[typing.Sequence[IDeploymentLifecycleHookTarget]] = None,
|
|
43564
44915
|
max_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
43565
44916
|
min_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
43566
44917
|
propagate_tags: typing.Optional[PropagatedTagSource] = None,
|
|
@@ -43575,20 +44926,23 @@ class FargateService(
|
|
|
43575
44926
|
:param id: -
|
|
43576
44927
|
:param task_definition: The task definition to use for tasks in the service. [disable-awslint:ref-via-interface]
|
|
43577
44928
|
:param assign_public_ip: Specifies whether the task's elastic network interface receives a public IP address. If true, each task will receive a public IP address. Default: false
|
|
43578
|
-
:param availability_zone_rebalancing: Whether to use Availability Zone rebalancing for the service. If enabled, ``maxHealthyPercent`` must be greater than 100, and the service must not be a target of a Classic Load Balancer. Default: AvailabilityZoneRebalancing.
|
|
44929
|
+
:param availability_zone_rebalancing: Whether to use Availability Zone rebalancing for the service. If enabled, ``maxHealthyPercent`` must be greater than 100, and the service must not be a target of a Classic Load Balancer. Default: AvailabilityZoneRebalancing.ENABLED
|
|
43579
44930
|
:param platform_version: The platform version on which to run your service. If one is not specified, the LATEST platform version is used by default. For more information, see `AWS Fargate Platform Versions <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html>`_ in the Amazon Elastic Container Service Developer Guide. Default: Latest
|
|
43580
44931
|
:param security_groups: The security groups to associate with the service. If you do not specify a security group, a new security group is created. Default: - A new security group is created.
|
|
43581
44932
|
:param vpc_subnets: The subnets to associate with the service. Default: - Public subnets if ``assignPublicIp`` is set, otherwise the first available one of Private, Isolated, Public, in that order.
|
|
43582
44933
|
:param cluster: The name of the cluster that hosts the service.
|
|
44934
|
+
:param bake_time: bake time minutes for service. Default: - none
|
|
43583
44935
|
:param capacity_provider_strategies: A list of Capacity Provider strategies used to place a service. Default: - undefined
|
|
43584
44936
|
:param circuit_breaker: Whether to enable the deployment circuit breaker. If this property is defined, circuit breaker will be implicitly enabled. Default: - disabled
|
|
43585
44937
|
:param cloud_map_options: The options for configuring an Amazon ECS service to use service discovery. Default: - AWS Cloud Map service discovery is not enabled.
|
|
43586
44938
|
:param deployment_alarms: The alarm(s) to monitor during deployment, and behavior to apply if at least one enters a state of alarm during the deployment or bake time. Default: - No alarms will be monitored during deployment.
|
|
43587
44939
|
:param deployment_controller: Specifies which deployment controller to use for the service. For more information, see `Amazon ECS Deployment Types <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html>`_ Default: - Rolling update (ECS)
|
|
44940
|
+
:param deployment_strategy: The deployment strategy to use for the service. Default: ROLLING
|
|
43588
44941
|
:param desired_count: The desired number of instantiations of the task definition to keep running on the service. Default: - When creating the service, default is 1; when updating the service, default uses the current task number.
|
|
43589
44942
|
:param enable_ecs_managed_tags: Specifies whether to enable 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>`_ Default: false
|
|
43590
44943
|
:param enable_execute_command: Whether to enable the ability to execute into a container. Default: - undefined
|
|
43591
44944
|
:param health_check_grace_period: The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started. Default: - defaults to 60 seconds if at least one load balancer is in-use and it is not already set
|
|
44945
|
+
:param lifecycle_hooks: The lifecycle hooks to execute during deployment stages. Default: - none;
|
|
43592
44946
|
:param max_healthy_percent: The maximum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that can run in a service during a deployment. Default: - 100 if daemon, otherwise 200
|
|
43593
44947
|
:param min_healthy_percent: The minimum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that must continue to run and remain healthy during a deployment. Default: - 0 if daemon, otherwise 50
|
|
43594
44948
|
:param propagate_tags: Specifies whether to propagate the tags from the task definition or the service to the tasks in the service. Valid values are: PropagatedTagSource.SERVICE, PropagatedTagSource.TASK_DEFINITION or PropagatedTagSource.NONE Default: PropagatedTagSource.NONE
|
|
@@ -43609,15 +44963,18 @@ class FargateService(
|
|
|
43609
44963
|
security_groups=security_groups,
|
|
43610
44964
|
vpc_subnets=vpc_subnets,
|
|
43611
44965
|
cluster=cluster,
|
|
44966
|
+
bake_time=bake_time,
|
|
43612
44967
|
capacity_provider_strategies=capacity_provider_strategies,
|
|
43613
44968
|
circuit_breaker=circuit_breaker,
|
|
43614
44969
|
cloud_map_options=cloud_map_options,
|
|
43615
44970
|
deployment_alarms=deployment_alarms,
|
|
43616
44971
|
deployment_controller=deployment_controller,
|
|
44972
|
+
deployment_strategy=deployment_strategy,
|
|
43617
44973
|
desired_count=desired_count,
|
|
43618
44974
|
enable_ecs_managed_tags=enable_ecs_managed_tags,
|
|
43619
44975
|
enable_execute_command=enable_execute_command,
|
|
43620
44976
|
health_check_grace_period=health_check_grace_period,
|
|
44977
|
+
lifecycle_hooks=lifecycle_hooks,
|
|
43621
44978
|
max_healthy_percent=max_healthy_percent,
|
|
43622
44979
|
min_healthy_percent=min_healthy_percent,
|
|
43623
44980
|
propagate_tags=propagate_tags,
|
|
@@ -43889,6 +45246,10 @@ __all__ = [
|
|
|
43889
45246
|
"AddAutoScalingGroupCapacityOptions",
|
|
43890
45247
|
"AddCapacityOptions",
|
|
43891
45248
|
"AlarmBehavior",
|
|
45249
|
+
"AlternateTarget",
|
|
45250
|
+
"AlternateTargetConfig",
|
|
45251
|
+
"AlternateTargetOptions",
|
|
45252
|
+
"AlternateTargetProps",
|
|
43892
45253
|
"AmiHardwareType",
|
|
43893
45254
|
"AppMeshProxyConfiguration",
|
|
43894
45255
|
"AppMeshProxyConfigurationConfigProps",
|
|
@@ -43957,6 +45318,11 @@ __all__ = [
|
|
|
43957
45318
|
"DeploymentCircuitBreaker",
|
|
43958
45319
|
"DeploymentController",
|
|
43959
45320
|
"DeploymentControllerType",
|
|
45321
|
+
"DeploymentLifecycleHookTargetConfig",
|
|
45322
|
+
"DeploymentLifecycleLambdaTarget",
|
|
45323
|
+
"DeploymentLifecycleLambdaTargetProps",
|
|
45324
|
+
"DeploymentLifecycleStage",
|
|
45325
|
+
"DeploymentStrategy",
|
|
43960
45326
|
"Device",
|
|
43961
45327
|
"DevicePermission",
|
|
43962
45328
|
"DockerVolumeConfiguration",
|
|
@@ -44013,8 +45379,10 @@ __all__ = [
|
|
|
44013
45379
|
"GenericLogDriverProps",
|
|
44014
45380
|
"HealthCheck",
|
|
44015
45381
|
"Host",
|
|
45382
|
+
"IAlternateTarget",
|
|
44016
45383
|
"IBaseService",
|
|
44017
45384
|
"ICluster",
|
|
45385
|
+
"IDeploymentLifecycleHookTarget",
|
|
44018
45386
|
"IEc2Service",
|
|
44019
45387
|
"IEc2TaskDefinition",
|
|
44020
45388
|
"IEcsLoadBalancerTarget",
|
|
@@ -44035,6 +45403,7 @@ __all__ = [
|
|
|
44035
45403
|
"LinuxParameters",
|
|
44036
45404
|
"LinuxParametersProps",
|
|
44037
45405
|
"ListenerConfig",
|
|
45406
|
+
"ListenerRuleConfiguration",
|
|
44038
45407
|
"LoadBalancerTargetOptions",
|
|
44039
45408
|
"LogDriver",
|
|
44040
45409
|
"LogDriverConfig",
|
|
@@ -44146,6 +45515,34 @@ def _typecheckingstub__64f2d9b3495e3be78346f77d5ad90928968c8ce230e670b6279dc67ad
|
|
|
44146
45515
|
"""Type checking stubs"""
|
|
44147
45516
|
pass
|
|
44148
45517
|
|
|
45518
|
+
def _typecheckingstub__792a358f64361d957b07e1ed7f1116dd993837c77bffc674ebb1385615159cd7(
|
|
45519
|
+
*,
|
|
45520
|
+
alternate_target_group_arn: builtins.str,
|
|
45521
|
+
role_arn: builtins.str,
|
|
45522
|
+
production_listener_rule: typing.Optional[builtins.str] = None,
|
|
45523
|
+
test_listener_rule: typing.Optional[builtins.str] = None,
|
|
45524
|
+
) -> None:
|
|
45525
|
+
"""Type checking stubs"""
|
|
45526
|
+
pass
|
|
45527
|
+
|
|
45528
|
+
def _typecheckingstub__419cc917bedbbd0a41ca044bcc54720f5a35bdc4f2dca6e11ae40da3ed05758d(
|
|
45529
|
+
*,
|
|
45530
|
+
role: typing.Optional[_IRole_235f5d8e] = None,
|
|
45531
|
+
test_listener: typing.Optional[ListenerRuleConfiguration] = None,
|
|
45532
|
+
) -> None:
|
|
45533
|
+
"""Type checking stubs"""
|
|
45534
|
+
pass
|
|
45535
|
+
|
|
45536
|
+
def _typecheckingstub__308a285b9e7be7ba49d4d78caf88537a973f5504d7b7519fb1fe4ab1c987b690(
|
|
45537
|
+
*,
|
|
45538
|
+
role: typing.Optional[_IRole_235f5d8e] = None,
|
|
45539
|
+
test_listener: typing.Optional[ListenerRuleConfiguration] = None,
|
|
45540
|
+
alternate_target_group: _ITargetGroup_83c6f8c4,
|
|
45541
|
+
production_listener: ListenerRuleConfiguration,
|
|
45542
|
+
) -> None:
|
|
45543
|
+
"""Type checking stubs"""
|
|
45544
|
+
pass
|
|
45545
|
+
|
|
44149
45546
|
def _typecheckingstub__0405fe235aadd4430faf2b963e8de52a23bd867724c74f1f76995c5f208aa3e6(
|
|
44150
45547
|
*,
|
|
44151
45548
|
container_name: builtins.str,
|
|
@@ -44306,15 +45703,18 @@ def _typecheckingstub__47c51bc38319f21956164fb0fbe2257a72cb1269d763f8a2bf334788b
|
|
|
44306
45703
|
def _typecheckingstub__c2e0ba28c74987301a54b0d197b791a6a94084b5f40d15304ffabf113b3f7daa(
|
|
44307
45704
|
*,
|
|
44308
45705
|
cluster: ICluster,
|
|
45706
|
+
bake_time: typing.Optional[_Duration_4839e8c3] = None,
|
|
44309
45707
|
capacity_provider_strategies: typing.Optional[typing.Sequence[typing.Union[CapacityProviderStrategy, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
44310
45708
|
circuit_breaker: typing.Optional[typing.Union[DeploymentCircuitBreaker, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
44311
45709
|
cloud_map_options: typing.Optional[typing.Union[CloudMapOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
44312
45710
|
deployment_alarms: typing.Optional[typing.Union[DeploymentAlarmConfig, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
44313
45711
|
deployment_controller: typing.Optional[typing.Union[DeploymentController, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
45712
|
+
deployment_strategy: typing.Optional[DeploymentStrategy] = None,
|
|
44314
45713
|
desired_count: typing.Optional[jsii.Number] = None,
|
|
44315
45714
|
enable_ecs_managed_tags: typing.Optional[builtins.bool] = None,
|
|
44316
45715
|
enable_execute_command: typing.Optional[builtins.bool] = None,
|
|
44317
45716
|
health_check_grace_period: typing.Optional[_Duration_4839e8c3] = None,
|
|
45717
|
+
lifecycle_hooks: typing.Optional[typing.Sequence[IDeploymentLifecycleHookTarget]] = None,
|
|
44318
45718
|
max_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
44319
45719
|
min_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
44320
45720
|
propagate_tags: typing.Optional[PropagatedTagSource] = None,
|
|
@@ -44329,15 +45729,18 @@ def _typecheckingstub__c2e0ba28c74987301a54b0d197b791a6a94084b5f40d15304ffabf113
|
|
|
44329
45729
|
def _typecheckingstub__3ecfd95265b873c2042a9d5cb8465a48f9e325e2271c18461e2b266333563d84(
|
|
44330
45730
|
*,
|
|
44331
45731
|
cluster: ICluster,
|
|
45732
|
+
bake_time: typing.Optional[_Duration_4839e8c3] = None,
|
|
44332
45733
|
capacity_provider_strategies: typing.Optional[typing.Sequence[typing.Union[CapacityProviderStrategy, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
44333
45734
|
circuit_breaker: typing.Optional[typing.Union[DeploymentCircuitBreaker, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
44334
45735
|
cloud_map_options: typing.Optional[typing.Union[CloudMapOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
44335
45736
|
deployment_alarms: typing.Optional[typing.Union[DeploymentAlarmConfig, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
44336
45737
|
deployment_controller: typing.Optional[typing.Union[DeploymentController, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
45738
|
+
deployment_strategy: typing.Optional[DeploymentStrategy] = None,
|
|
44337
45739
|
desired_count: typing.Optional[jsii.Number] = None,
|
|
44338
45740
|
enable_ecs_managed_tags: typing.Optional[builtins.bool] = None,
|
|
44339
45741
|
enable_execute_command: typing.Optional[builtins.bool] = None,
|
|
44340
45742
|
health_check_grace_period: typing.Optional[_Duration_4839e8c3] = None,
|
|
45743
|
+
lifecycle_hooks: typing.Optional[typing.Sequence[IDeploymentLifecycleHookTarget]] = None,
|
|
44341
45744
|
max_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
44342
45745
|
min_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
44343
45746
|
propagate_tags: typing.Optional[PropagatedTagSource] = None,
|
|
@@ -46311,6 +47714,23 @@ def _typecheckingstub__919598d1dc3ec32befe4a81bbf3a26a387685443884de6cb597180866
|
|
|
46311
47714
|
"""Type checking stubs"""
|
|
46312
47715
|
pass
|
|
46313
47716
|
|
|
47717
|
+
def _typecheckingstub__58b105a4a38be4fd4e5d81c3d78a7d0fc4d3120086f0f1235d58be7e964bf172(
|
|
47718
|
+
*,
|
|
47719
|
+
lifecycle_stages: typing.Sequence[DeploymentLifecycleStage],
|
|
47720
|
+
target_arn: builtins.str,
|
|
47721
|
+
role: typing.Optional[_IRole_235f5d8e] = None,
|
|
47722
|
+
) -> None:
|
|
47723
|
+
"""Type checking stubs"""
|
|
47724
|
+
pass
|
|
47725
|
+
|
|
47726
|
+
def _typecheckingstub__e812b4c257c9817fdc66c09cfbc9ed6c2dae75feb52fdb91c33339837dbb883c(
|
|
47727
|
+
*,
|
|
47728
|
+
lifecycle_stages: typing.Sequence[DeploymentLifecycleStage],
|
|
47729
|
+
role: typing.Optional[_IRole_235f5d8e] = None,
|
|
47730
|
+
) -> None:
|
|
47731
|
+
"""Type checking stubs"""
|
|
47732
|
+
pass
|
|
47733
|
+
|
|
46314
47734
|
def _typecheckingstub__9cd1dbc2946a0873c593d44d008c4c102f3994a3cd94676ec1816b39d1b46931(
|
|
46315
47735
|
*,
|
|
46316
47736
|
host_path: builtins.str,
|
|
@@ -46389,15 +47809,18 @@ def _typecheckingstub__ec9bd820dae60c0be34ffc5a5dd28bccc87947dc35dff1502ce12b80a
|
|
|
46389
47809
|
def _typecheckingstub__95634258086aa3448fbdfd9896017a2cbeb858f382deb61186bb9e22b1ccd366(
|
|
46390
47810
|
*,
|
|
46391
47811
|
cluster: ICluster,
|
|
47812
|
+
bake_time: typing.Optional[_Duration_4839e8c3] = None,
|
|
46392
47813
|
capacity_provider_strategies: typing.Optional[typing.Sequence[typing.Union[CapacityProviderStrategy, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
46393
47814
|
circuit_breaker: typing.Optional[typing.Union[DeploymentCircuitBreaker, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
46394
47815
|
cloud_map_options: typing.Optional[typing.Union[CloudMapOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
46395
47816
|
deployment_alarms: typing.Optional[typing.Union[DeploymentAlarmConfig, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
46396
47817
|
deployment_controller: typing.Optional[typing.Union[DeploymentController, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
47818
|
+
deployment_strategy: typing.Optional[DeploymentStrategy] = None,
|
|
46397
47819
|
desired_count: typing.Optional[jsii.Number] = None,
|
|
46398
47820
|
enable_ecs_managed_tags: typing.Optional[builtins.bool] = None,
|
|
46399
47821
|
enable_execute_command: typing.Optional[builtins.bool] = None,
|
|
46400
47822
|
health_check_grace_period: typing.Optional[_Duration_4839e8c3] = None,
|
|
47823
|
+
lifecycle_hooks: typing.Optional[typing.Sequence[IDeploymentLifecycleHookTarget]] = None,
|
|
46401
47824
|
max_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
46402
47825
|
min_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
46403
47826
|
propagate_tags: typing.Optional[PropagatedTagSource] = None,
|
|
@@ -46592,15 +48015,18 @@ def _typecheckingstub__bb8d7316afb3715109dfb05d3b7460700437fb0490a0e47180a1c5ef5
|
|
|
46592
48015
|
def _typecheckingstub__3cc413964caae89bfcfbcabff8356ffe5c054f46824be99731a77b64ec052a8a(
|
|
46593
48016
|
*,
|
|
46594
48017
|
cluster: ICluster,
|
|
48018
|
+
bake_time: typing.Optional[_Duration_4839e8c3] = None,
|
|
46595
48019
|
capacity_provider_strategies: typing.Optional[typing.Sequence[typing.Union[CapacityProviderStrategy, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
46596
48020
|
circuit_breaker: typing.Optional[typing.Union[DeploymentCircuitBreaker, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
46597
48021
|
cloud_map_options: typing.Optional[typing.Union[CloudMapOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
46598
48022
|
deployment_alarms: typing.Optional[typing.Union[DeploymentAlarmConfig, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
46599
48023
|
deployment_controller: typing.Optional[typing.Union[DeploymentController, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
48024
|
+
deployment_strategy: typing.Optional[DeploymentStrategy] = None,
|
|
46600
48025
|
desired_count: typing.Optional[jsii.Number] = None,
|
|
46601
48026
|
enable_ecs_managed_tags: typing.Optional[builtins.bool] = None,
|
|
46602
48027
|
enable_execute_command: typing.Optional[builtins.bool] = None,
|
|
46603
48028
|
health_check_grace_period: typing.Optional[_Duration_4839e8c3] = None,
|
|
48029
|
+
lifecycle_hooks: typing.Optional[typing.Sequence[IDeploymentLifecycleHookTarget]] = None,
|
|
46604
48030
|
max_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
46605
48031
|
min_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
46606
48032
|
propagate_tags: typing.Optional[PropagatedTagSource] = None,
|
|
@@ -46650,15 +48076,18 @@ def _typecheckingstub__85c0463354cc6d5a3da5daace0570a015f941bfeb87bb282346c1e2be
|
|
|
46650
48076
|
def _typecheckingstub__8290283f61f3e2d289b7e7f81cad1a5d1e9ed9dbc07ccce2b57604682a42ded7(
|
|
46651
48077
|
*,
|
|
46652
48078
|
cluster: ICluster,
|
|
48079
|
+
bake_time: typing.Optional[_Duration_4839e8c3] = None,
|
|
46653
48080
|
capacity_provider_strategies: typing.Optional[typing.Sequence[typing.Union[CapacityProviderStrategy, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
46654
48081
|
circuit_breaker: typing.Optional[typing.Union[DeploymentCircuitBreaker, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
46655
48082
|
cloud_map_options: typing.Optional[typing.Union[CloudMapOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
46656
48083
|
deployment_alarms: typing.Optional[typing.Union[DeploymentAlarmConfig, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
46657
48084
|
deployment_controller: typing.Optional[typing.Union[DeploymentController, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
48085
|
+
deployment_strategy: typing.Optional[DeploymentStrategy] = None,
|
|
46658
48086
|
desired_count: typing.Optional[jsii.Number] = None,
|
|
46659
48087
|
enable_ecs_managed_tags: typing.Optional[builtins.bool] = None,
|
|
46660
48088
|
enable_execute_command: typing.Optional[builtins.bool] = None,
|
|
46661
48089
|
health_check_grace_period: typing.Optional[_Duration_4839e8c3] = None,
|
|
48090
|
+
lifecycle_hooks: typing.Optional[typing.Sequence[IDeploymentLifecycleHookTarget]] = None,
|
|
46662
48091
|
max_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
46663
48092
|
min_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
46664
48093
|
propagate_tags: typing.Optional[PropagatedTagSource] = None,
|
|
@@ -46939,6 +48368,18 @@ def _typecheckingstub__0275aca574e1acd41af17b3acaa1528dd0890542d27aeee65489bbd55
|
|
|
46939
48368
|
"""Type checking stubs"""
|
|
46940
48369
|
pass
|
|
46941
48370
|
|
|
48371
|
+
def _typecheckingstub__1f10764be69e962209020c3a7e772567f1cbc3d3673cf209506562511ce9cd0a(
|
|
48372
|
+
scope: _constructs_77d1e7e8.IConstruct,
|
|
48373
|
+
) -> None:
|
|
48374
|
+
"""Type checking stubs"""
|
|
48375
|
+
pass
|
|
48376
|
+
|
|
48377
|
+
def _typecheckingstub__1cdcc51dc61399e62078243a225e42fd6901317236efebe039a9e3b36834d4b7(
|
|
48378
|
+
scope: _constructs_77d1e7e8.IConstruct,
|
|
48379
|
+
) -> None:
|
|
48380
|
+
"""Type checking stubs"""
|
|
48381
|
+
pass
|
|
48382
|
+
|
|
46942
48383
|
def _typecheckingstub__11773db60f5e0800c7efe817fcc41dcf7af2f8e010e72471c80e23766e96c5ab(
|
|
46943
48384
|
task_definition: TaskDefinition,
|
|
46944
48385
|
) -> None:
|
|
@@ -47066,9 +48507,22 @@ def _typecheckingstub__ef0bdf65f82e85f94b1db5a37b900ed9f46429089cbcb4c8d29b283f3
|
|
|
47066
48507
|
"""Type checking stubs"""
|
|
47067
48508
|
pass
|
|
47068
48509
|
|
|
48510
|
+
def _typecheckingstub__e4bdbe1ec0e220912f9ff8b7769875a4eebd5168734b702329f9d4600ecdb318(
|
|
48511
|
+
rule: _ApplicationListenerRule_f93ff606,
|
|
48512
|
+
) -> None:
|
|
48513
|
+
"""Type checking stubs"""
|
|
48514
|
+
pass
|
|
48515
|
+
|
|
48516
|
+
def _typecheckingstub__c964a7ba26c195318cd3937b823b36facecf4120aeb9196876feb206f6f9855a(
|
|
48517
|
+
listener: _NetworkListener_539c17bf,
|
|
48518
|
+
) -> None:
|
|
48519
|
+
"""Type checking stubs"""
|
|
48520
|
+
pass
|
|
48521
|
+
|
|
47069
48522
|
def _typecheckingstub__5499166a691d3d9b788ba4a9808f921437da0987c4c4733332600e4e584bf30f(
|
|
47070
48523
|
*,
|
|
47071
48524
|
container_name: builtins.str,
|
|
48525
|
+
alternate_target: typing.Optional[IAlternateTarget] = None,
|
|
47072
48526
|
container_port: typing.Optional[jsii.Number] = None,
|
|
47073
48527
|
protocol: typing.Optional[Protocol] = None,
|
|
47074
48528
|
) -> None:
|
|
@@ -47816,6 +49270,23 @@ def _typecheckingstub__8874c61d65168e60874c9191682af53d5d88352dbfe615fd842f45b2b
|
|
|
47816
49270
|
"""Type checking stubs"""
|
|
47817
49271
|
pass
|
|
47818
49272
|
|
|
49273
|
+
def _typecheckingstub__aa25b044df0e4eef1817fd07bd799a88800df4e6bd79f283ca2657cfee9e4b29(
|
|
49274
|
+
id: builtins.str,
|
|
49275
|
+
*,
|
|
49276
|
+
alternate_target_group: _ITargetGroup_83c6f8c4,
|
|
49277
|
+
production_listener: ListenerRuleConfiguration,
|
|
49278
|
+
role: typing.Optional[_IRole_235f5d8e] = None,
|
|
49279
|
+
test_listener: typing.Optional[ListenerRuleConfiguration] = None,
|
|
49280
|
+
) -> None:
|
|
49281
|
+
"""Type checking stubs"""
|
|
49282
|
+
pass
|
|
49283
|
+
|
|
49284
|
+
def _typecheckingstub__147067753bcb82b7fc98e3b04dd99ea91c99dac8aec50a2f7076d3593aced862(
|
|
49285
|
+
scope: _constructs_77d1e7e8.IConstruct,
|
|
49286
|
+
) -> None:
|
|
49287
|
+
"""Type checking stubs"""
|
|
49288
|
+
pass
|
|
49289
|
+
|
|
47819
49290
|
def _typecheckingstub__6aeeebc397e1073be671305f45ff0de1478d4d043824a139c5e52661f7868baf(
|
|
47820
49291
|
_scope: _constructs_77d1e7e8.Construct,
|
|
47821
49292
|
_task_definition: TaskDefinition,
|
|
@@ -48035,6 +49506,22 @@ def _typecheckingstub__3407e1eace0b05ee1ef50b2d7263c1462cbbc2df7bfe6d22826f0f94f
|
|
|
48035
49506
|
"""Type checking stubs"""
|
|
48036
49507
|
pass
|
|
48037
49508
|
|
|
49509
|
+
def _typecheckingstub__bddcf05621152ce6e8fd520b5a7bb98f63b4f5805beda123da1f9f542d66294e(
|
|
49510
|
+
handler: _IFunction_6adb0ab8,
|
|
49511
|
+
id: builtins.str,
|
|
49512
|
+
*,
|
|
49513
|
+
lifecycle_stages: typing.Sequence[DeploymentLifecycleStage],
|
|
49514
|
+
role: typing.Optional[_IRole_235f5d8e] = None,
|
|
49515
|
+
) -> None:
|
|
49516
|
+
"""Type checking stubs"""
|
|
49517
|
+
pass
|
|
49518
|
+
|
|
49519
|
+
def _typecheckingstub__c6510372e5e0e0b1114c294538138af0f03ebd70441a76bddd8496eca40f2fe8(
|
|
49520
|
+
scope: _constructs_77d1e7e8.IConstruct,
|
|
49521
|
+
) -> None:
|
|
49522
|
+
"""Type checking stubs"""
|
|
49523
|
+
pass
|
|
49524
|
+
|
|
48038
49525
|
def _typecheckingstub__0f3b91860780f56b42f6ab26d1855c0db28e15ef0dc9bcb868556324ed95a96b(
|
|
48039
49526
|
_scope: _constructs_77d1e7e8.Construct,
|
|
48040
49527
|
_container_definition: ContainerDefinition,
|
|
@@ -48095,6 +49582,12 @@ def _typecheckingstub__3cd0743b65b66534a274ff34e46f82cd780216193c08611a3b4e166e2
|
|
|
48095
49582
|
"""Type checking stubs"""
|
|
48096
49583
|
pass
|
|
48097
49584
|
|
|
49585
|
+
def _typecheckingstub__480743d611a768bf60af18dc6a08c65385351ccd86b4290955b74d1541662389(
|
|
49586
|
+
target: IDeploymentLifecycleHookTarget,
|
|
49587
|
+
) -> None:
|
|
49588
|
+
"""Type checking stubs"""
|
|
49589
|
+
pass
|
|
49590
|
+
|
|
48098
49591
|
def _typecheckingstub__e086e1f25717ea297fd9f530033e3685af15b9de3deb30fa9b228c05f8b0bcdc(
|
|
48099
49592
|
volume: ServiceManagedVolume,
|
|
48100
49593
|
) -> None:
|
|
@@ -48204,15 +49697,18 @@ def _typecheckingstub__1e578461670bd6cdf856f914534e1feff8905e31d33cd7aea2b9f5151
|
|
|
48204
49697
|
security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
|
|
48205
49698
|
vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
48206
49699
|
cluster: ICluster,
|
|
49700
|
+
bake_time: typing.Optional[_Duration_4839e8c3] = None,
|
|
48207
49701
|
capacity_provider_strategies: typing.Optional[typing.Sequence[typing.Union[CapacityProviderStrategy, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
48208
49702
|
circuit_breaker: typing.Optional[typing.Union[DeploymentCircuitBreaker, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
48209
49703
|
cloud_map_options: typing.Optional[typing.Union[CloudMapOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
48210
49704
|
deployment_alarms: typing.Optional[typing.Union[DeploymentAlarmConfig, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
48211
49705
|
deployment_controller: typing.Optional[typing.Union[DeploymentController, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
49706
|
+
deployment_strategy: typing.Optional[DeploymentStrategy] = None,
|
|
48212
49707
|
desired_count: typing.Optional[jsii.Number] = None,
|
|
48213
49708
|
enable_ecs_managed_tags: typing.Optional[builtins.bool] = None,
|
|
48214
49709
|
enable_execute_command: typing.Optional[builtins.bool] = None,
|
|
48215
49710
|
health_check_grace_period: typing.Optional[_Duration_4839e8c3] = None,
|
|
49711
|
+
lifecycle_hooks: typing.Optional[typing.Sequence[IDeploymentLifecycleHookTarget]] = None,
|
|
48216
49712
|
max_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
48217
49713
|
min_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
48218
49714
|
propagate_tags: typing.Optional[PropagatedTagSource] = None,
|
|
@@ -48354,15 +49850,18 @@ def _typecheckingstub__6ceef4de126cbb6bd6f379ba0b53be2fb61c35761f50685b5d228c682
|
|
|
48354
49850
|
daemon: typing.Optional[builtins.bool] = None,
|
|
48355
49851
|
security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
|
|
48356
49852
|
cluster: ICluster,
|
|
49853
|
+
bake_time: typing.Optional[_Duration_4839e8c3] = None,
|
|
48357
49854
|
capacity_provider_strategies: typing.Optional[typing.Sequence[typing.Union[CapacityProviderStrategy, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
48358
49855
|
circuit_breaker: typing.Optional[typing.Union[DeploymentCircuitBreaker, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
48359
49856
|
cloud_map_options: typing.Optional[typing.Union[CloudMapOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
48360
49857
|
deployment_alarms: typing.Optional[typing.Union[DeploymentAlarmConfig, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
48361
49858
|
deployment_controller: typing.Optional[typing.Union[DeploymentController, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
49859
|
+
deployment_strategy: typing.Optional[DeploymentStrategy] = None,
|
|
48362
49860
|
desired_count: typing.Optional[jsii.Number] = None,
|
|
48363
49861
|
enable_ecs_managed_tags: typing.Optional[builtins.bool] = None,
|
|
48364
49862
|
enable_execute_command: typing.Optional[builtins.bool] = None,
|
|
48365
49863
|
health_check_grace_period: typing.Optional[_Duration_4839e8c3] = None,
|
|
49864
|
+
lifecycle_hooks: typing.Optional[typing.Sequence[IDeploymentLifecycleHookTarget]] = None,
|
|
48366
49865
|
max_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
48367
49866
|
min_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
48368
49867
|
propagate_tags: typing.Optional[PropagatedTagSource] = None,
|
|
@@ -48460,15 +49959,18 @@ def _typecheckingstub__0ddac6b19472d00f74c1777e699ce5b239dc49e62ff4ab4674c917bbe
|
|
|
48460
49959
|
security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
|
|
48461
49960
|
vpc_subnets: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
48462
49961
|
cluster: ICluster,
|
|
49962
|
+
bake_time: typing.Optional[_Duration_4839e8c3] = None,
|
|
48463
49963
|
capacity_provider_strategies: typing.Optional[typing.Sequence[typing.Union[CapacityProviderStrategy, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
48464
49964
|
circuit_breaker: typing.Optional[typing.Union[DeploymentCircuitBreaker, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
48465
49965
|
cloud_map_options: typing.Optional[typing.Union[CloudMapOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
48466
49966
|
deployment_alarms: typing.Optional[typing.Union[DeploymentAlarmConfig, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
48467
49967
|
deployment_controller: typing.Optional[typing.Union[DeploymentController, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
49968
|
+
deployment_strategy: typing.Optional[DeploymentStrategy] = None,
|
|
48468
49969
|
desired_count: typing.Optional[jsii.Number] = None,
|
|
48469
49970
|
enable_ecs_managed_tags: typing.Optional[builtins.bool] = None,
|
|
48470
49971
|
enable_execute_command: typing.Optional[builtins.bool] = None,
|
|
48471
49972
|
health_check_grace_period: typing.Optional[_Duration_4839e8c3] = None,
|
|
49973
|
+
lifecycle_hooks: typing.Optional[typing.Sequence[IDeploymentLifecycleHookTarget]] = None,
|
|
48472
49974
|
max_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
48473
49975
|
min_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
48474
49976
|
propagate_tags: typing.Optional[PropagatedTagSource] = None,
|