@Generated(value="jsii-pacmak/1.50.0 (build d1830a4)", date="2022-01-04T15:39:09.330Z") @Stability(value=Stable) public class CfnGameServerGroup extends CfnResource implements IInspectable
This operation is used with the Amazon GameLift FleetIQ solution and game server groups.
Creates a GameLift FleetIQ game server group for managing game hosting on a collection of Amazon EC2 instances for game hosting. This operation creates the game server group, creates an Auto Scaling group in your AWS account , and establishes a link between the two groups. You can view the status of your game server groups in the GameLift console. Game server group metrics and events are emitted to Amazon CloudWatch.
Before creating a new game server group, you must have the following:
To create a new game server group, specify a unique group name, IAM role and Amazon EC2 launch template, and provide a list of instance types that can be used in the group. You must also set initial maximum and minimum limits on the group's instance count. You can optionally set an Auto Scaling policy with target tracking based on a GameLift FleetIQ metric.
Once the game server group and corresponding Auto Scaling group are created, you have full access to change the Auto Scaling group's configuration as needed. Several properties that are set when creating a game server group, including maximum/minimum size and auto-scaling policy settings, must be updated directly in the Auto Scaling group. Keep in mind that some Auto Scaling group properties are periodically updated by GameLift FleetIQ as part of its balancing activities to optimize for availability and cost.
Learn more
Example:
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import software.amazon.awscdk.services.gamelift.*;
CfnGameServerGroup cfnGameServerGroup = CfnGameServerGroup.Builder.create(this, "MyCfnGameServerGroup")
.gameServerGroupName("gameServerGroupName")
.instanceDefinitions(List.of(InstanceDefinitionProperty.builder()
.instanceType("instanceType")
// the properties below are optional
.weightedCapacity("weightedCapacity")
.build()))
.launchTemplate(LaunchTemplateProperty.builder()
.launchTemplateId("launchTemplateId")
.launchTemplateName("launchTemplateName")
.version("version")
.build())
.roleArn("roleArn")
// the properties below are optional
.autoScalingPolicy(AutoScalingPolicyProperty.builder()
.targetTrackingConfiguration(TargetTrackingConfigurationProperty.builder()
.targetValue(123)
.build())
// the properties below are optional
.estimatedInstanceWarmup(123)
.build())
.balancingStrategy("balancingStrategy")
.deleteOption("deleteOption")
.gameServerProtectionPolicy("gameServerProtectionPolicy")
.maxSize(123)
.minSize(123)
.tags(List.of(CfnTag.builder()
.key("key")
.value("value")
.build()))
.vpcSubnets(List.of("vpcSubnets"))
.build();
| Modifier and Type | Class and Description |
|---|---|
static interface |
CfnGameServerGroup.AutoScalingPolicyProperty
Example:
|
static class |
CfnGameServerGroup.Builder
A fluent builder for
CfnGameServerGroup. |
static interface |
CfnGameServerGroup.InstanceDefinitionProperty
*This data type is used with the Amazon GameLift FleetIQ and game server groups.*.
|
static interface |
CfnGameServerGroup.LaunchTemplateProperty
Example:
|
static interface |
CfnGameServerGroup.TargetTrackingConfigurationProperty
*This data type is used with the Amazon GameLift FleetIQ and game server groups.*.
|
software.amazon.jsii.JsiiObject.InitializationModeIInspectable.Jsii$Default, IInspectable.Jsii$ProxyIConstruct.Jsii$Default| Modifier and Type | Field and Description |
|---|---|
static String |
CFN_RESOURCE_TYPE_NAME
The CloudFormation resource type name for this resource class.
|
| Modifier | Constructor and Description |
|---|---|
|
CfnGameServerGroup(Construct scope,
String id,
CfnGameServerGroupProps props)
Create a new `AWS::GameLift::GameServerGroup`.
|
protected |
CfnGameServerGroup(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) |
protected |
CfnGameServerGroup(software.amazon.jsii.JsiiObjectRef objRef) |
| Modifier and Type | Method and Description |
|---|---|
String |
getAttrAutoScalingGroupArn() |
String |
getAttrGameServerGroupArn() |
Object |
getAutoScalingPolicy()
`AWS::GameLift::GameServerGroup.AutoScalingPolicy`.
|
String |
getBalancingStrategy()
Indicates how GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances in the game server group.
|
protected Map<String,Object> |
getCfnProperties() |
String |
getDeleteOption()
`AWS::GameLift::GameServerGroup.DeleteOption`.
|
String |
getGameServerGroupName()
A developer-defined identifier for the game server group.
|
String |
getGameServerProtectionPolicy()
A flag that indicates whether instances in the game server group are protected from early termination.
|
Object |
getInstanceDefinitions()
The set of Amazon EC2 instance types that GameLift FleetIQ can use when balancing and automatically scaling instances in the corresponding Auto Scaling group.
|
Object |
getLaunchTemplate()
`AWS::GameLift::GameServerGroup.LaunchTemplate`.
|
Number |
getMaxSize()
`AWS::GameLift::GameServerGroup.MaxSize`.
|
Number |
getMinSize()
`AWS::GameLift::GameServerGroup.MinSize`.
|
String |
getRoleArn()
The Amazon Resource Name ( [ARN](https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html) ) for an IAM role that allows Amazon Web Services to access your Amazon EC2 Auto Scaling groups.
|
TagManager |
getTags()
`AWS::GameLift::GameServerGroup.Tags`.
|
List<String> |
getVpcSubnets()
`AWS::GameLift::GameServerGroup.VpcSubnets`.
|
void |
inspect(TreeInspector inspector)
Examines the CloudFormation resource and discloses attributes.
|
protected Map<String,Object> |
renderProperties(Map<String,Object> props) |
void |
setAutoScalingPolicy(CfnGameServerGroup.AutoScalingPolicyProperty value)
`AWS::GameLift::GameServerGroup.AutoScalingPolicy`.
|
void |
setAutoScalingPolicy(IResolvable value)
`AWS::GameLift::GameServerGroup.AutoScalingPolicy`.
|
void |
setBalancingStrategy(String value)
Indicates how GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances in the game server group.
|
void |
setDeleteOption(String value)
`AWS::GameLift::GameServerGroup.DeleteOption`.
|
void |
setGameServerGroupName(String value)
A developer-defined identifier for the game server group.
|
void |
setGameServerProtectionPolicy(String value)
A flag that indicates whether instances in the game server group are protected from early termination.
|
void |
setInstanceDefinitions(IResolvable value)
The set of Amazon EC2 instance types that GameLift FleetIQ can use when balancing and automatically scaling instances in the corresponding Auto Scaling group.
|
void |
setInstanceDefinitions(List<Object> value)
The set of Amazon EC2 instance types that GameLift FleetIQ can use when balancing and automatically scaling instances in the corresponding Auto Scaling group.
|
void |
setLaunchTemplate(CfnGameServerGroup.LaunchTemplateProperty value)
`AWS::GameLift::GameServerGroup.LaunchTemplate`.
|
void |
setLaunchTemplate(IResolvable value)
`AWS::GameLift::GameServerGroup.LaunchTemplate`.
|
void |
setMaxSize(Number value)
`AWS::GameLift::GameServerGroup.MaxSize`.
|
void |
setMinSize(Number value)
`AWS::GameLift::GameServerGroup.MinSize`.
|
void |
setRoleArn(String value)
The Amazon Resource Name ( [ARN](https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html) ) for an IAM role that allows Amazon Web Services to access your Amazon EC2 Auto Scaling groups.
|
void |
setVpcSubnets(List<String> value)
`AWS::GameLift::GameServerGroup.VpcSubnets`.
|
addDeletionOverride, addDependsOn, addMetadata, addOverride, addPropertyDeletionOverride, addPropertyOverride, applyRemovalPolicy, applyRemovalPolicy, applyRemovalPolicy, getAtt, getCfnOptions, getCfnResourceType, getMetadata, getUpdatedProperites, isCfnResource, shouldSynthesize, toString, validatePropertiesgetRefgetCreationStack, getLogicalId, getStack, isCfnElement, overrideLogicalIdgetNode, isConstruct, onPrepare, onSynthesize, onValidate, prepare, synthesize, validatejsiiAsyncCall, jsiiAsyncCall, jsiiCall, jsiiCall, jsiiGet, jsiiGet, jsiiSet, jsiiStaticCall, jsiiStaticCall, jsiiStaticGet, jsiiStaticGet, jsiiStaticSet, jsiiStaticSet@Stability(value=Stable) public static final String CFN_RESOURCE_TYPE_NAME
protected CfnGameServerGroup(software.amazon.jsii.JsiiObjectRef objRef)
protected CfnGameServerGroup(software.amazon.jsii.JsiiObject.InitializationMode initializationMode)
@Stability(value=Stable)
public CfnGameServerGroup(@NotNull
Construct scope,
@NotNull
String id,
@NotNull
CfnGameServerGroupProps props)
scope - - scope in which this resource is defined. This parameter is required.id - - scoped id of the resource. This parameter is required.props - - resource properties. This parameter is required.@Stability(value=Stable)
public void inspect(@NotNull
TreeInspector inspector)
inspect in interface IInspectableinspector - - tree inspector to collect and process attributes. This parameter is required.@Stability(value=Stable) @NotNull protected Map<String,Object> renderProperties(@NotNull Map<String,Object> props)
renderProperties in class CfnResourceprops - This parameter is required.@Stability(value=Stable) @NotNull public String getAttrAutoScalingGroupArn()
@Stability(value=Stable) @NotNull public String getAttrGameServerGroupArn()
@Stability(value=Stable) @NotNull protected Map<String,Object> getCfnProperties()
getCfnProperties in class CfnResource@Stability(value=Stable) @NotNull public TagManager getTags()
@Stability(value=Stable) @NotNull public String getGameServerGroupName()
The name is unique for each Region in each AWS account.
@Stability(value=Stable)
public void setGameServerGroupName(@NotNull
String value)
The name is unique for each Region in each AWS account.
@Stability(value=Stable) @NotNull public Object getInstanceDefinitions()
@Stability(value=Stable)
public void setInstanceDefinitions(@NotNull
IResolvable value)
@Stability(value=Stable)
public void setInstanceDefinitions(@NotNull
List<Object> value)
@Stability(value=Stable) @NotNull public Object getLaunchTemplate()
@Stability(value=Stable)
public void setLaunchTemplate(@NotNull
CfnGameServerGroup.LaunchTemplateProperty value)
@Stability(value=Stable)
public void setLaunchTemplate(@NotNull
IResolvable value)
@Stability(value=Stable) @NotNull public String getRoleArn()
@Stability(value=Stable)
public void setRoleArn(@NotNull
String value)
@Stability(value=Stable) @Nullable public Object getAutoScalingPolicy()
@Stability(value=Stable)
public void setAutoScalingPolicy(@Nullable
CfnGameServerGroup.AutoScalingPolicyProperty value)
@Stability(value=Stable)
public void setAutoScalingPolicy(@Nullable
IResolvable value)
@Stability(value=Stable) @Nullable public String getBalancingStrategy()
Method options include the following:
SPOT_ONLY - Only Spot Instances are used in the game server group. If Spot Instances are unavailable or not viable for game hosting, the game server group provides no hosting capacity until Spot Instances can again be used. Until then, no new instances are started, and the existing nonviable Spot Instances are terminated (after current gameplay ends) and are not replaced.SPOT_PREFERRED - (default value) Spot Instances are used whenever available in the game server group. If Spot Instances are unavailable, the game server group continues to provide hosting capacity by falling back to On-Demand Instances. Existing nonviable Spot Instances are terminated (after current gameplay ends) and are replaced with new On-Demand Instances.ON_DEMAND_ONLY - Only On-Demand Instances are used in the game server group. No Spot Instances are used, even when available, while this balancing strategy is in force.@Stability(value=Stable)
public void setBalancingStrategy(@Nullable
String value)
Method options include the following:
SPOT_ONLY - Only Spot Instances are used in the game server group. If Spot Instances are unavailable or not viable for game hosting, the game server group provides no hosting capacity until Spot Instances can again be used. Until then, no new instances are started, and the existing nonviable Spot Instances are terminated (after current gameplay ends) and are not replaced.SPOT_PREFERRED - (default value) Spot Instances are used whenever available in the game server group. If Spot Instances are unavailable, the game server group continues to provide hosting capacity by falling back to On-Demand Instances. Existing nonviable Spot Instances are terminated (after current gameplay ends) and are replaced with new On-Demand Instances.ON_DEMAND_ONLY - Only On-Demand Instances are used in the game server group. No Spot Instances are used, even when available, while this balancing strategy is in force.@Stability(value=Stable) @Nullable public String getDeleteOption()
@Stability(value=Stable)
public void setDeleteOption(@Nullable
String value)
@Stability(value=Stable) @Nullable public String getGameServerProtectionPolicy()
Unprotected instances that have active game servers running might be terminated during a scale-down event, causing players to be dropped from the game. Protected instances cannot be terminated while there are active game servers running except in the event of a forced game server group deletion (see ). An exception to this is with Spot Instances, which can be terminated by AWS regardless of protection status.
@Stability(value=Stable)
public void setGameServerProtectionPolicy(@Nullable
String value)
Unprotected instances that have active game servers running might be terminated during a scale-down event, causing players to be dropped from the game. Protected instances cannot be terminated while there are active game servers running except in the event of a forced game server group deletion (see ). An exception to this is with Spot Instances, which can be terminated by AWS regardless of protection status.
@Stability(value=Stable) @Nullable public Number getMaxSize()
@Stability(value=Stable)
public void setMaxSize(@Nullable
Number value)
@Stability(value=Stable) @Nullable public Number getMinSize()
@Stability(value=Stable)
public void setMinSize(@Nullable
Number value)
@Stability(value=Stable) @Nullable public List<String> getVpcSubnets()
Copyright © 2022. All rights reserved.