Documentation ¶
Index ¶
- func AutoScalingGroup_IsConstruct(x interface{}) *bool
- func AutoScalingGroup_IsResource(construct constructs.IConstruct) *bool
- func CfnAutoScalingGroup_CFN_RESOURCE_TYPE_NAME() *string
- func CfnAutoScalingGroup_IsCfnElement(x interface{}) *bool
- func CfnAutoScalingGroup_IsCfnResource(construct constructs.IConstruct) *bool
- func CfnAutoScalingGroup_IsConstruct(x interface{}) *bool
- func CfnLaunchConfiguration_CFN_RESOURCE_TYPE_NAME() *string
- func CfnLaunchConfiguration_IsCfnElement(x interface{}) *bool
- func CfnLaunchConfiguration_IsCfnResource(construct constructs.IConstruct) *bool
- func CfnLaunchConfiguration_IsConstruct(x interface{}) *bool
- func CfnLifecycleHook_CFN_RESOURCE_TYPE_NAME() *string
- func CfnLifecycleHook_IsCfnElement(x interface{}) *bool
- func CfnLifecycleHook_IsCfnResource(construct constructs.IConstruct) *bool
- func CfnLifecycleHook_IsConstruct(x interface{}) *bool
- func CfnScalingPolicy_CFN_RESOURCE_TYPE_NAME() *string
- func CfnScalingPolicy_IsCfnElement(x interface{}) *bool
- func CfnScalingPolicy_IsCfnResource(construct constructs.IConstruct) *bool
- func CfnScalingPolicy_IsConstruct(x interface{}) *bool
- func CfnScheduledAction_CFN_RESOURCE_TYPE_NAME() *string
- func CfnScheduledAction_IsCfnElement(x interface{}) *bool
- func CfnScheduledAction_IsCfnResource(construct constructs.IConstruct) *bool
- func CfnScheduledAction_IsConstruct(x interface{}) *bool
- func CfnWarmPool_CFN_RESOURCE_TYPE_NAME() *string
- func CfnWarmPool_IsCfnElement(x interface{}) *bool
- func CfnWarmPool_IsCfnResource(construct constructs.IConstruct) *bool
- func CfnWarmPool_IsConstruct(x interface{}) *bool
- func LifecycleHook_IsConstruct(x interface{}) *bool
- func LifecycleHook_IsResource(construct constructs.IConstruct) *bool
- func NewAutoScalingGroup_Override(a AutoScalingGroup, scope constructs.Construct, id *string, ...)
- func NewBlockDeviceVolume_Override(b BlockDeviceVolume, ebsDevice *EbsDeviceProps, virtualName *string)
- func NewCfnAutoScalingGroup_Override(c CfnAutoScalingGroup, scope constructs.Construct, id *string, ...)
- func NewCfnLaunchConfiguration_Override(c CfnLaunchConfiguration, scope constructs.Construct, id *string, ...)
- func NewCfnLifecycleHook_Override(c CfnLifecycleHook, scope constructs.Construct, id *string, ...)
- func NewCfnScalingPolicy_Override(c CfnScalingPolicy, scope constructs.Construct, id *string, ...)
- func NewCfnScheduledAction_Override(c CfnScheduledAction, scope constructs.Construct, id *string, ...)
- func NewCfnWarmPool_Override(c CfnWarmPool, scope constructs.Construct, id *string, props *CfnWarmPoolProps)
- func NewGroupMetric_Override(g GroupMetric, name *string)
- func NewGroupMetrics_Override(g GroupMetrics, metrics ...GroupMetric)
- func NewLifecycleHook_Override(l LifecycleHook, scope constructs.Construct, id *string, ...)
- func NewScalingEvents_Override(s ScalingEvents, types ...ScalingEvent)
- func NewSchedule_Override(s Schedule)
- func NewScheduledAction_Override(s ScheduledAction, scope constructs.Construct, id *string, ...)
- func NewSignals_Override(s Signals)
- func NewStepScalingAction_Override(s StepScalingAction, scope constructs.Construct, id *string, ...)
- func NewStepScalingPolicy_Override(s StepScalingPolicy, scope constructs.Construct, id *string, ...)
- func NewTargetTrackingScalingPolicy_Override(t TargetTrackingScalingPolicy, scope constructs.Construct, id *string, ...)
- func NewUpdatePolicy_Override(u UpdatePolicy)
- func ScheduledAction_IsConstruct(x interface{}) *bool
- func ScheduledAction_IsResource(construct constructs.IConstruct) *bool
- func StepScalingAction_IsConstruct(x interface{}) *bool
- func StepScalingPolicy_IsConstruct(x interface{}) *bool
- func TargetTrackingScalingPolicy_IsConstruct(x interface{}) *bool
- type AdjustmentTier
- type AdjustmentType
- type ApplyCloudFormationInitOptions
- type AutoScalingGroup
- type AutoScalingGroupProps
- type BaseTargetTrackingProps
- type BasicLifecycleHookProps
- type BasicScheduledActionProps
- type BasicStepScalingPolicyProps
- type BasicTargetTrackingScalingPolicyProps
- type BlockDevice
- type BlockDeviceVolume
- func BlockDeviceVolume_Ebs(volumeSize *float64, options *EbsDeviceOptions) BlockDeviceVolume
- func BlockDeviceVolume_EbsFromSnapshot(snapshotId *string, options *EbsDeviceSnapshotOptions) BlockDeviceVolume
- func BlockDeviceVolume_Ephemeral(volumeIndex *float64) BlockDeviceVolume
- func BlockDeviceVolume_NoDevice() BlockDeviceVolume
- func NewBlockDeviceVolume(ebsDevice *EbsDeviceProps, virtualName *string) BlockDeviceVolume
- type CfnAutoScalingGroup
- type CfnAutoScalingGroupProps
- type CfnAutoScalingGroup_InstancesDistributionProperty
- type CfnAutoScalingGroup_LaunchTemplateOverridesProperty
- type CfnAutoScalingGroup_LaunchTemplateProperty
- type CfnAutoScalingGroup_LaunchTemplateSpecificationProperty
- type CfnAutoScalingGroup_LifecycleHookSpecificationProperty
- type CfnAutoScalingGroup_MetricsCollectionProperty
- type CfnAutoScalingGroup_MixedInstancesPolicyProperty
- type CfnAutoScalingGroup_NotificationConfigurationProperty
- type CfnAutoScalingGroup_TagPropertyProperty
- type CfnLaunchConfiguration
- type CfnLaunchConfigurationProps
- type CfnLaunchConfiguration_BlockDeviceMappingProperty
- type CfnLaunchConfiguration_BlockDeviceProperty
- type CfnLaunchConfiguration_MetadataOptionsProperty
- type CfnLifecycleHook
- type CfnLifecycleHookProps
- type CfnScalingPolicy
- type CfnScalingPolicyProps
- type CfnScalingPolicy_CustomizedMetricSpecificationProperty
- type CfnScalingPolicy_MetricDimensionProperty
- type CfnScalingPolicy_PredefinedMetricSpecificationProperty
- type CfnScalingPolicy_PredictiveScalingConfigurationProperty
- type CfnScalingPolicy_PredictiveScalingMetricSpecificationProperty
- type CfnScalingPolicy_PredictiveScalingPredefinedLoadMetricProperty
- type CfnScalingPolicy_PredictiveScalingPredefinedMetricPairProperty
- type CfnScalingPolicy_PredictiveScalingPredefinedScalingMetricProperty
- type CfnScalingPolicy_StepAdjustmentProperty
- type CfnScalingPolicy_TargetTrackingConfigurationProperty
- type CfnScheduledAction
- type CfnScheduledActionProps
- type CfnWarmPool
- type CfnWarmPoolProps
- type CommonAutoScalingGroupProps
- type CpuUtilizationScalingProps
- type CronOptions
- type DefaultResult
- type EbsDeviceOptions
- type EbsDeviceOptionsBase
- type EbsDeviceProps
- type EbsDeviceSnapshotOptions
- type EbsDeviceVolumeType
- type Ec2HealthCheckOptions
- type ElbHealthCheckOptions
- type GroupMetric
- func GroupMetric_DESIRED_CAPACITY() GroupMetric
- func GroupMetric_IN_SERVICE_INSTANCES() GroupMetric
- func GroupMetric_MAX_SIZE() GroupMetric
- func GroupMetric_MIN_SIZE() GroupMetric
- func GroupMetric_PENDING_INSTANCES() GroupMetric
- func GroupMetric_STANDBY_INSTANCES() GroupMetric
- func GroupMetric_TERMINATING_INSTANCES() GroupMetric
- func GroupMetric_TOTAL_INSTANCES() GroupMetric
- func NewGroupMetric(name *string) GroupMetric
- type GroupMetrics
- type HealthCheck
- type IAutoScalingGroup
- type ILifecycleHook
- type ILifecycleHookTarget
- type LifecycleHook
- type LifecycleHookProps
- type LifecycleHookTargetConfig
- type LifecycleTransition
- type MetricAggregationType
- type MetricTargetTrackingProps
- type Monitoring
- type NetworkUtilizationScalingProps
- type NotificationConfiguration
- type PredefinedMetric
- type RenderSignalsOptions
- type RequestCountScalingProps
- type RollingUpdateOptions
- type ScalingEvent
- type ScalingEvents
- type ScalingInterval
- type ScalingProcess
- type Schedule
- type ScheduledAction
- type ScheduledActionProps
- type Signals
- type SignalsOptions
- type StepScalingAction
- type StepScalingActionProps
- type StepScalingPolicy
- type StepScalingPolicyProps
- type TargetTrackingScalingPolicy
- type TargetTrackingScalingPolicyProps
- type UpdatePolicy
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AutoScalingGroup_IsConstruct ¶
func AutoScalingGroup_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead
func AutoScalingGroup_IsResource ¶
func AutoScalingGroup_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource. Experimental.
func CfnAutoScalingGroup_CFN_RESOURCE_TYPE_NAME ¶
func CfnAutoScalingGroup_CFN_RESOURCE_TYPE_NAME() *string
func CfnAutoScalingGroup_IsCfnElement ¶
func CfnAutoScalingGroup_IsCfnElement(x interface{}) *bool
Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).
Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.
Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.
func CfnAutoScalingGroup_IsCfnResource ¶
func CfnAutoScalingGroup_IsCfnResource(construct constructs.IConstruct) *bool
Check whether the given construct is a CfnResource. Experimental.
func CfnAutoScalingGroup_IsConstruct ¶
func CfnAutoScalingGroup_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead
func CfnLaunchConfiguration_CFN_RESOURCE_TYPE_NAME ¶
func CfnLaunchConfiguration_CFN_RESOURCE_TYPE_NAME() *string
func CfnLaunchConfiguration_IsCfnElement ¶
func CfnLaunchConfiguration_IsCfnElement(x interface{}) *bool
Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).
Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.
Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.
func CfnLaunchConfiguration_IsCfnResource ¶
func CfnLaunchConfiguration_IsCfnResource(construct constructs.IConstruct) *bool
Check whether the given construct is a CfnResource. Experimental.
func CfnLaunchConfiguration_IsConstruct ¶
func CfnLaunchConfiguration_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead
func CfnLifecycleHook_CFN_RESOURCE_TYPE_NAME ¶
func CfnLifecycleHook_CFN_RESOURCE_TYPE_NAME() *string
func CfnLifecycleHook_IsCfnElement ¶
func CfnLifecycleHook_IsCfnElement(x interface{}) *bool
Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).
Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.
Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.
func CfnLifecycleHook_IsCfnResource ¶
func CfnLifecycleHook_IsCfnResource(construct constructs.IConstruct) *bool
Check whether the given construct is a CfnResource. Experimental.
func CfnLifecycleHook_IsConstruct ¶
func CfnLifecycleHook_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead
func CfnScalingPolicy_CFN_RESOURCE_TYPE_NAME ¶
func CfnScalingPolicy_CFN_RESOURCE_TYPE_NAME() *string
func CfnScalingPolicy_IsCfnElement ¶
func CfnScalingPolicy_IsCfnElement(x interface{}) *bool
Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).
Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.
Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.
func CfnScalingPolicy_IsCfnResource ¶
func CfnScalingPolicy_IsCfnResource(construct constructs.IConstruct) *bool
Check whether the given construct is a CfnResource. Experimental.
func CfnScalingPolicy_IsConstruct ¶
func CfnScalingPolicy_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead
func CfnScheduledAction_CFN_RESOURCE_TYPE_NAME ¶
func CfnScheduledAction_CFN_RESOURCE_TYPE_NAME() *string
func CfnScheduledAction_IsCfnElement ¶
func CfnScheduledAction_IsCfnElement(x interface{}) *bool
Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).
Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.
Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.
func CfnScheduledAction_IsCfnResource ¶
func CfnScheduledAction_IsCfnResource(construct constructs.IConstruct) *bool
Check whether the given construct is a CfnResource. Experimental.
func CfnScheduledAction_IsConstruct ¶
func CfnScheduledAction_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead
func CfnWarmPool_CFN_RESOURCE_TYPE_NAME ¶
func CfnWarmPool_CFN_RESOURCE_TYPE_NAME() *string
func CfnWarmPool_IsCfnElement ¶
func CfnWarmPool_IsCfnElement(x interface{}) *bool
Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).
Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.
Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.
func CfnWarmPool_IsCfnResource ¶
func CfnWarmPool_IsCfnResource(construct constructs.IConstruct) *bool
Check whether the given construct is a CfnResource. Experimental.
func CfnWarmPool_IsConstruct ¶
func CfnWarmPool_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead
func LifecycleHook_IsConstruct ¶
func LifecycleHook_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead
func LifecycleHook_IsResource ¶
func LifecycleHook_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource. Experimental.
func NewAutoScalingGroup_Override ¶
func NewAutoScalingGroup_Override(a AutoScalingGroup, scope constructs.Construct, id *string, props *AutoScalingGroupProps)
Experimental.
func NewBlockDeviceVolume_Override ¶
func NewBlockDeviceVolume_Override(b BlockDeviceVolume, ebsDevice *EbsDeviceProps, virtualName *string)
Experimental.
func NewCfnAutoScalingGroup_Override ¶
func NewCfnAutoScalingGroup_Override(c CfnAutoScalingGroup, scope constructs.Construct, id *string, props *CfnAutoScalingGroupProps)
Create a new `AWS::AutoScaling::AutoScalingGroup`.
func NewCfnLaunchConfiguration_Override ¶
func NewCfnLaunchConfiguration_Override(c CfnLaunchConfiguration, scope constructs.Construct, id *string, props *CfnLaunchConfigurationProps)
Create a new `AWS::AutoScaling::LaunchConfiguration`.
func NewCfnLifecycleHook_Override ¶
func NewCfnLifecycleHook_Override(c CfnLifecycleHook, scope constructs.Construct, id *string, props *CfnLifecycleHookProps)
Create a new `AWS::AutoScaling::LifecycleHook`.
func NewCfnScalingPolicy_Override ¶
func NewCfnScalingPolicy_Override(c CfnScalingPolicy, scope constructs.Construct, id *string, props *CfnScalingPolicyProps)
Create a new `AWS::AutoScaling::ScalingPolicy`.
func NewCfnScheduledAction_Override ¶
func NewCfnScheduledAction_Override(c CfnScheduledAction, scope constructs.Construct, id *string, props *CfnScheduledActionProps)
Create a new `AWS::AutoScaling::ScheduledAction`.
func NewCfnWarmPool_Override ¶
func NewCfnWarmPool_Override(c CfnWarmPool, scope constructs.Construct, id *string, props *CfnWarmPoolProps)
Create a new `AWS::AutoScaling::WarmPool`.
func NewGroupMetric_Override ¶
func NewGroupMetric_Override(g GroupMetric, name *string)
Experimental.
func NewGroupMetrics_Override ¶
func NewGroupMetrics_Override(g GroupMetrics, metrics ...GroupMetric)
Experimental.
func NewLifecycleHook_Override ¶
func NewLifecycleHook_Override(l LifecycleHook, scope constructs.Construct, id *string, props *LifecycleHookProps)
Experimental.
func NewScalingEvents_Override ¶
func NewScalingEvents_Override(s ScalingEvents, types ...ScalingEvent)
Experimental.
func NewScheduledAction_Override ¶
func NewScheduledAction_Override(s ScheduledAction, scope constructs.Construct, id *string, props *ScheduledActionProps)
Experimental.
func NewStepScalingAction_Override ¶
func NewStepScalingAction_Override(s StepScalingAction, scope constructs.Construct, id *string, props *StepScalingActionProps)
Experimental.
func NewStepScalingPolicy_Override ¶
func NewStepScalingPolicy_Override(s StepScalingPolicy, scope constructs.Construct, id *string, props *StepScalingPolicyProps)
Experimental.
func NewTargetTrackingScalingPolicy_Override ¶
func NewTargetTrackingScalingPolicy_Override(t TargetTrackingScalingPolicy, scope constructs.Construct, id *string, props *TargetTrackingScalingPolicyProps)
Experimental.
func ScheduledAction_IsConstruct ¶
func ScheduledAction_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead
func ScheduledAction_IsResource ¶
func ScheduledAction_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource. Experimental.
func StepScalingAction_IsConstruct ¶
func StepScalingAction_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead
func StepScalingPolicy_IsConstruct ¶
func StepScalingPolicy_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead
func TargetTrackingScalingPolicy_IsConstruct ¶
func TargetTrackingScalingPolicy_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead
Types ¶
type AdjustmentTier ¶
type AdjustmentTier struct { // What number to adjust the capacity with. // // The number is interpeted as an added capacity, a new fixed capacity or an // added percentage depending on the AdjustmentType value of the // StepScalingPolicy. // // Can be positive or negative. // Experimental. Adjustment *float64 `json:"adjustment"` // Lower bound where this scaling tier applies. // // The scaling tier applies if the difference between the metric // value and its alarm threshold is higher than this value. // Experimental. LowerBound *float64 `json:"lowerBound"` // Upper bound where this scaling tier applies. // // The scaling tier applies if the difference between the metric // value and its alarm threshold is lower than this value. // Experimental. UpperBound *float64 `json:"upperBound"` }
An adjustment. Experimental.
type AdjustmentType ¶
type AdjustmentType string
How adjustment numbers are interpreted. Experimental.
const ( AdjustmentType_CHANGE_IN_CAPACITY AdjustmentType = "CHANGE_IN_CAPACITY" AdjustmentType_PERCENT_CHANGE_IN_CAPACITY AdjustmentType = "PERCENT_CHANGE_IN_CAPACITY" AdjustmentType_EXACT_CAPACITY AdjustmentType = "EXACT_CAPACITY" )
type ApplyCloudFormationInitOptions ¶
type ApplyCloudFormationInitOptions struct { // ConfigSet to activate. // Experimental. ConfigSets *[]*string `json:"configSets"` // Force instance replacement by embedding a config fingerprint. // // If `true` (the default), a hash of the config will be embedded into the // UserData, so that if the config changes, the UserData changes and // instances will be replaced (given an UpdatePolicy has been configured on // the AutoScalingGroup). // // If `false`, no such hash will be embedded, and if the CloudFormation Init // config changes nothing will happen to the running instances. If a // config update introduces errors, you will not notice until after the // CloudFormation deployment successfully finishes and the next instance // fails to launch. // Experimental. EmbedFingerprint *bool `json:"embedFingerprint"` // Don't fail the instance creation when cfn-init fails. // // You can use this to prevent CloudFormation from rolling back when // instances fail to start up, to help in debugging. // Experimental. IgnoreFailures *bool `json:"ignoreFailures"` // Print the results of running cfn-init to the Instance System Log. // // By default, the output of running cfn-init is written to a log file // on the instance. Set this to `true` to print it to the System Log // (visible from the EC2 Console), `false` to not print it. // // (Be aware that the system log is refreshed at certain points in // time of the instance life cycle, and successful execution may // not always show up). // Experimental. PrintLog *bool `json:"printLog"` }
Options for applying CloudFormation init to an instance or instance group. Experimental.
type AutoScalingGroup ¶
type AutoScalingGroup interface { awscdk.Resource IAutoScalingGroup awsec2.IConnectable awselasticloadbalancing.ILoadBalancerTarget awselasticloadbalancingv2.IApplicationLoadBalancerTarget awselasticloadbalancingv2.INetworkLoadBalancerTarget AlbTargetGroup() awselasticloadbalancingv2.ApplicationTargetGroup SetAlbTargetGroup(val awselasticloadbalancingv2.ApplicationTargetGroup) AutoScalingGroupArn() *string AutoScalingGroupName() *string Connections() awsec2.Connections Env() *awscdk.ResourceEnvironment GrantPrincipal() awsiam.IPrincipal MaxInstanceLifetime() awscdk.Duration NewInstancesProtectedFromScaleIn() *bool SetNewInstancesProtectedFromScaleIn(val *bool) Node() constructs.Node OsType() awsec2.OperatingSystemType PhysicalName() *string Role() awsiam.IRole SpotPrice() *string Stack() awscdk.Stack UserData() awsec2.UserData AddLifecycleHook(id *string, props *BasicLifecycleHookProps) LifecycleHook AddSecurityGroup(securityGroup awsec2.ISecurityGroup) AddToRolePolicy(statement awsiam.PolicyStatement) AddUserData(commands ...*string) ApplyCloudFormationInit(init awsec2.CloudFormationInit, options *ApplyCloudFormationInitOptions) ApplyRemovalPolicy(policy awscdk.RemovalPolicy) AreNewInstancesProtectedFromScaleIn() *bool AttachToApplicationTargetGroup(targetGroup awselasticloadbalancingv2.IApplicationTargetGroup) *awselasticloadbalancingv2.LoadBalancerTargetProps AttachToClassicLB(loadBalancer awselasticloadbalancing.LoadBalancer) AttachToNetworkTargetGroup(targetGroup awselasticloadbalancingv2.INetworkTargetGroup) *awselasticloadbalancingv2.LoadBalancerTargetProps GeneratePhysicalName() *string GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string GetResourceNameAttribute(nameAttr *string) *string ProtectNewInstancesFromScaleIn() ScaleOnCpuUtilization(id *string, props *CpuUtilizationScalingProps) TargetTrackingScalingPolicy ScaleOnIncomingBytes(id *string, props *NetworkUtilizationScalingProps) TargetTrackingScalingPolicy ScaleOnMetric(id *string, props *BasicStepScalingPolicyProps) StepScalingPolicy ScaleOnOutgoingBytes(id *string, props *NetworkUtilizationScalingProps) TargetTrackingScalingPolicy ScaleOnRequestCount(id *string, props *RequestCountScalingProps) TargetTrackingScalingPolicy ScaleOnSchedule(id *string, props *BasicScheduledActionProps) ScheduledAction ScaleToTrackMetric(id *string, props *MetricTargetTrackingProps) TargetTrackingScalingPolicy ToString() *string }
A Fleet represents a managed set of EC2 instances.
The Fleet models a number of AutoScalingGroups, a launch configuration, a security group and an instance role.
It allows adding arbitrary commands to the startup scripts of the instances in the fleet.
The ASG spans the availability zones specified by vpcSubnets, falling back to the Vpc default strategy if not specified. Experimental.
func NewAutoScalingGroup ¶
func NewAutoScalingGroup(scope constructs.Construct, id *string, props *AutoScalingGroupProps) AutoScalingGroup
Experimental.
type AutoScalingGroupProps ¶
type AutoScalingGroupProps struct { // Whether the instances can initiate connections to anywhere by default. // Experimental. AllowAllOutbound *bool `json:"allowAllOutbound"` // Whether instances in the Auto Scaling Group should have public IP addresses associated with them. // Experimental. AssociatePublicIpAddress *bool `json:"associatePublicIpAddress"` // The name of the Auto Scaling group. // // This name must be unique per Region per account. // Experimental. AutoScalingGroupName *string `json:"autoScalingGroupName"` // Specifies how block devices are exposed to the instance. You can specify virtual devices and EBS volumes. // // Each instance that is launched has an associated root device volume, // either an Amazon EBS volume or an instance store volume. // You can use block device mappings to specify additional EBS volumes or // instance store volumes to attach to an instance when it is launched. // See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html // // Experimental. BlockDevices *[]*BlockDevice `json:"blockDevices"` // Default scaling cooldown for this AutoScalingGroup. // Experimental. Cooldown awscdk.Duration `json:"cooldown"` // Initial amount of instances in the fleet. // // If this is set to a number, every deployment will reset the amount of // instances to this number. It is recommended to leave this value blank. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-desiredcapacity // // Experimental. DesiredCapacity *float64 `json:"desiredCapacity"` // Enable monitoring for group metrics, these metrics describe the group rather than any of its instances. // // To report all group metrics use `GroupMetrics.all()` // Group metrics are reported in a granularity of 1 minute at no additional charge. // Experimental. GroupMetrics *[]GroupMetrics `json:"groupMetrics"` // Configuration for health checks. // Experimental. HealthCheck HealthCheck `json:"healthCheck"` // If the ASG has scheduled actions, don't reset unchanged group sizes. // // Only used if the ASG has scheduled actions (which may scale your ASG up // or down regardless of cdk deployments). If true, the size of the group // will only be reset if it has been changed in the CDK app. If false, the // sizes will always be changed back to what they were in the CDK app // on deployment. // Experimental. IgnoreUnmodifiedSizeProperties *bool `json:"ignoreUnmodifiedSizeProperties"` // Controls whether instances in this group are launched with detailed or basic monitoring. // // When detailed monitoring is enabled, Amazon CloudWatch generates metrics every minute and your account // is charged a fee. When you disable detailed monitoring, CloudWatch generates metrics every 5 minutes. // See: https://docs.aws.amazon.com/autoscaling/latest/userguide/as-instance-monitoring.html#enable-as-instance-metrics // // Experimental. InstanceMonitoring Monitoring `json:"instanceMonitoring"` // Name of SSH keypair to grant access to instances. // Experimental. KeyName *string `json:"keyName"` // Maximum number of instances in the fleet. // Experimental. MaxCapacity *float64 `json:"maxCapacity"` // 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 604,800 seconds (7 days). To clear a previously set value, // leave this property undefined. // See: https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-max-instance-lifetime.html // // Experimental. MaxInstanceLifetime awscdk.Duration `json:"maxInstanceLifetime"` // Minimum number of instances in the fleet. // Experimental. MinCapacity *float64 `json:"minCapacity"` // 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. // Experimental. NewInstancesProtectedFromScaleIn *bool `json:"newInstancesProtectedFromScaleIn"` // Configure autoscaling group to send notifications about fleet changes to an SNS topic(s). // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-notificationconfigurations // // Experimental. Notifications *[]*NotificationConfiguration `json:"notifications"` // Configure waiting for signals during deployment. // // Use this to pause the CloudFormation deployment to wait for the instances // in the AutoScalingGroup to report successful startup during // creation and updates. The UserData script needs to invoke `cfn-signal` // with a success or failure code after it is done setting up the instance. // // Without waiting for signals, the CloudFormation deployment will proceed as // soon as the AutoScalingGroup has been created or updated but before the // instances in the group have been started. // // For example, to have instances wait for an Elastic Load Balancing health check before // they signal success, add a health-check verification by using the // cfn-init helper script. For an example, see the verify_instance_health // command in the Auto Scaling rolling updates sample template: // // https://github.com/awslabs/aws-cloudformation-templates/blob/master/aws/services/AutoScaling/AutoScalingRollingUpdates.yaml // Experimental. Signals Signals `json:"signals"` // The maximum hourly price (in USD) to be paid for any Spot Instance launched to fulfill the request. // // Spot Instances are // launched when the price you specify exceeds the current Spot market price. // Experimental. SpotPrice *string `json:"spotPrice"` // What to do when an AutoScalingGroup's instance configuration is changed. // // This is applied when any of the settings on the ASG are changed that // affect how the instances should be created (VPC, instance type, startup // scripts, etc.). It indicates how the existing instances should be // replaced with new instances matching the new config. By default, nothing // is done and only new instances are launched with the new config. // Experimental. UpdatePolicy UpdatePolicy `json:"updatePolicy"` // Where to place instances within the VPC. // Experimental. VpcSubnets *awsec2.SubnetSelection `json:"vpcSubnets"` // Type of instance to launch. // Experimental. InstanceType awsec2.InstanceType `json:"instanceType"` // AMI to launch. // Experimental. MachineImage awsec2.IMachineImage `json:"machineImage"` // VPC to launch these instances in. // Experimental. Vpc awsec2.IVpc `json:"vpc"` // Apply the given CloudFormation Init configuration to the instances in the AutoScalingGroup at startup. // // If you specify `init`, you must also specify `signals` to configure // the number of instances to wait for and the timeout for waiting for the // init process. // Experimental. Init awsec2.CloudFormationInit `json:"init"` // Use the given options for applying CloudFormation Init. // // Describes the configsets to use and the timeout to wait // Experimental. InitOptions *ApplyCloudFormationInitOptions `json:"initOptions"` // An IAM role to associate with the instance profile assigned to this Auto Scaling Group. // // The role must be assumable by the service principal `ec2.amazonaws.com`: // // TODO: EXAMPLE // // Experimental. Role awsiam.IRole `json:"role"` // Security group to launch the instances in. // Experimental. SecurityGroup awsec2.ISecurityGroup `json:"securityGroup"` // Specific UserData to use. // // The UserData may still be mutated after creation. // Experimental. UserData awsec2.UserData `json:"userData"` }
Properties of a Fleet. Experimental.
type BaseTargetTrackingProps ¶
type BaseTargetTrackingProps struct { // Period after a scaling completes before another scaling activity can start. // Experimental. Cooldown awscdk.Duration `json:"cooldown"` // Indicates whether scale in by the target tracking policy is disabled. // // If the value is true, scale in is disabled and the target tracking policy // won't remove capacity from the autoscaling group. Otherwise, scale in is // enabled and the target tracking policy can remove capacity from the // group. // Experimental. DisableScaleIn *bool `json:"disableScaleIn"` // Estimated time until a newly launched instance can send metrics to CloudWatch. // Experimental. EstimatedInstanceWarmup awscdk.Duration `json:"estimatedInstanceWarmup"` }
Base interface for target tracking props.
Contains the attributes that are common to target tracking policies, except the ones relating to the metric and to the scalable target.
This interface is reused by more specific target tracking props objects. Experimental.
type BasicLifecycleHookProps ¶
type BasicLifecycleHookProps struct { // The state of the Amazon EC2 instance to which you want to attach the lifecycle hook. // Experimental. LifecycleTransition LifecycleTransition `json:"lifecycleTransition"` // The target of the lifecycle hook. // Experimental. NotificationTarget ILifecycleHookTarget `json:"notificationTarget"` // The action the Auto Scaling group takes when the lifecycle hook timeout elapses or if an unexpected failure occurs. // Experimental. DefaultResult DefaultResult `json:"defaultResult"` // Maximum time between calls to RecordLifecycleActionHeartbeat for the hook. // // If the lifecycle hook times out, perform the action in DefaultResult. // Experimental. HeartbeatTimeout awscdk.Duration `json:"heartbeatTimeout"` // Name of the lifecycle hook. // Experimental. LifecycleHookName *string `json:"lifecycleHookName"` // Additional data to pass to the lifecycle hook target. // Experimental. NotificationMetadata *string `json:"notificationMetadata"` // The role that allows publishing to the notification target. // Experimental. Role awsiam.IRole `json:"role"` }
Basic properties for a lifecycle hook. Experimental.
type BasicScheduledActionProps ¶
type BasicScheduledActionProps struct { // When to perform this action. // // Supports cron expressions. // // For more information about cron expressions, see https://en.wikipedia.org/wiki/Cron. // // TODO: EXAMPLE // // Experimental. Schedule Schedule `json:"schedule"` // The new desired capacity. // // At the scheduled time, set the desired capacity to the given capacity. // // At least one of maxCapacity, minCapacity, or desiredCapacity must be supplied. // Experimental. DesiredCapacity *float64 `json:"desiredCapacity"` // When this scheduled action expires. // Experimental. EndTime *time.Time `json:"endTime"` // The new maximum capacity. // // At the scheduled time, set the maximum capacity to the given capacity. // // At least one of maxCapacity, minCapacity, or desiredCapacity must be supplied. // Experimental. MaxCapacity *float64 `json:"maxCapacity"` // The new minimum capacity. // // At the scheduled time, set the minimum capacity to the given capacity. // // At least one of maxCapacity, minCapacity, or desiredCapacity must be supplied. // Experimental. MinCapacity *float64 `json:"minCapacity"` // When this scheduled action becomes active. // Experimental. StartTime *time.Time `json:"startTime"` }
Properties for a scheduled scaling action. Experimental.
type BasicStepScalingPolicyProps ¶
type BasicStepScalingPolicyProps struct { // Metric to scale on. // Experimental. Metric awscloudwatch.IMetric `json:"metric"` // The intervals for scaling. // // Maps a range of metric values to a particular scaling behavior. // Experimental. ScalingSteps *[]*ScalingInterval `json:"scalingSteps"` // How the adjustment numbers inside 'intervals' are interpreted. // Experimental. AdjustmentType AdjustmentType `json:"adjustmentType"` // Grace period after scaling activity. // Experimental. Cooldown awscdk.Duration `json:"cooldown"` // Estimated time until a newly launched instance can send metrics to CloudWatch. // Experimental. EstimatedInstanceWarmup awscdk.Duration `json:"estimatedInstanceWarmup"` // How many evaluation periods of the metric to wait before triggering a scaling action. // // Raising this value can be used to smooth out the metric, at the expense // of slower response times. // Experimental. EvaluationPeriods *float64 `json:"evaluationPeriods"` // Aggregation to apply to all data points over the evaluation periods. // // Only has meaning if `evaluationPeriods != 1`. // Experimental. MetricAggregationType MetricAggregationType `json:"metricAggregationType"` // Minimum absolute number to adjust capacity with as result of percentage scaling. // // Only when using AdjustmentType = PercentChangeInCapacity, this number controls // the minimum absolute effect size. // Experimental. MinAdjustmentMagnitude *float64 `json:"minAdjustmentMagnitude"` }
Experimental.
type BasicTargetTrackingScalingPolicyProps ¶
type BasicTargetTrackingScalingPolicyProps struct { // Period after a scaling completes before another scaling activity can start. // Experimental. Cooldown awscdk.Duration `json:"cooldown"` // Indicates whether scale in by the target tracking policy is disabled. // // If the value is true, scale in is disabled and the target tracking policy // won't remove capacity from the autoscaling group. Otherwise, scale in is // enabled and the target tracking policy can remove capacity from the // group. // Experimental. DisableScaleIn *bool `json:"disableScaleIn"` // Estimated time until a newly launched instance can send metrics to CloudWatch. // Experimental. EstimatedInstanceWarmup awscdk.Duration `json:"estimatedInstanceWarmup"` // The target value for the metric. // Experimental. TargetValue *float64 `json:"targetValue"` // A custom metric for application autoscaling. // // The metric must track utilization. Scaling out will happen if the metric is higher than // the target value, scaling in will happen in the metric is lower than the target value. // // Exactly one of customMetric or predefinedMetric must be specified. // Experimental. CustomMetric awscloudwatch.IMetric `json:"customMetric"` // A predefined metric for application autoscaling. // // The metric must track utilization. Scaling out will happen if the metric is higher than // the target value, scaling in will happen in the metric is lower than the target value. // // Exactly one of customMetric or predefinedMetric must be specified. // Experimental. PredefinedMetric PredefinedMetric `json:"predefinedMetric"` // The resource label associated with the predefined metric. // // Should be supplied if the predefined metric is ALBRequestCountPerTarget, and the // format should be: // // app/<load-balancer-name>/<load-balancer-id>/targetgroup/<target-group-name>/<target-group-id> // Experimental. ResourceLabel *string `json:"resourceLabel"` }
Properties for a Target Tracking policy that include the metric but exclude the target. Experimental.
type BlockDevice ¶
type BlockDevice struct { // The device name exposed to the EC2 instance. // // TODO: EXAMPLE // // See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html // // Experimental. DeviceName *string `json:"deviceName"` // Defines the block device volume, to be either an Amazon EBS volume or an ephemeral instance store volume. // // TODO: EXAMPLE // // Experimental. Volume BlockDeviceVolume `json:"volume"` }
Block device. Experimental.
type BlockDeviceVolume ¶
type BlockDeviceVolume interface { EbsDevice() *EbsDeviceProps VirtualName() *string }
Describes a block device mapping for an EC2 instance or Auto Scaling group. Experimental.
func BlockDeviceVolume_Ebs ¶
func BlockDeviceVolume_Ebs(volumeSize *float64, options *EbsDeviceOptions) BlockDeviceVolume
Creates a new Elastic Block Storage device. Experimental.
func BlockDeviceVolume_EbsFromSnapshot ¶
func BlockDeviceVolume_EbsFromSnapshot(snapshotId *string, options *EbsDeviceSnapshotOptions) BlockDeviceVolume
Creates a new Elastic Block Storage device from an existing snapshot. Experimental.
func BlockDeviceVolume_Ephemeral ¶
func BlockDeviceVolume_Ephemeral(volumeIndex *float64) BlockDeviceVolume
Creates a virtual, ephemeral device.
The name will be in the form ephemeral{volumeIndex}. Experimental.
func BlockDeviceVolume_NoDevice ¶
func BlockDeviceVolume_NoDevice() BlockDeviceVolume
Supresses a volume mapping. Experimental.
func NewBlockDeviceVolume ¶
func NewBlockDeviceVolume(ebsDevice *EbsDeviceProps, virtualName *string) BlockDeviceVolume
Experimental.
type CfnAutoScalingGroup ¶
type CfnAutoScalingGroup interface { awscdk.CfnResource awscdk.IInspectable AutoScalingGroupName() *string SetAutoScalingGroupName(val *string) AvailabilityZones() *[]*string SetAvailabilityZones(val *[]*string) CapacityRebalance() interface{} SetCapacityRebalance(val interface{}) CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} CfnResourceType() *string Context() *string SetContext(val *string) Cooldown() *string SetCooldown(val *string) CreationStack() *[]*string DesiredCapacity() *string SetDesiredCapacity(val *string) HealthCheckGracePeriod() *float64 SetHealthCheckGracePeriod(val *float64) HealthCheckType() *string SetHealthCheckType(val *string) InstanceId() *string SetInstanceId(val *string) LaunchConfigurationName() *string SetLaunchConfigurationName(val *string) LaunchTemplate() interface{} SetLaunchTemplate(val interface{}) LifecycleHookSpecificationList() interface{} SetLifecycleHookSpecificationList(val interface{}) LoadBalancerNames() *[]*string SetLoadBalancerNames(val *[]*string) LogicalId() *string MaxInstanceLifetime() *float64 SetMaxInstanceLifetime(val *float64) MaxSize() *string SetMaxSize(val *string) MetricsCollection() interface{} SetMetricsCollection(val interface{}) MinSize() *string SetMinSize(val *string) MixedInstancesPolicy() interface{} SetMixedInstancesPolicy(val interface{}) NewInstancesProtectedFromScaleIn() interface{} SetNewInstancesProtectedFromScaleIn(val interface{}) Node() constructs.Node NotificationConfigurations() interface{} SetNotificationConfigurations(val interface{}) PlacementGroup() *string SetPlacementGroup(val *string) Ref() *string ServiceLinkedRoleArn() *string SetServiceLinkedRoleArn(val *string) Stack() awscdk.Stack Tags() awscdk.TagManager TargetGroupArns() *[]*string SetTargetGroupArns(val *[]*string) TerminationPolicies() *[]*string SetTerminationPolicies(val *[]*string) UpdatedProperites() *map[string]interface{} VpcZoneIdentifier() *[]*string SetVpcZoneIdentifier(val *[]*string) AddDeletionOverride(path *string) AddDependsOn(target awscdk.CfnResource) AddMetadata(key *string, value interface{}) AddOverride(path *string, value interface{}) AddPropertyDeletionOverride(propertyPath *string) AddPropertyOverride(propertyPath *string, value interface{}) ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) GetAtt(attributeName *string) awscdk.Reference GetMetadata(key *string) interface{} Inspect(inspector awscdk.TreeInspector) OverrideLogicalId(newLogicalId *string) RenderProperties(props *map[string]interface{}) *map[string]interface{} ShouldSynthesize() *bool ToString() *string ValidateProperties(_properties interface{}) }
A CloudFormation `AWS::AutoScaling::AutoScalingGroup`.
func NewCfnAutoScalingGroup ¶
func NewCfnAutoScalingGroup(scope constructs.Construct, id *string, props *CfnAutoScalingGroupProps) CfnAutoScalingGroup
Create a new `AWS::AutoScaling::AutoScalingGroup`.
type CfnAutoScalingGroupProps ¶
type CfnAutoScalingGroupProps struct { // `AWS::AutoScaling::AutoScalingGroup.MaxSize`. MaxSize *string `json:"maxSize"` // `AWS::AutoScaling::AutoScalingGroup.MinSize`. MinSize *string `json:"minSize"` // `AWS::AutoScaling::AutoScalingGroup.AutoScalingGroupName`. AutoScalingGroupName *string `json:"autoScalingGroupName"` // `AWS::AutoScaling::AutoScalingGroup.AvailabilityZones`. AvailabilityZones *[]*string `json:"availabilityZones"` // `AWS::AutoScaling::AutoScalingGroup.CapacityRebalance`. CapacityRebalance interface{} `json:"capacityRebalance"` // `AWS::AutoScaling::AutoScalingGroup.Context`. Context *string `json:"context"` // `AWS::AutoScaling::AutoScalingGroup.Cooldown`. Cooldown *string `json:"cooldown"` // `AWS::AutoScaling::AutoScalingGroup.DesiredCapacity`. DesiredCapacity *string `json:"desiredCapacity"` // `AWS::AutoScaling::AutoScalingGroup.HealthCheckGracePeriod`. HealthCheckGracePeriod *float64 `json:"healthCheckGracePeriod"` // `AWS::AutoScaling::AutoScalingGroup.HealthCheckType`. HealthCheckType *string `json:"healthCheckType"` // `AWS::AutoScaling::AutoScalingGroup.InstanceId`. InstanceId *string `json:"instanceId"` // `AWS::AutoScaling::AutoScalingGroup.LaunchConfigurationName`. LaunchConfigurationName *string `json:"launchConfigurationName"` // `AWS::AutoScaling::AutoScalingGroup.LaunchTemplate`. LaunchTemplate interface{} `json:"launchTemplate"` // `AWS::AutoScaling::AutoScalingGroup.LifecycleHookSpecificationList`. LifecycleHookSpecificationList interface{} `json:"lifecycleHookSpecificationList"` // `AWS::AutoScaling::AutoScalingGroup.LoadBalancerNames`. LoadBalancerNames *[]*string `json:"loadBalancerNames"` // `AWS::AutoScaling::AutoScalingGroup.MaxInstanceLifetime`. MaxInstanceLifetime *float64 `json:"maxInstanceLifetime"` // `AWS::AutoScaling::AutoScalingGroup.MetricsCollection`. MetricsCollection interface{} `json:"metricsCollection"` // `AWS::AutoScaling::AutoScalingGroup.MixedInstancesPolicy`. MixedInstancesPolicy interface{} `json:"mixedInstancesPolicy"` // `AWS::AutoScaling::AutoScalingGroup.NewInstancesProtectedFromScaleIn`. NewInstancesProtectedFromScaleIn interface{} `json:"newInstancesProtectedFromScaleIn"` // `AWS::AutoScaling::AutoScalingGroup.NotificationConfigurations`. NotificationConfigurations interface{} `json:"notificationConfigurations"` // `AWS::AutoScaling::AutoScalingGroup.PlacementGroup`. PlacementGroup *string `json:"placementGroup"` // `AWS::AutoScaling::AutoScalingGroup.ServiceLinkedRoleARN`. ServiceLinkedRoleArn *string `json:"serviceLinkedRoleArn"` // `AWS::AutoScaling::AutoScalingGroup.Tags`. Tags *[]*CfnAutoScalingGroup_TagPropertyProperty `json:"tags"` // `AWS::AutoScaling::AutoScalingGroup.TargetGroupARNs`. TargetGroupArns *[]*string `json:"targetGroupArns"` // `AWS::AutoScaling::AutoScalingGroup.TerminationPolicies`. TerminationPolicies *[]*string `json:"terminationPolicies"` // `AWS::AutoScaling::AutoScalingGroup.VPCZoneIdentifier`. VpcZoneIdentifier *[]*string `json:"vpcZoneIdentifier"` }
Properties for defining a `AWS::AutoScaling::AutoScalingGroup`.
type CfnAutoScalingGroup_InstancesDistributionProperty ¶
type CfnAutoScalingGroup_InstancesDistributionProperty struct { // `CfnAutoScalingGroup.InstancesDistributionProperty.OnDemandAllocationStrategy`. OnDemandAllocationStrategy *string `json:"onDemandAllocationStrategy"` // `CfnAutoScalingGroup.InstancesDistributionProperty.OnDemandBaseCapacity`. OnDemandBaseCapacity *float64 `json:"onDemandBaseCapacity"` // `CfnAutoScalingGroup.InstancesDistributionProperty.OnDemandPercentageAboveBaseCapacity`. OnDemandPercentageAboveBaseCapacity *float64 `json:"onDemandPercentageAboveBaseCapacity"` // `CfnAutoScalingGroup.InstancesDistributionProperty.SpotAllocationStrategy`. SpotAllocationStrategy *string `json:"spotAllocationStrategy"` // `CfnAutoScalingGroup.InstancesDistributionProperty.SpotInstancePools`. SpotInstancePools *float64 `json:"spotInstancePools"` // `CfnAutoScalingGroup.InstancesDistributionProperty.SpotMaxPrice`. SpotMaxPrice *string `json:"spotMaxPrice"` }
type CfnAutoScalingGroup_LaunchTemplateOverridesProperty ¶
type CfnAutoScalingGroup_LaunchTemplateOverridesProperty struct { // `CfnAutoScalingGroup.LaunchTemplateOverridesProperty.InstanceType`. InstanceType *string `json:"instanceType"` // `CfnAutoScalingGroup.LaunchTemplateOverridesProperty.LaunchTemplateSpecification`. LaunchTemplateSpecification interface{} `json:"launchTemplateSpecification"` // `CfnAutoScalingGroup.LaunchTemplateOverridesProperty.WeightedCapacity`. WeightedCapacity *string `json:"weightedCapacity"` }
type CfnAutoScalingGroup_LaunchTemplateProperty ¶
type CfnAutoScalingGroup_LaunchTemplateProperty struct { // `CfnAutoScalingGroup.LaunchTemplateProperty.LaunchTemplateSpecification`. LaunchTemplateSpecification interface{} `json:"launchTemplateSpecification"` // `CfnAutoScalingGroup.LaunchTemplateProperty.Overrides`. Overrides interface{} `json:"overrides"` }
type CfnAutoScalingGroup_LaunchTemplateSpecificationProperty ¶
type CfnAutoScalingGroup_LaunchTemplateSpecificationProperty struct { // `CfnAutoScalingGroup.LaunchTemplateSpecificationProperty.Version`. Version *string `json:"version"` // `CfnAutoScalingGroup.LaunchTemplateSpecificationProperty.LaunchTemplateId`. LaunchTemplateId *string `json:"launchTemplateId"` // `CfnAutoScalingGroup.LaunchTemplateSpecificationProperty.LaunchTemplateName`. LaunchTemplateName *string `json:"launchTemplateName"` }
type CfnAutoScalingGroup_LifecycleHookSpecificationProperty ¶
type CfnAutoScalingGroup_LifecycleHookSpecificationProperty struct { // `CfnAutoScalingGroup.LifecycleHookSpecificationProperty.LifecycleHookName`. LifecycleHookName *string `json:"lifecycleHookName"` // `CfnAutoScalingGroup.LifecycleHookSpecificationProperty.LifecycleTransition`. LifecycleTransition *string `json:"lifecycleTransition"` // `CfnAutoScalingGroup.LifecycleHookSpecificationProperty.DefaultResult`. DefaultResult *string `json:"defaultResult"` // `CfnAutoScalingGroup.LifecycleHookSpecificationProperty.HeartbeatTimeout`. HeartbeatTimeout *float64 `json:"heartbeatTimeout"` // `CfnAutoScalingGroup.LifecycleHookSpecificationProperty.NotificationMetadata`. NotificationMetadata *string `json:"notificationMetadata"` // `CfnAutoScalingGroup.LifecycleHookSpecificationProperty.NotificationTargetARN`. NotificationTargetArn *string `json:"notificationTargetArn"` // `CfnAutoScalingGroup.LifecycleHookSpecificationProperty.RoleARN`. RoleArn *string `json:"roleArn"` }
type CfnAutoScalingGroup_MixedInstancesPolicyProperty ¶
type CfnAutoScalingGroup_MixedInstancesPolicyProperty struct { // `CfnAutoScalingGroup.MixedInstancesPolicyProperty.LaunchTemplate`. LaunchTemplate interface{} `json:"launchTemplate"` // `CfnAutoScalingGroup.MixedInstancesPolicyProperty.InstancesDistribution`. InstancesDistribution interface{} `json:"instancesDistribution"` }
type CfnAutoScalingGroup_NotificationConfigurationProperty ¶
type CfnAutoScalingGroup_NotificationConfigurationProperty struct { // `CfnAutoScalingGroup.NotificationConfigurationProperty.TopicARN`. TopicArn *string `json:"topicArn"` // `CfnAutoScalingGroup.NotificationConfigurationProperty.NotificationTypes`. NotificationTypes *[]*string `json:"notificationTypes"` }
type CfnAutoScalingGroup_TagPropertyProperty ¶
type CfnAutoScalingGroup_TagPropertyProperty struct { // `CfnAutoScalingGroup.TagPropertyProperty.Key`. Key *string `json:"key"` // `CfnAutoScalingGroup.TagPropertyProperty.PropagateAtLaunch`. PropagateAtLaunch interface{} `json:"propagateAtLaunch"` // `CfnAutoScalingGroup.TagPropertyProperty.Value`. Value *string `json:"value"` }
type CfnLaunchConfiguration ¶
type CfnLaunchConfiguration interface { awscdk.CfnResource awscdk.IInspectable AssociatePublicIpAddress() interface{} SetAssociatePublicIpAddress(val interface{}) BlockDeviceMappings() interface{} SetBlockDeviceMappings(val interface{}) CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} CfnResourceType() *string ClassicLinkVpcId() *string SetClassicLinkVpcId(val *string) ClassicLinkVpcSecurityGroups() *[]*string SetClassicLinkVpcSecurityGroups(val *[]*string) CreationStack() *[]*string EbsOptimized() interface{} SetEbsOptimized(val interface{}) IamInstanceProfile() *string SetIamInstanceProfile(val *string) ImageId() *string SetImageId(val *string) InstanceId() *string SetInstanceId(val *string) InstanceMonitoring() interface{} SetInstanceMonitoring(val interface{}) InstanceType() *string SetInstanceType(val *string) KernelId() *string SetKernelId(val *string) KeyName() *string SetKeyName(val *string) LaunchConfigurationName() *string SetLaunchConfigurationName(val *string) LogicalId() *string MetadataOptions() interface{} SetMetadataOptions(val interface{}) Node() constructs.Node PlacementTenancy() *string SetPlacementTenancy(val *string) RamDiskId() *string SetRamDiskId(val *string) Ref() *string SecurityGroups() *[]*string SetSecurityGroups(val *[]*string) SpotPrice() *string SetSpotPrice(val *string) Stack() awscdk.Stack UpdatedProperites() *map[string]interface{} UserData() *string SetUserData(val *string) AddDeletionOverride(path *string) AddDependsOn(target awscdk.CfnResource) AddMetadata(key *string, value interface{}) AddOverride(path *string, value interface{}) AddPropertyDeletionOverride(propertyPath *string) AddPropertyOverride(propertyPath *string, value interface{}) ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) GetAtt(attributeName *string) awscdk.Reference GetMetadata(key *string) interface{} Inspect(inspector awscdk.TreeInspector) OverrideLogicalId(newLogicalId *string) RenderProperties(props *map[string]interface{}) *map[string]interface{} ShouldSynthesize() *bool ToString() *string ValidateProperties(_properties interface{}) }
A CloudFormation `AWS::AutoScaling::LaunchConfiguration`.
func NewCfnLaunchConfiguration ¶
func NewCfnLaunchConfiguration(scope constructs.Construct, id *string, props *CfnLaunchConfigurationProps) CfnLaunchConfiguration
Create a new `AWS::AutoScaling::LaunchConfiguration`.
type CfnLaunchConfigurationProps ¶
type CfnLaunchConfigurationProps struct { // `AWS::AutoScaling::LaunchConfiguration.ImageId`. ImageId *string `json:"imageId"` // `AWS::AutoScaling::LaunchConfiguration.InstanceType`. InstanceType *string `json:"instanceType"` // `AWS::AutoScaling::LaunchConfiguration.AssociatePublicIpAddress`. AssociatePublicIpAddress interface{} `json:"associatePublicIpAddress"` // `AWS::AutoScaling::LaunchConfiguration.BlockDeviceMappings`. BlockDeviceMappings interface{} `json:"blockDeviceMappings"` // `AWS::AutoScaling::LaunchConfiguration.ClassicLinkVPCId`. ClassicLinkVpcId *string `json:"classicLinkVpcId"` // `AWS::AutoScaling::LaunchConfiguration.ClassicLinkVPCSecurityGroups`. ClassicLinkVpcSecurityGroups *[]*string `json:"classicLinkVpcSecurityGroups"` // `AWS::AutoScaling::LaunchConfiguration.EbsOptimized`. EbsOptimized interface{} `json:"ebsOptimized"` // `AWS::AutoScaling::LaunchConfiguration.IamInstanceProfile`. IamInstanceProfile *string `json:"iamInstanceProfile"` // `AWS::AutoScaling::LaunchConfiguration.InstanceId`. InstanceId *string `json:"instanceId"` // `AWS::AutoScaling::LaunchConfiguration.InstanceMonitoring`. InstanceMonitoring interface{} `json:"instanceMonitoring"` // `AWS::AutoScaling::LaunchConfiguration.KernelId`. KernelId *string `json:"kernelId"` // `AWS::AutoScaling::LaunchConfiguration.KeyName`. KeyName *string `json:"keyName"` // `AWS::AutoScaling::LaunchConfiguration.LaunchConfigurationName`. LaunchConfigurationName *string `json:"launchConfigurationName"` // `AWS::AutoScaling::LaunchConfiguration.MetadataOptions`. MetadataOptions interface{} `json:"metadataOptions"` // `AWS::AutoScaling::LaunchConfiguration.PlacementTenancy`. PlacementTenancy *string `json:"placementTenancy"` // `AWS::AutoScaling::LaunchConfiguration.RamDiskId`. RamDiskId *string `json:"ramDiskId"` // `AWS::AutoScaling::LaunchConfiguration.SecurityGroups`. SecurityGroups *[]*string `json:"securityGroups"` // `AWS::AutoScaling::LaunchConfiguration.SpotPrice`. SpotPrice *string `json:"spotPrice"` // `AWS::AutoScaling::LaunchConfiguration.UserData`. UserData *string `json:"userData"` }
Properties for defining a `AWS::AutoScaling::LaunchConfiguration`.
type CfnLaunchConfiguration_BlockDeviceMappingProperty ¶
type CfnLaunchConfiguration_BlockDeviceMappingProperty struct { // `CfnLaunchConfiguration.BlockDeviceMappingProperty.DeviceName`. DeviceName *string `json:"deviceName"` // `CfnLaunchConfiguration.BlockDeviceMappingProperty.Ebs`. Ebs interface{} `json:"ebs"` // `CfnLaunchConfiguration.BlockDeviceMappingProperty.NoDevice`. NoDevice interface{} `json:"noDevice"` // `CfnLaunchConfiguration.BlockDeviceMappingProperty.VirtualName`. VirtualName *string `json:"virtualName"` }
type CfnLaunchConfiguration_BlockDeviceProperty ¶
type CfnLaunchConfiguration_BlockDeviceProperty struct { // `CfnLaunchConfiguration.BlockDeviceProperty.DeleteOnTermination`. DeleteOnTermination interface{} `json:"deleteOnTermination"` // `CfnLaunchConfiguration.BlockDeviceProperty.Encrypted`. Encrypted interface{} `json:"encrypted"` // `CfnLaunchConfiguration.BlockDeviceProperty.Iops`. Iops *float64 `json:"iops"` // `CfnLaunchConfiguration.BlockDeviceProperty.SnapshotId`. SnapshotId *string `json:"snapshotId"` // `CfnLaunchConfiguration.BlockDeviceProperty.Throughput`. Throughput *float64 `json:"throughput"` // `CfnLaunchConfiguration.BlockDeviceProperty.VolumeSize`. VolumeSize *float64 `json:"volumeSize"` // `CfnLaunchConfiguration.BlockDeviceProperty.VolumeType`. VolumeType *string `json:"volumeType"` }
type CfnLaunchConfiguration_MetadataOptionsProperty ¶
type CfnLaunchConfiguration_MetadataOptionsProperty struct { // `CfnLaunchConfiguration.MetadataOptionsProperty.HttpEndpoint`. HttpEndpoint *string `json:"httpEndpoint"` // `CfnLaunchConfiguration.MetadataOptionsProperty.HttpPutResponseHopLimit`. HttpPutResponseHopLimit *float64 `json:"httpPutResponseHopLimit"` // `CfnLaunchConfiguration.MetadataOptionsProperty.HttpTokens`. HttpTokens *string `json:"httpTokens"` }
type CfnLifecycleHook ¶
type CfnLifecycleHook interface { awscdk.CfnResource awscdk.IInspectable AutoScalingGroupName() *string SetAutoScalingGroupName(val *string) CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} CfnResourceType() *string CreationStack() *[]*string DefaultResult() *string SetDefaultResult(val *string) HeartbeatTimeout() *float64 SetHeartbeatTimeout(val *float64) LifecycleHookName() *string SetLifecycleHookName(val *string) LifecycleTransition() *string SetLifecycleTransition(val *string) LogicalId() *string Node() constructs.Node NotificationMetadata() *string SetNotificationMetadata(val *string) NotificationTargetArn() *string SetNotificationTargetArn(val *string) Ref() *string RoleArn() *string SetRoleArn(val *string) Stack() awscdk.Stack UpdatedProperites() *map[string]interface{} AddDeletionOverride(path *string) AddDependsOn(target awscdk.CfnResource) AddMetadata(key *string, value interface{}) AddOverride(path *string, value interface{}) AddPropertyDeletionOverride(propertyPath *string) AddPropertyOverride(propertyPath *string, value interface{}) ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) GetAtt(attributeName *string) awscdk.Reference GetMetadata(key *string) interface{} Inspect(inspector awscdk.TreeInspector) OverrideLogicalId(newLogicalId *string) RenderProperties(props *map[string]interface{}) *map[string]interface{} ShouldSynthesize() *bool ToString() *string ValidateProperties(_properties interface{}) }
A CloudFormation `AWS::AutoScaling::LifecycleHook`.
func NewCfnLifecycleHook ¶
func NewCfnLifecycleHook(scope constructs.Construct, id *string, props *CfnLifecycleHookProps) CfnLifecycleHook
Create a new `AWS::AutoScaling::LifecycleHook`.
type CfnLifecycleHookProps ¶
type CfnLifecycleHookProps struct { // `AWS::AutoScaling::LifecycleHook.AutoScalingGroupName`. AutoScalingGroupName *string `json:"autoScalingGroupName"` // `AWS::AutoScaling::LifecycleHook.LifecycleTransition`. LifecycleTransition *string `json:"lifecycleTransition"` // `AWS::AutoScaling::LifecycleHook.DefaultResult`. DefaultResult *string `json:"defaultResult"` // `AWS::AutoScaling::LifecycleHook.HeartbeatTimeout`. HeartbeatTimeout *float64 `json:"heartbeatTimeout"` // `AWS::AutoScaling::LifecycleHook.LifecycleHookName`. LifecycleHookName *string `json:"lifecycleHookName"` // `AWS::AutoScaling::LifecycleHook.NotificationMetadata`. NotificationMetadata *string `json:"notificationMetadata"` // `AWS::AutoScaling::LifecycleHook.NotificationTargetARN`. NotificationTargetArn *string `json:"notificationTargetArn"` // `AWS::AutoScaling::LifecycleHook.RoleARN`. RoleArn *string `json:"roleArn"` }
Properties for defining a `AWS::AutoScaling::LifecycleHook`.
type CfnScalingPolicy ¶
type CfnScalingPolicy interface { awscdk.CfnResource awscdk.IInspectable AdjustmentType() *string SetAdjustmentType(val *string) AutoScalingGroupName() *string SetAutoScalingGroupName(val *string) CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} CfnResourceType() *string Cooldown() *string SetCooldown(val *string) CreationStack() *[]*string EstimatedInstanceWarmup() *float64 SetEstimatedInstanceWarmup(val *float64) LogicalId() *string MetricAggregationType() *string SetMetricAggregationType(val *string) MinAdjustmentMagnitude() *float64 SetMinAdjustmentMagnitude(val *float64) Node() constructs.Node PolicyType() *string SetPolicyType(val *string) PredictiveScalingConfiguration() interface{} SetPredictiveScalingConfiguration(val interface{}) Ref() *string ScalingAdjustment() *float64 SetScalingAdjustment(val *float64) Stack() awscdk.Stack StepAdjustments() interface{} SetStepAdjustments(val interface{}) TargetTrackingConfiguration() interface{} SetTargetTrackingConfiguration(val interface{}) UpdatedProperites() *map[string]interface{} AddDeletionOverride(path *string) AddDependsOn(target awscdk.CfnResource) AddMetadata(key *string, value interface{}) AddOverride(path *string, value interface{}) AddPropertyDeletionOverride(propertyPath *string) AddPropertyOverride(propertyPath *string, value interface{}) ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) GetAtt(attributeName *string) awscdk.Reference GetMetadata(key *string) interface{} Inspect(inspector awscdk.TreeInspector) OverrideLogicalId(newLogicalId *string) RenderProperties(props *map[string]interface{}) *map[string]interface{} ShouldSynthesize() *bool ToString() *string ValidateProperties(_properties interface{}) }
A CloudFormation `AWS::AutoScaling::ScalingPolicy`.
func NewCfnScalingPolicy ¶
func NewCfnScalingPolicy(scope constructs.Construct, id *string, props *CfnScalingPolicyProps) CfnScalingPolicy
Create a new `AWS::AutoScaling::ScalingPolicy`.
type CfnScalingPolicyProps ¶
type CfnScalingPolicyProps struct { // `AWS::AutoScaling::ScalingPolicy.AutoScalingGroupName`. AutoScalingGroupName *string `json:"autoScalingGroupName"` // `AWS::AutoScaling::ScalingPolicy.AdjustmentType`. AdjustmentType *string `json:"adjustmentType"` // `AWS::AutoScaling::ScalingPolicy.Cooldown`. Cooldown *string `json:"cooldown"` // `AWS::AutoScaling::ScalingPolicy.EstimatedInstanceWarmup`. EstimatedInstanceWarmup *float64 `json:"estimatedInstanceWarmup"` // `AWS::AutoScaling::ScalingPolicy.MetricAggregationType`. MetricAggregationType *string `json:"metricAggregationType"` // `AWS::AutoScaling::ScalingPolicy.MinAdjustmentMagnitude`. MinAdjustmentMagnitude *float64 `json:"minAdjustmentMagnitude"` // `AWS::AutoScaling::ScalingPolicy.PolicyType`. PolicyType *string `json:"policyType"` // `AWS::AutoScaling::ScalingPolicy.PredictiveScalingConfiguration`. PredictiveScalingConfiguration interface{} `json:"predictiveScalingConfiguration"` // `AWS::AutoScaling::ScalingPolicy.ScalingAdjustment`. ScalingAdjustment *float64 `json:"scalingAdjustment"` // `AWS::AutoScaling::ScalingPolicy.StepAdjustments`. StepAdjustments interface{} `json:"stepAdjustments"` // `AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration`. TargetTrackingConfiguration interface{} `json:"targetTrackingConfiguration"` }
Properties for defining a `AWS::AutoScaling::ScalingPolicy`.
type CfnScalingPolicy_CustomizedMetricSpecificationProperty ¶
type CfnScalingPolicy_CustomizedMetricSpecificationProperty struct { // `CfnScalingPolicy.CustomizedMetricSpecificationProperty.MetricName`. MetricName *string `json:"metricName"` // `CfnScalingPolicy.CustomizedMetricSpecificationProperty.Namespace`. Namespace *string `json:"namespace"` // `CfnScalingPolicy.CustomizedMetricSpecificationProperty.Statistic`. Statistic *string `json:"statistic"` // `CfnScalingPolicy.CustomizedMetricSpecificationProperty.Dimensions`. Dimensions interface{} `json:"dimensions"` // `CfnScalingPolicy.CustomizedMetricSpecificationProperty.Unit`. Unit *string `json:"unit"` }
type CfnScalingPolicy_PredefinedMetricSpecificationProperty ¶
type CfnScalingPolicy_PredefinedMetricSpecificationProperty struct { // `CfnScalingPolicy.PredefinedMetricSpecificationProperty.PredefinedMetricType`. PredefinedMetricType *string `json:"predefinedMetricType"` // `CfnScalingPolicy.PredefinedMetricSpecificationProperty.ResourceLabel`. ResourceLabel *string `json:"resourceLabel"` }
type CfnScalingPolicy_PredictiveScalingConfigurationProperty ¶
type CfnScalingPolicy_PredictiveScalingConfigurationProperty struct { // `CfnScalingPolicy.PredictiveScalingConfigurationProperty.MetricSpecifications`. MetricSpecifications interface{} `json:"metricSpecifications"` // `CfnScalingPolicy.PredictiveScalingConfigurationProperty.MaxCapacityBreachBehavior`. MaxCapacityBreachBehavior *string `json:"maxCapacityBreachBehavior"` // `CfnScalingPolicy.PredictiveScalingConfigurationProperty.MaxCapacityBuffer`. MaxCapacityBuffer *float64 `json:"maxCapacityBuffer"` // `CfnScalingPolicy.PredictiveScalingConfigurationProperty.Mode`. Mode *string `json:"mode"` // `CfnScalingPolicy.PredictiveScalingConfigurationProperty.SchedulingBufferTime`. SchedulingBufferTime *float64 `json:"schedulingBufferTime"` }
type CfnScalingPolicy_PredictiveScalingMetricSpecificationProperty ¶
type CfnScalingPolicy_PredictiveScalingMetricSpecificationProperty struct { // `CfnScalingPolicy.PredictiveScalingMetricSpecificationProperty.TargetValue`. TargetValue *float64 `json:"targetValue"` // `CfnScalingPolicy.PredictiveScalingMetricSpecificationProperty.PredefinedLoadMetricSpecification`. PredefinedLoadMetricSpecification interface{} `json:"predefinedLoadMetricSpecification"` // `CfnScalingPolicy.PredictiveScalingMetricSpecificationProperty.PredefinedMetricPairSpecification`. PredefinedMetricPairSpecification interface{} `json:"predefinedMetricPairSpecification"` // `CfnScalingPolicy.PredictiveScalingMetricSpecificationProperty.PredefinedScalingMetricSpecification`. PredefinedScalingMetricSpecification interface{} `json:"predefinedScalingMetricSpecification"` }
type CfnScalingPolicy_PredictiveScalingPredefinedLoadMetricProperty ¶
type CfnScalingPolicy_PredictiveScalingPredefinedLoadMetricProperty struct { // `CfnScalingPolicy.PredictiveScalingPredefinedLoadMetricProperty.PredefinedMetricType`. PredefinedMetricType *string `json:"predefinedMetricType"` // `CfnScalingPolicy.PredictiveScalingPredefinedLoadMetricProperty.ResourceLabel`. ResourceLabel *string `json:"resourceLabel"` }
type CfnScalingPolicy_PredictiveScalingPredefinedMetricPairProperty ¶
type CfnScalingPolicy_PredictiveScalingPredefinedMetricPairProperty struct { // `CfnScalingPolicy.PredictiveScalingPredefinedMetricPairProperty.PredefinedMetricType`. PredefinedMetricType *string `json:"predefinedMetricType"` // `CfnScalingPolicy.PredictiveScalingPredefinedMetricPairProperty.ResourceLabel`. ResourceLabel *string `json:"resourceLabel"` }
type CfnScalingPolicy_PredictiveScalingPredefinedScalingMetricProperty ¶
type CfnScalingPolicy_PredictiveScalingPredefinedScalingMetricProperty struct { // `CfnScalingPolicy.PredictiveScalingPredefinedScalingMetricProperty.PredefinedMetricType`. PredefinedMetricType *string `json:"predefinedMetricType"` // `CfnScalingPolicy.PredictiveScalingPredefinedScalingMetricProperty.ResourceLabel`. ResourceLabel *string `json:"resourceLabel"` }
type CfnScalingPolicy_StepAdjustmentProperty ¶
type CfnScalingPolicy_StepAdjustmentProperty struct { // `CfnScalingPolicy.StepAdjustmentProperty.ScalingAdjustment`. ScalingAdjustment *float64 `json:"scalingAdjustment"` // `CfnScalingPolicy.StepAdjustmentProperty.MetricIntervalLowerBound`. MetricIntervalLowerBound *float64 `json:"metricIntervalLowerBound"` // `CfnScalingPolicy.StepAdjustmentProperty.MetricIntervalUpperBound`. MetricIntervalUpperBound *float64 `json:"metricIntervalUpperBound"` }
type CfnScalingPolicy_TargetTrackingConfigurationProperty ¶
type CfnScalingPolicy_TargetTrackingConfigurationProperty struct { // `CfnScalingPolicy.TargetTrackingConfigurationProperty.TargetValue`. TargetValue *float64 `json:"targetValue"` // `CfnScalingPolicy.TargetTrackingConfigurationProperty.CustomizedMetricSpecification`. CustomizedMetricSpecification interface{} `json:"customizedMetricSpecification"` // `CfnScalingPolicy.TargetTrackingConfigurationProperty.DisableScaleIn`. DisableScaleIn interface{} `json:"disableScaleIn"` // `CfnScalingPolicy.TargetTrackingConfigurationProperty.PredefinedMetricSpecification`. PredefinedMetricSpecification interface{} `json:"predefinedMetricSpecification"` }
type CfnScheduledAction ¶
type CfnScheduledAction interface { awscdk.CfnResource awscdk.IInspectable AutoScalingGroupName() *string SetAutoScalingGroupName(val *string) CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} CfnResourceType() *string CreationStack() *[]*string DesiredCapacity() *float64 SetDesiredCapacity(val *float64) EndTime() *string SetEndTime(val *string) LogicalId() *string MaxSize() *float64 SetMaxSize(val *float64) MinSize() *float64 SetMinSize(val *float64) Node() constructs.Node Recurrence() *string SetRecurrence(val *string) Ref() *string Stack() awscdk.Stack StartTime() *string SetStartTime(val *string) TimeZone() *string SetTimeZone(val *string) UpdatedProperites() *map[string]interface{} AddDeletionOverride(path *string) AddDependsOn(target awscdk.CfnResource) AddMetadata(key *string, value interface{}) AddOverride(path *string, value interface{}) AddPropertyDeletionOverride(propertyPath *string) AddPropertyOverride(propertyPath *string, value interface{}) ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) GetAtt(attributeName *string) awscdk.Reference GetMetadata(key *string) interface{} Inspect(inspector awscdk.TreeInspector) OverrideLogicalId(newLogicalId *string) RenderProperties(props *map[string]interface{}) *map[string]interface{} ShouldSynthesize() *bool ToString() *string ValidateProperties(_properties interface{}) }
A CloudFormation `AWS::AutoScaling::ScheduledAction`.
func NewCfnScheduledAction ¶
func NewCfnScheduledAction(scope constructs.Construct, id *string, props *CfnScheduledActionProps) CfnScheduledAction
Create a new `AWS::AutoScaling::ScheduledAction`.
type CfnScheduledActionProps ¶
type CfnScheduledActionProps struct { // `AWS::AutoScaling::ScheduledAction.AutoScalingGroupName`. AutoScalingGroupName *string `json:"autoScalingGroupName"` // `AWS::AutoScaling::ScheduledAction.DesiredCapacity`. DesiredCapacity *float64 `json:"desiredCapacity"` // `AWS::AutoScaling::ScheduledAction.EndTime`. EndTime *string `json:"endTime"` // `AWS::AutoScaling::ScheduledAction.MaxSize`. MaxSize *float64 `json:"maxSize"` // `AWS::AutoScaling::ScheduledAction.MinSize`. MinSize *float64 `json:"minSize"` // `AWS::AutoScaling::ScheduledAction.Recurrence`. Recurrence *string `json:"recurrence"` // `AWS::AutoScaling::ScheduledAction.StartTime`. StartTime *string `json:"startTime"` // `AWS::AutoScaling::ScheduledAction.TimeZone`. TimeZone *string `json:"timeZone"` }
Properties for defining a `AWS::AutoScaling::ScheduledAction`.
type CfnWarmPool ¶
type CfnWarmPool interface { awscdk.CfnResource awscdk.IInspectable AutoScalingGroupName() *string SetAutoScalingGroupName(val *string) CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} CfnResourceType() *string CreationStack() *[]*string LogicalId() *string MaxGroupPreparedCapacity() *float64 SetMaxGroupPreparedCapacity(val *float64) MinSize() *float64 SetMinSize(val *float64) Node() constructs.Node PoolState() *string SetPoolState(val *string) Ref() *string Stack() awscdk.Stack UpdatedProperites() *map[string]interface{} AddDeletionOverride(path *string) AddDependsOn(target awscdk.CfnResource) AddMetadata(key *string, value interface{}) AddOverride(path *string, value interface{}) AddPropertyDeletionOverride(propertyPath *string) AddPropertyOverride(propertyPath *string, value interface{}) ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) GetAtt(attributeName *string) awscdk.Reference GetMetadata(key *string) interface{} Inspect(inspector awscdk.TreeInspector) OverrideLogicalId(newLogicalId *string) RenderProperties(props *map[string]interface{}) *map[string]interface{} ShouldSynthesize() *bool ToString() *string ValidateProperties(_properties interface{}) }
A CloudFormation `AWS::AutoScaling::WarmPool`.
func NewCfnWarmPool ¶
func NewCfnWarmPool(scope constructs.Construct, id *string, props *CfnWarmPoolProps) CfnWarmPool
Create a new `AWS::AutoScaling::WarmPool`.
type CfnWarmPoolProps ¶
type CfnWarmPoolProps struct { // `AWS::AutoScaling::WarmPool.AutoScalingGroupName`. AutoScalingGroupName *string `json:"autoScalingGroupName"` // `AWS::AutoScaling::WarmPool.MaxGroupPreparedCapacity`. MaxGroupPreparedCapacity *float64 `json:"maxGroupPreparedCapacity"` // `AWS::AutoScaling::WarmPool.MinSize`. MinSize *float64 `json:"minSize"` // `AWS::AutoScaling::WarmPool.PoolState`. PoolState *string `json:"poolState"` }
Properties for defining a `AWS::AutoScaling::WarmPool`.
type CommonAutoScalingGroupProps ¶
type CommonAutoScalingGroupProps struct { // Whether the instances can initiate connections to anywhere by default. // Experimental. AllowAllOutbound *bool `json:"allowAllOutbound"` // Whether instances in the Auto Scaling Group should have public IP addresses associated with them. // Experimental. AssociatePublicIpAddress *bool `json:"associatePublicIpAddress"` // The name of the Auto Scaling group. // // This name must be unique per Region per account. // Experimental. AutoScalingGroupName *string `json:"autoScalingGroupName"` // Specifies how block devices are exposed to the instance. You can specify virtual devices and EBS volumes. // // Each instance that is launched has an associated root device volume, // either an Amazon EBS volume or an instance store volume. // You can use block device mappings to specify additional EBS volumes or // instance store volumes to attach to an instance when it is launched. // See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html // // Experimental. BlockDevices *[]*BlockDevice `json:"blockDevices"` // Default scaling cooldown for this AutoScalingGroup. // Experimental. Cooldown awscdk.Duration `json:"cooldown"` // Initial amount of instances in the fleet. // // If this is set to a number, every deployment will reset the amount of // instances to this number. It is recommended to leave this value blank. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-desiredcapacity // // Experimental. DesiredCapacity *float64 `json:"desiredCapacity"` // Enable monitoring for group metrics, these metrics describe the group rather than any of its instances. // // To report all group metrics use `GroupMetrics.all()` // Group metrics are reported in a granularity of 1 minute at no additional charge. // Experimental. GroupMetrics *[]GroupMetrics `json:"groupMetrics"` // Configuration for health checks. // Experimental. HealthCheck HealthCheck `json:"healthCheck"` // If the ASG has scheduled actions, don't reset unchanged group sizes. // // Only used if the ASG has scheduled actions (which may scale your ASG up // or down regardless of cdk deployments). If true, the size of the group // will only be reset if it has been changed in the CDK app. If false, the // sizes will always be changed back to what they were in the CDK app // on deployment. // Experimental. IgnoreUnmodifiedSizeProperties *bool `json:"ignoreUnmodifiedSizeProperties"` // Controls whether instances in this group are launched with detailed or basic monitoring. // // When detailed monitoring is enabled, Amazon CloudWatch generates metrics every minute and your account // is charged a fee. When you disable detailed monitoring, CloudWatch generates metrics every 5 minutes. // See: https://docs.aws.amazon.com/autoscaling/latest/userguide/as-instance-monitoring.html#enable-as-instance-metrics // // Experimental. InstanceMonitoring Monitoring `json:"instanceMonitoring"` // Name of SSH keypair to grant access to instances. // Experimental. KeyName *string `json:"keyName"` // Maximum number of instances in the fleet. // Experimental. MaxCapacity *float64 `json:"maxCapacity"` // 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 604,800 seconds (7 days). To clear a previously set value, // leave this property undefined. // See: https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-max-instance-lifetime.html // // Experimental. MaxInstanceLifetime awscdk.Duration `json:"maxInstanceLifetime"` // Minimum number of instances in the fleet. // Experimental. MinCapacity *float64 `json:"minCapacity"` // 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. // Experimental. NewInstancesProtectedFromScaleIn *bool `json:"newInstancesProtectedFromScaleIn"` // Configure autoscaling group to send notifications about fleet changes to an SNS topic(s). // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-notificationconfigurations // // Experimental. Notifications *[]*NotificationConfiguration `json:"notifications"` // Configure waiting for signals during deployment. // // Use this to pause the CloudFormation deployment to wait for the instances // in the AutoScalingGroup to report successful startup during // creation and updates. The UserData script needs to invoke `cfn-signal` // with a success or failure code after it is done setting up the instance. // // Without waiting for signals, the CloudFormation deployment will proceed as // soon as the AutoScalingGroup has been created or updated but before the // instances in the group have been started. // // For example, to have instances wait for an Elastic Load Balancing health check before // they signal success, add a health-check verification by using the // cfn-init helper script. For an example, see the verify_instance_health // command in the Auto Scaling rolling updates sample template: // // https://github.com/awslabs/aws-cloudformation-templates/blob/master/aws/services/AutoScaling/AutoScalingRollingUpdates.yaml // Experimental. Signals Signals `json:"signals"` // The maximum hourly price (in USD) to be paid for any Spot Instance launched to fulfill the request. // // Spot Instances are // launched when the price you specify exceeds the current Spot market price. // Experimental. SpotPrice *string `json:"spotPrice"` // What to do when an AutoScalingGroup's instance configuration is changed. // // This is applied when any of the settings on the ASG are changed that // affect how the instances should be created (VPC, instance type, startup // scripts, etc.). It indicates how the existing instances should be // replaced with new instances matching the new config. By default, nothing // is done and only new instances are launched with the new config. // Experimental. UpdatePolicy UpdatePolicy `json:"updatePolicy"` // Where to place instances within the VPC. // Experimental. VpcSubnets *awsec2.SubnetSelection `json:"vpcSubnets"` }
Basic properties of an AutoScalingGroup, except the exact machines to run and where they should run.
Constructs that want to create AutoScalingGroups can inherit this interface and specialize the essential parts in various ways. Experimental.
type CpuUtilizationScalingProps ¶
type CpuUtilizationScalingProps struct { // Period after a scaling completes before another scaling activity can start. // Experimental. Cooldown awscdk.Duration `json:"cooldown"` // Indicates whether scale in by the target tracking policy is disabled. // // If the value is true, scale in is disabled and the target tracking policy // won't remove capacity from the autoscaling group. Otherwise, scale in is // enabled and the target tracking policy can remove capacity from the // group. // Experimental. DisableScaleIn *bool `json:"disableScaleIn"` // Estimated time until a newly launched instance can send metrics to CloudWatch. // Experimental. EstimatedInstanceWarmup awscdk.Duration `json:"estimatedInstanceWarmup"` // Target average CPU utilization across the task. // Experimental. TargetUtilizationPercent *float64 `json:"targetUtilizationPercent"` }
Properties for enabling scaling based on CPU utilization. Experimental.
type CronOptions ¶
type CronOptions struct { // The day of the month to run this rule at. // Experimental. Day *string `json:"day"` // The hour to run this rule at. // Experimental. Hour *string `json:"hour"` // The minute to run this rule at. // Experimental. Minute *string `json:"minute"` // The month to run this rule at. // Experimental. Month *string `json:"month"` // The day of the week to run this rule at. // Experimental. WeekDay *string `json:"weekDay"` }
Options to configure a cron expression.
All fields are strings so you can use complex expressions. Absence of a field implies '*' or '?', whichever one is appropriate. See: http://crontab.org/
Experimental.
type DefaultResult ¶
type DefaultResult string
Experimental.
const ( DefaultResult_CONTINUE DefaultResult = "CONTINUE" DefaultResult_ABANDON DefaultResult = "ABANDON" )
type EbsDeviceOptions ¶
type EbsDeviceOptions struct { // Indicates whether to delete the volume when the instance is terminated. // Experimental. DeleteOnTermination *bool `json:"deleteOnTermination"` // The number of I/O operations per second (IOPS) to provision for the volume. // // Must only be set for {@link volumeType}: {@link EbsDeviceVolumeType.IO1} // // The maximum ratio of IOPS to volume size (in GiB) is 50:1, so for 5,000 provisioned IOPS, // you need at least 100 GiB storage on the volume. // See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html // // Experimental. Iops *float64 `json:"iops"` // The EBS volume type. // See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html // // Experimental. VolumeType EbsDeviceVolumeType `json:"volumeType"` // Specifies whether the EBS volume is encrypted. // // Encrypted EBS volumes can only be attached to instances that support Amazon EBS encryption // See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances // // Experimental. Encrypted *bool `json:"encrypted"` }
Block device options for an EBS volume. Experimental.
type EbsDeviceOptionsBase ¶
type EbsDeviceOptionsBase struct { // Indicates whether to delete the volume when the instance is terminated. // Experimental. DeleteOnTermination *bool `json:"deleteOnTermination"` // The number of I/O operations per second (IOPS) to provision for the volume. // // Must only be set for {@link volumeType}: {@link EbsDeviceVolumeType.IO1} // // The maximum ratio of IOPS to volume size (in GiB) is 50:1, so for 5,000 provisioned IOPS, // you need at least 100 GiB storage on the volume. // See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html // // Experimental. Iops *float64 `json:"iops"` // The EBS volume type. // See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html // // Experimental. VolumeType EbsDeviceVolumeType `json:"volumeType"` }
Base block device options for an EBS volume. Experimental.
type EbsDeviceProps ¶
type EbsDeviceProps struct { // Indicates whether to delete the volume when the instance is terminated. // Experimental. DeleteOnTermination *bool `json:"deleteOnTermination"` // The number of I/O operations per second (IOPS) to provision for the volume. // // Must only be set for {@link volumeType}: {@link EbsDeviceVolumeType.IO1} // // The maximum ratio of IOPS to volume size (in GiB) is 50:1, so for 5,000 provisioned IOPS, // you need at least 100 GiB storage on the volume. // See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html // // Experimental. Iops *float64 `json:"iops"` // The EBS volume type. // See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html // // Experimental. VolumeType EbsDeviceVolumeType `json:"volumeType"` // The volume size, in Gibibytes (GiB). // // If you specify volumeSize, it must be equal or greater than the size of the snapshot. // Experimental. VolumeSize *float64 `json:"volumeSize"` // The snapshot ID of the volume to use. // Experimental. SnapshotId *string `json:"snapshotId"` }
Properties of an EBS block device. Experimental.
type EbsDeviceSnapshotOptions ¶
type EbsDeviceSnapshotOptions struct { // Indicates whether to delete the volume when the instance is terminated. // Experimental. DeleteOnTermination *bool `json:"deleteOnTermination"` // The number of I/O operations per second (IOPS) to provision for the volume. // // Must only be set for {@link volumeType}: {@link EbsDeviceVolumeType.IO1} // // The maximum ratio of IOPS to volume size (in GiB) is 50:1, so for 5,000 provisioned IOPS, // you need at least 100 GiB storage on the volume. // See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html // // Experimental. Iops *float64 `json:"iops"` // The EBS volume type. // See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html // // Experimental. VolumeType EbsDeviceVolumeType `json:"volumeType"` // The volume size, in Gibibytes (GiB). // // If you specify volumeSize, it must be equal or greater than the size of the snapshot. // Experimental. VolumeSize *float64 `json:"volumeSize"` }
Block device options for an EBS volume created from a snapshot. Experimental.
type EbsDeviceVolumeType ¶
type EbsDeviceVolumeType string
Supported EBS volume types for blockDevices. Experimental.
const ( EbsDeviceVolumeType_STANDARD EbsDeviceVolumeType = "STANDARD" EbsDeviceVolumeType_IO1 EbsDeviceVolumeType = "IO1" EbsDeviceVolumeType_IO2 EbsDeviceVolumeType = "IO2" EbsDeviceVolumeType_GP2 EbsDeviceVolumeType = "GP2" EbsDeviceVolumeType_GP3 EbsDeviceVolumeType = "GP3" EbsDeviceVolumeType_ST1 EbsDeviceVolumeType = "ST1" EbsDeviceVolumeType_SC1 EbsDeviceVolumeType = "SC1" )
type Ec2HealthCheckOptions ¶
type Ec2HealthCheckOptions struct { // Specified the time Auto Scaling waits before checking the health status of an EC2 instance that has come into service. // Experimental. Grace awscdk.Duration `json:"grace"` }
EC2 Heath check options. Experimental.
type ElbHealthCheckOptions ¶
type ElbHealthCheckOptions struct { // Specified the time Auto Scaling waits before checking the health status of an EC2 instance that has come into service. // // This option is required for ELB health checks. // Experimental. Grace awscdk.Duration `json:"grace"` }
ELB Heath check options. Experimental.
type GroupMetric ¶
type GroupMetric interface {
Name() *string
}
Group metrics that an Auto Scaling group sends to Amazon CloudWatch. Experimental.
func GroupMetric_DESIRED_CAPACITY ¶
func GroupMetric_DESIRED_CAPACITY() GroupMetric
func GroupMetric_IN_SERVICE_INSTANCES ¶
func GroupMetric_IN_SERVICE_INSTANCES() GroupMetric
func GroupMetric_MAX_SIZE ¶
func GroupMetric_MAX_SIZE() GroupMetric
func GroupMetric_MIN_SIZE ¶
func GroupMetric_MIN_SIZE() GroupMetric
func GroupMetric_PENDING_INSTANCES ¶
func GroupMetric_PENDING_INSTANCES() GroupMetric
func GroupMetric_STANDBY_INSTANCES ¶
func GroupMetric_STANDBY_INSTANCES() GroupMetric
func GroupMetric_TERMINATING_INSTANCES ¶
func GroupMetric_TERMINATING_INSTANCES() GroupMetric
func GroupMetric_TOTAL_INSTANCES ¶
func GroupMetric_TOTAL_INSTANCES() GroupMetric
type GroupMetrics ¶
type GroupMetrics interface { }
A set of group metrics. Experimental.
func GroupMetrics_All ¶
func GroupMetrics_All() GroupMetrics
Report all group metrics. Experimental.
type HealthCheck ¶
type HealthCheck interface { GracePeriod() awscdk.Duration Type() *string }
Health check settings. Experimental.
func HealthCheck_Ec2 ¶
func HealthCheck_Ec2(options *Ec2HealthCheckOptions) HealthCheck
Use EC2 for health checks. Experimental.
func HealthCheck_Elb ¶
func HealthCheck_Elb(options *ElbHealthCheckOptions) HealthCheck
Use ELB for health checks.
It considers the instance unhealthy if it fails either the EC2 status checks or the load balancer health checks. Experimental.
type IAutoScalingGroup ¶
type IAutoScalingGroup interface { awsiam.IGrantable awscdk.IResource // Send a message to either an SQS queue or SNS topic when instances launch or terminate. // Experimental. AddLifecycleHook(id *string, props *BasicLifecycleHookProps) LifecycleHook // Add command to the startup script of fleet instances. // // The command must be in the scripting language supported by the fleet's OS (i.e. Linux/Windows). // Does nothing for imported ASGs. // Experimental. AddUserData(commands ...*string) // Scale out or in to achieve a target CPU utilization. // Experimental. ScaleOnCpuUtilization(id *string, props *CpuUtilizationScalingProps) TargetTrackingScalingPolicy // Scale out or in to achieve a target network ingress rate. // Experimental. ScaleOnIncomingBytes(id *string, props *NetworkUtilizationScalingProps) TargetTrackingScalingPolicy // Scale out or in, in response to a metric. // Experimental. ScaleOnMetric(id *string, props *BasicStepScalingPolicyProps) StepScalingPolicy // Scale out or in to achieve a target network egress rate. // Experimental. ScaleOnOutgoingBytes(id *string, props *NetworkUtilizationScalingProps) TargetTrackingScalingPolicy // Scale out or in based on time. // Experimental. ScaleOnSchedule(id *string, props *BasicScheduledActionProps) ScheduledAction // Scale out or in in order to keep a metric around a target value. // Experimental. ScaleToTrackMetric(id *string, props *MetricTargetTrackingProps) TargetTrackingScalingPolicy // The arn of the AutoScalingGroup. // Experimental. AutoScalingGroupArn() *string // The name of the AutoScalingGroup. // Experimental. AutoScalingGroupName() *string // The operating system family that the instances in this auto-scaling group belong to. // // Is 'UNKNOWN' for imported ASGs. // Experimental. OsType() awsec2.OperatingSystemType }
An AutoScalingGroup. Experimental.
func AutoScalingGroup_FromAutoScalingGroupName ¶
func AutoScalingGroup_FromAutoScalingGroupName(scope constructs.Construct, id *string, autoScalingGroupName *string) IAutoScalingGroup
Experimental.
type ILifecycleHook ¶
type ILifecycleHook interface { awscdk.IResource // The role for the lifecycle hook to execute. // Experimental. Role() awsiam.IRole }
A basic lifecycle hook object. Experimental.
type ILifecycleHookTarget ¶
type ILifecycleHookTarget interface { // Called when this object is used as the target of a lifecycle hook. // Experimental. Bind(scope constructs.Construct, lifecycleHook ILifecycleHook) *LifecycleHookTargetConfig }
Interface for autoscaling lifecycle hook targets. Experimental.
type LifecycleHook ¶
type LifecycleHook interface { awscdk.Resource ILifecycleHook Env() *awscdk.ResourceEnvironment LifecycleHookName() *string Node() constructs.Node PhysicalName() *string Role() awsiam.IRole Stack() awscdk.Stack ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string GetResourceNameAttribute(nameAttr *string) *string ToString() *string }
Define a life cycle hook. Experimental.
func NewLifecycleHook ¶
func NewLifecycleHook(scope constructs.Construct, id *string, props *LifecycleHookProps) LifecycleHook
Experimental.
type LifecycleHookProps ¶
type LifecycleHookProps struct { // The state of the Amazon EC2 instance to which you want to attach the lifecycle hook. // Experimental. LifecycleTransition LifecycleTransition `json:"lifecycleTransition"` // The target of the lifecycle hook. // Experimental. NotificationTarget ILifecycleHookTarget `json:"notificationTarget"` // The action the Auto Scaling group takes when the lifecycle hook timeout elapses or if an unexpected failure occurs. // Experimental. DefaultResult DefaultResult `json:"defaultResult"` // Maximum time between calls to RecordLifecycleActionHeartbeat for the hook. // // If the lifecycle hook times out, perform the action in DefaultResult. // Experimental. HeartbeatTimeout awscdk.Duration `json:"heartbeatTimeout"` // Name of the lifecycle hook. // Experimental. LifecycleHookName *string `json:"lifecycleHookName"` // Additional data to pass to the lifecycle hook target. // Experimental. NotificationMetadata *string `json:"notificationMetadata"` // The role that allows publishing to the notification target. // Experimental. Role awsiam.IRole `json:"role"` // The AutoScalingGroup to add the lifecycle hook to. // Experimental. AutoScalingGroup IAutoScalingGroup `json:"autoScalingGroup"` }
Properties for a Lifecycle hook. Experimental.
type LifecycleHookTargetConfig ¶
type LifecycleHookTargetConfig struct { // The ARN to use as the notification target. // Experimental. NotificationTargetArn *string `json:"notificationTargetArn"` }
Properties to add the target to a lifecycle hook. Experimental.
type LifecycleTransition ¶
type LifecycleTransition string
What instance transition to attach the hook to. Experimental.
const ( LifecycleTransition_INSTANCE_LAUNCHING LifecycleTransition = "INSTANCE_LAUNCHING" LifecycleTransition_INSTANCE_TERMINATING LifecycleTransition = "INSTANCE_TERMINATING" )
type MetricAggregationType ¶
type MetricAggregationType string
How the scaling metric is going to be aggregated. Experimental.
const ( MetricAggregationType_AVERAGE MetricAggregationType = "AVERAGE" MetricAggregationType_MINIMUM MetricAggregationType = "MINIMUM" MetricAggregationType_MAXIMUM MetricAggregationType = "MAXIMUM" )
type MetricTargetTrackingProps ¶
type MetricTargetTrackingProps struct { // Period after a scaling completes before another scaling activity can start. // Experimental. Cooldown awscdk.Duration `json:"cooldown"` // Indicates whether scale in by the target tracking policy is disabled. // // If the value is true, scale in is disabled and the target tracking policy // won't remove capacity from the autoscaling group. Otherwise, scale in is // enabled and the target tracking policy can remove capacity from the // group. // Experimental. DisableScaleIn *bool `json:"disableScaleIn"` // Estimated time until a newly launched instance can send metrics to CloudWatch. // Experimental. EstimatedInstanceWarmup awscdk.Duration `json:"estimatedInstanceWarmup"` // Metric to track. // // The metric must represent a utilization, so that if it's higher than the // target value, your ASG should scale out, and if it's lower it should // scale in. // Experimental. Metric awscloudwatch.IMetric `json:"metric"` // Value to keep the metric around. // Experimental. TargetValue *float64 `json:"targetValue"` }
Properties for enabling tracking of an arbitrary metric. Experimental.
type Monitoring ¶
type Monitoring string
The monitoring mode for instances launched in an autoscaling group. Experimental.
const ( Monitoring_BASIC Monitoring = "BASIC" Monitoring_DETAILED Monitoring = "DETAILED" )
type NetworkUtilizationScalingProps ¶
type NetworkUtilizationScalingProps struct { // Period after a scaling completes before another scaling activity can start. // Experimental. Cooldown awscdk.Duration `json:"cooldown"` // Indicates whether scale in by the target tracking policy is disabled. // // If the value is true, scale in is disabled and the target tracking policy // won't remove capacity from the autoscaling group. Otherwise, scale in is // enabled and the target tracking policy can remove capacity from the // group. // Experimental. DisableScaleIn *bool `json:"disableScaleIn"` // Estimated time until a newly launched instance can send metrics to CloudWatch. // Experimental. EstimatedInstanceWarmup awscdk.Duration `json:"estimatedInstanceWarmup"` // Target average bytes/seconds on each instance. // Experimental. TargetBytesPerSecond *float64 `json:"targetBytesPerSecond"` }
Properties for enabling scaling based on network utilization. Experimental.
type NotificationConfiguration ¶
type NotificationConfiguration struct { // SNS topic to send notifications about fleet scaling events. // Experimental. Topic awssns.ITopic `json:"topic"` // Which fleet scaling events triggers a notification. // Experimental. ScalingEvents ScalingEvents `json:"scalingEvents"` }
AutoScalingGroup fleet change notifications configurations.
You can configure AutoScaling to send an SNS notification whenever your Auto Scaling group scales. Experimental.
type PredefinedMetric ¶
type PredefinedMetric string
One of the predefined autoscaling metrics. Experimental.
const ( PredefinedMetric_ASG_AVERAGE_CPU_UTILIZATION PredefinedMetric = "ASG_AVERAGE_CPU_UTILIZATION" PredefinedMetric_ASG_AVERAGE_NETWORK_IN PredefinedMetric = "ASG_AVERAGE_NETWORK_IN" PredefinedMetric_ASG_AVERAGE_NETWORK_OUT PredefinedMetric = "ASG_AVERAGE_NETWORK_OUT" PredefinedMetric_ALB_REQUEST_COUNT_PER_TARGET PredefinedMetric = "ALB_REQUEST_COUNT_PER_TARGET" )
type RenderSignalsOptions ¶
type RenderSignalsOptions struct { // The desiredCapacity of the ASG. // Experimental. DesiredCapacity *float64 `json:"desiredCapacity"` // The minSize of the ASG. // Experimental. MinCapacity *float64 `json:"minCapacity"` }
Input for Signals.renderCreationPolicy. Experimental.
type RequestCountScalingProps ¶
type RequestCountScalingProps struct { // Period after a scaling completes before another scaling activity can start. // Experimental. Cooldown awscdk.Duration `json:"cooldown"` // Indicates whether scale in by the target tracking policy is disabled. // // If the value is true, scale in is disabled and the target tracking policy // won't remove capacity from the autoscaling group. Otherwise, scale in is // enabled and the target tracking policy can remove capacity from the // group. // Experimental. DisableScaleIn *bool `json:"disableScaleIn"` // Estimated time until a newly launched instance can send metrics to CloudWatch. // Experimental. EstimatedInstanceWarmup awscdk.Duration `json:"estimatedInstanceWarmup"` // Target average requests/minute on each instance. // Experimental. TargetRequestsPerMinute *float64 `json:"targetRequestsPerMinute"` }
Properties for enabling scaling based on request/second. Experimental.
type RollingUpdateOptions ¶
type RollingUpdateOptions struct { // The maximum number of instances that AWS CloudFormation updates at once. // // This number affects the speed of the replacement. // Experimental. MaxBatchSize *float64 `json:"maxBatchSize"` // The minimum number of instances that must be in service before more instances are replaced. // // This number affects the speed of the replacement. // Experimental. MinInstancesInService *float64 `json:"minInstancesInService"` // The percentage of instances that must signal success for the update to succeed. // Experimental. MinSuccessPercentage *float64 `json:"minSuccessPercentage"` // The pause time after making a change to a batch of instances. // Experimental. PauseTime awscdk.Duration `json:"pauseTime"` // Specifies the Auto Scaling processes to suspend during a stack update. // // Suspending processes prevents Auto Scaling from interfering with a stack // update. // Experimental. SuspendProcesses *[]ScalingProcess `json:"suspendProcesses"` // Specifies whether the Auto Scaling group waits on signals from new instances during an update. // Experimental. WaitOnResourceSignals *bool `json:"waitOnResourceSignals"` }
Options for customizing the rolling update. Experimental.
type ScalingEvent ¶
type ScalingEvent string
Fleet scaling events. Experimental.
const ( ScalingEvent_INSTANCE_LAUNCH ScalingEvent = "INSTANCE_LAUNCH" ScalingEvent_INSTANCE_TERMINATE ScalingEvent = "INSTANCE_TERMINATE" ScalingEvent_INSTANCE_TERMINATE_ERROR ScalingEvent = "INSTANCE_TERMINATE_ERROR" ScalingEvent_INSTANCE_LAUNCH_ERROR ScalingEvent = "INSTANCE_LAUNCH_ERROR" ScalingEvent_TEST_NOTIFICATION ScalingEvent = "TEST_NOTIFICATION" )
type ScalingEvents ¶
type ScalingEvents interface { }
A list of ScalingEvents, you can use one of the predefined lists, such as ScalingEvents.ERRORS or create a custom group by instantiating a `NotificationTypes` object, e.g: `new NotificationTypes(`NotificationType.INSTANCE_LAUNCH`)`. Experimental.
func ScalingEvents_ALL ¶
func ScalingEvents_ALL() ScalingEvents
func ScalingEvents_ERRORS ¶
func ScalingEvents_ERRORS() ScalingEvents
func ScalingEvents_LAUNCH_EVENTS ¶
func ScalingEvents_LAUNCH_EVENTS() ScalingEvents
func ScalingEvents_TERMINATION_EVENTS ¶
func ScalingEvents_TERMINATION_EVENTS() ScalingEvents
type ScalingInterval ¶
type ScalingInterval struct { // The capacity adjustment to apply in this interval. // // The number is interpreted differently based on AdjustmentType: // // - ChangeInCapacity: add the adjustment to the current capacity. // The number can be positive or negative. // - PercentChangeInCapacity: add or remove the given percentage of the current // capacity to itself. The number can be in the range [-100..100]. // - ExactCapacity: set the capacity to this number. The number must // be positive. // Experimental. Change *float64 `json:"change"` // The lower bound of the interval. // // The scaling adjustment will be applied if the metric is higher than this value. // Experimental. Lower *float64 `json:"lower"` // The upper bound of the interval. // // The scaling adjustment will be applied if the metric is lower than this value. // Experimental. Upper *float64 `json:"upper"` }
A range of metric values in which to apply a certain scaling operation. Experimental.
type ScalingProcess ¶
type ScalingProcess string
Experimental.
const ( ScalingProcess_LAUNCH ScalingProcess = "LAUNCH" ScalingProcess_TERMINATE ScalingProcess = "TERMINATE" ScalingProcess_HEALTH_CHECK ScalingProcess = "HEALTH_CHECK" ScalingProcess_REPLACE_UNHEALTHY ScalingProcess = "REPLACE_UNHEALTHY" ScalingProcess_AZ_REBALANCE ScalingProcess = "AZ_REBALANCE" ScalingProcess_ALARM_NOTIFICATION ScalingProcess = "ALARM_NOTIFICATION" ScalingProcess_SCHEDULED_ACTIONS ScalingProcess = "SCHEDULED_ACTIONS" ScalingProcess_ADD_TO_LOAD_BALANCER ScalingProcess = "ADD_TO_LOAD_BALANCER" )
type Schedule ¶
type Schedule interface {
ExpressionString() *string
}
Schedule for scheduled scaling actions. Experimental.
func Schedule_Cron ¶
func Schedule_Cron(options *CronOptions) Schedule
Create a schedule from a set of cron fields. Experimental.
func Schedule_Expression ¶
Construct a schedule from a literal schedule expression. See: http://crontab.org/
Experimental.
type ScheduledAction ¶
type ScheduledAction interface { awscdk.Resource Env() *awscdk.ResourceEnvironment Node() constructs.Node PhysicalName() *string Stack() awscdk.Stack ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string GetResourceNameAttribute(nameAttr *string) *string ToString() *string }
Define a scheduled scaling action. Experimental.
func NewScheduledAction ¶
func NewScheduledAction(scope constructs.Construct, id *string, props *ScheduledActionProps) ScheduledAction
Experimental.
type ScheduledActionProps ¶
type ScheduledActionProps struct { // When to perform this action. // // Supports cron expressions. // // For more information about cron expressions, see https://en.wikipedia.org/wiki/Cron. // // TODO: EXAMPLE // // Experimental. Schedule Schedule `json:"schedule"` // The new desired capacity. // // At the scheduled time, set the desired capacity to the given capacity. // // At least one of maxCapacity, minCapacity, or desiredCapacity must be supplied. // Experimental. DesiredCapacity *float64 `json:"desiredCapacity"` // When this scheduled action expires. // Experimental. EndTime *time.Time `json:"endTime"` // The new maximum capacity. // // At the scheduled time, set the maximum capacity to the given capacity. // // At least one of maxCapacity, minCapacity, or desiredCapacity must be supplied. // Experimental. MaxCapacity *float64 `json:"maxCapacity"` // The new minimum capacity. // // At the scheduled time, set the minimum capacity to the given capacity. // // At least one of maxCapacity, minCapacity, or desiredCapacity must be supplied. // Experimental. MinCapacity *float64 `json:"minCapacity"` // When this scheduled action becomes active. // Experimental. StartTime *time.Time `json:"startTime"` // The AutoScalingGroup to apply the scheduled actions to. // Experimental. AutoScalingGroup IAutoScalingGroup `json:"autoScalingGroup"` }
Properties for a scheduled action on an AutoScalingGroup. Experimental.
type Signals ¶
type Signals interface { DoRender(options *SignalsOptions, count *float64) *awscdk.CfnCreationPolicy RenderCreationPolicy(renderOptions *RenderSignalsOptions) *awscdk.CfnCreationPolicy }
Configure whether the AutoScalingGroup waits for signals.
If you do configure waiting for signals, you should make sure the instances invoke `cfn-signal` somewhere in their UserData to signal that they have started up (either successfully or unsuccessfully).
Signals are used both during intial creation and subsequent updates. Experimental.
func Signals_WaitForAll ¶
func Signals_WaitForAll(options *SignalsOptions) Signals
Wait for the desiredCapacity of the AutoScalingGroup amount of signals to have been received.
If no desiredCapacity has been configured, wait for minCapacity signals intead.
This number is used during initial creation and during replacing updates. During rolling updates, all updated instances must send a signal. Experimental.
func Signals_WaitForCount ¶
func Signals_WaitForCount(count *float64, options *SignalsOptions) Signals
Wait for a specific amount of signals to have been received.
You should send one signal per instance, so this represents the number of instances to wait for.
This number is used during initial creation and during replacing updates. During rolling updates, all updated instances must send a signal. Experimental.
func Signals_WaitForMinCapacity ¶
func Signals_WaitForMinCapacity(options *SignalsOptions) Signals
Wait for the minCapacity of the AutoScalingGroup amount of signals to have been received.
This number is used during initial creation and during replacing updates. During rolling updates, all updated instances must send a signal. Experimental.
type SignalsOptions ¶
type SignalsOptions struct { // The percentage of signals that need to be successful. // // If this number is less than 100, a percentage of signals may be failure // signals while still succeeding the creation or update in CloudFormation. // Experimental. MinSuccessPercentage *float64 `json:"minSuccessPercentage"` // How long to wait for the signals to be sent. // // This should reflect how long it takes your instances to start up // (including instance start time and instance initialization time). // Experimental. Timeout awscdk.Duration `json:"timeout"` }
Customization options for Signal handling. Experimental.
type StepScalingAction ¶
type StepScalingAction interface { constructs.Construct Node() constructs.Node ScalingPolicyArn() *string AddAdjustment(adjustment *AdjustmentTier) ToString() *string }
Define a step scaling action.
This kind of scaling policy adjusts the target capacity in configurable steps. The size of the step is configurable based on the metric's distance to its alarm threshold.
This Action must be used as the target of a CloudWatch alarm to take effect. Experimental.
func NewStepScalingAction ¶
func NewStepScalingAction(scope constructs.Construct, id *string, props *StepScalingActionProps) StepScalingAction
Experimental.
type StepScalingActionProps ¶
type StepScalingActionProps struct { // The auto scaling group. // Experimental. AutoScalingGroup IAutoScalingGroup `json:"autoScalingGroup"` // How the adjustment numbers are interpreted. // Experimental. AdjustmentType AdjustmentType `json:"adjustmentType"` // Period after a scaling completes before another scaling activity can start. // Experimental. Cooldown awscdk.Duration `json:"cooldown"` // Estimated time until a newly launched instance can send metrics to CloudWatch. // Experimental. EstimatedInstanceWarmup awscdk.Duration `json:"estimatedInstanceWarmup"` // The aggregation type for the CloudWatch metrics. // Experimental. MetricAggregationType MetricAggregationType `json:"metricAggregationType"` // Minimum absolute number to adjust capacity with as result of percentage scaling. // // Only when using AdjustmentType = PercentChangeInCapacity, this number controls // the minimum absolute effect size. // Experimental. MinAdjustmentMagnitude *float64 `json:"minAdjustmentMagnitude"` }
Properties for a scaling policy. Experimental.
type StepScalingPolicy ¶
type StepScalingPolicy interface { constructs.Construct LowerAction() StepScalingAction LowerAlarm() awscloudwatch.Alarm Node() constructs.Node UpperAction() StepScalingAction UpperAlarm() awscloudwatch.Alarm ToString() *string }
Define a acaling strategy which scales depending on absolute values of some metric.
You can specify the scaling behavior for various values of the metric.
Implemented using one or more CloudWatch alarms and Step Scaling Policies. Experimental.
func NewStepScalingPolicy ¶
func NewStepScalingPolicy(scope constructs.Construct, id *string, props *StepScalingPolicyProps) StepScalingPolicy
Experimental.
type StepScalingPolicyProps ¶
type StepScalingPolicyProps struct { // Metric to scale on. // Experimental. Metric awscloudwatch.IMetric `json:"metric"` // The intervals for scaling. // // Maps a range of metric values to a particular scaling behavior. // Experimental. ScalingSteps *[]*ScalingInterval `json:"scalingSteps"` // How the adjustment numbers inside 'intervals' are interpreted. // Experimental. AdjustmentType AdjustmentType `json:"adjustmentType"` // Grace period after scaling activity. // Experimental. Cooldown awscdk.Duration `json:"cooldown"` // Estimated time until a newly launched instance can send metrics to CloudWatch. // Experimental. EstimatedInstanceWarmup awscdk.Duration `json:"estimatedInstanceWarmup"` // How many evaluation periods of the metric to wait before triggering a scaling action. // // Raising this value can be used to smooth out the metric, at the expense // of slower response times. // Experimental. EvaluationPeriods *float64 `json:"evaluationPeriods"` // Aggregation to apply to all data points over the evaluation periods. // // Only has meaning if `evaluationPeriods != 1`. // Experimental. MetricAggregationType MetricAggregationType `json:"metricAggregationType"` // Minimum absolute number to adjust capacity with as result of percentage scaling. // // Only when using AdjustmentType = PercentChangeInCapacity, this number controls // the minimum absolute effect size. // Experimental. MinAdjustmentMagnitude *float64 `json:"minAdjustmentMagnitude"` // The auto scaling group. // Experimental. AutoScalingGroup IAutoScalingGroup `json:"autoScalingGroup"` }
Experimental.
type TargetTrackingScalingPolicy ¶
type TargetTrackingScalingPolicy interface { constructs.Construct Node() constructs.Node ScalingPolicyArn() *string ToString() *string }
Experimental.
func NewTargetTrackingScalingPolicy ¶
func NewTargetTrackingScalingPolicy(scope constructs.Construct, id *string, props *TargetTrackingScalingPolicyProps) TargetTrackingScalingPolicy
Experimental.
type TargetTrackingScalingPolicyProps ¶
type TargetTrackingScalingPolicyProps struct { // Period after a scaling completes before another scaling activity can start. // Experimental. Cooldown awscdk.Duration `json:"cooldown"` // Indicates whether scale in by the target tracking policy is disabled. // // If the value is true, scale in is disabled and the target tracking policy // won't remove capacity from the autoscaling group. Otherwise, scale in is // enabled and the target tracking policy can remove capacity from the // group. // Experimental. DisableScaleIn *bool `json:"disableScaleIn"` // Estimated time until a newly launched instance can send metrics to CloudWatch. // Experimental. EstimatedInstanceWarmup awscdk.Duration `json:"estimatedInstanceWarmup"` // The target value for the metric. // Experimental. TargetValue *float64 `json:"targetValue"` // A custom metric for application autoscaling. // // The metric must track utilization. Scaling out will happen if the metric is higher than // the target value, scaling in will happen in the metric is lower than the target value. // // Exactly one of customMetric or predefinedMetric must be specified. // Experimental. CustomMetric awscloudwatch.IMetric `json:"customMetric"` // A predefined metric for application autoscaling. // // The metric must track utilization. Scaling out will happen if the metric is higher than // the target value, scaling in will happen in the metric is lower than the target value. // // Exactly one of customMetric or predefinedMetric must be specified. // Experimental. PredefinedMetric PredefinedMetric `json:"predefinedMetric"` // The resource label associated with the predefined metric. // // Should be supplied if the predefined metric is ALBRequestCountPerTarget, and the // format should be: // // app/<load-balancer-name>/<load-balancer-id>/targetgroup/<target-group-name>/<target-group-id> // Experimental. ResourceLabel *string `json:"resourceLabel"` // Experimental. AutoScalingGroup IAutoScalingGroup `json:"autoScalingGroup"` }
Properties for a concrete TargetTrackingPolicy.
Adds the scalingTarget. Experimental.
type UpdatePolicy ¶
type UpdatePolicy interface { }
How existing instances should be updated. Experimental.
func UpdatePolicy_ReplacingUpdate ¶
func UpdatePolicy_ReplacingUpdate() UpdatePolicy
Create a new AutoScalingGroup and switch over to it. Experimental.
func UpdatePolicy_RollingUpdate ¶
func UpdatePolicy_RollingUpdate(options *RollingUpdateOptions) UpdatePolicy
Replace the instances in the AutoScalingGroup one by one, or in batches. Experimental.