Package com.pulumi.aws.gamelift
Class GameServerGroup
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.gamelift.GameServerGroup
-
public class GameServerGroup extends com.pulumi.resources.CustomResourceProvides an GameLift Game Server Group resource. ## Example Usage
Full usage:package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.gamelift.GameServerGroup; import com.pulumi.aws.gamelift.GameServerGroupArgs; import com.pulumi.aws.gamelift.inputs.GameServerGroupLaunchTemplateArgs; import com.pulumi.aws.gamelift.inputs.GameServerGroupInstanceDefinitionArgs; import com.pulumi.resources.CustomResourceOptions; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var example = new GameServerGroup("example", GameServerGroupArgs.builder() .launchTemplate(GameServerGroupLaunchTemplateArgs.builder() .id(exampleAwsLaunchTemplate.id()) .build()) .instanceDefinitions( GameServerGroupInstanceDefinitionArgs.builder() .instanceType("c5.large") .build(), GameServerGroupInstanceDefinitionArgs.builder() .instanceType("c5a.large") .build()) .gameServerGroupName("example") .maxSize(1) .minSize(1) .roleArn(exampleAwsIamRole.arn()) .build(), CustomResourceOptions.builder() .dependsOn(exampleAwsIamRolePolicyAttachment) .build()); } }
### Example IAM Role for GameLift Game Server Grouppackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.gamelift.GameServerGroup; import com.pulumi.aws.gamelift.GameServerGroupArgs; import com.pulumi.aws.gamelift.inputs.GameServerGroupAutoScalingPolicyArgs; import com.pulumi.aws.gamelift.inputs.GameServerGroupAutoScalingPolicyTargetTrackingConfigurationArgs; import com.pulumi.aws.gamelift.inputs.GameServerGroupLaunchTemplateArgs; import com.pulumi.aws.gamelift.inputs.GameServerGroupInstanceDefinitionArgs; import com.pulumi.resources.CustomResourceOptions; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var example = new GameServerGroup("example", GameServerGroupArgs.builder() .autoScalingPolicy(GameServerGroupAutoScalingPolicyArgs.builder() .targetTrackingConfiguration(GameServerGroupAutoScalingPolicyTargetTrackingConfigurationArgs.builder() .targetValue(75.0) .build()) .estimatedInstanceWarmup(60) .build()) .launchTemplate(GameServerGroupLaunchTemplateArgs.builder() .id(exampleAwsLaunchTemplate.id()) .version("1") .build()) .instanceDefinitions( GameServerGroupInstanceDefinitionArgs.builder() .instanceType("c5.large") .weightedCapacity("1") .build(), GameServerGroupInstanceDefinitionArgs.builder() .instanceType("c5.2xlarge") .weightedCapacity("2") .build()) .balancingStrategy("SPOT_ONLY") .gameServerGroupName("example") .gameServerProtectionPolicy("FULL_PROTECTION") .maxSize(1) .minSize(1) .roleArn(exampleAwsIamRole.arn()) .tags(Map.of("Name", "example")) .vpcSubnets( "subnet-12345678", "subnet-23456789") .build(), CustomResourceOptions.builder() .dependsOn(exampleAwsIamRolePolicyAttachment) .build()); } }
## Import Using `pulumi import`, import GameLift Game Server Group using the `name`. For example: ```sh $ pulumi import aws:gamelift/gameServerGroup:GameServerGroup example example ```package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.AwsFunctions; import com.pulumi.aws.inputs.GetPartitionArgs; import com.pulumi.aws.iam.IamFunctions; import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs; import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementArgs; import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs; import com.pulumi.aws.iam.Role; import com.pulumi.aws.iam.RoleArgs; import com.pulumi.aws.iam.RolePolicyAttachment; import com.pulumi.aws.iam.RolePolicyAttachmentArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { final var current = AwsFunctions.getPartition(GetPartitionArgs.builder() .build()); final var assumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements(GetPolicyDocumentStatementArgs.builder() .principals(GetPolicyDocumentStatementPrincipalArgs.builder() .type("Service") .identifiers( "autoscaling.amazonaws.com", "gamelift.amazonaws.com") .build()) .effect("Allow") .actions("sts:AssumeRole") .build()) .build()); var example = new Role("example", RoleArgs.builder() .assumeRolePolicy(assumeRole.json()) .name("gamelift-game-server-group-example") .build()); var exampleRolePolicyAttachment = new RolePolicyAttachment("exampleRolePolicyAttachment", RolePolicyAttachmentArgs.builder() .policyArn(String.format("arn:%s:iam::aws:policy/GameLiftGameServerGroupPolicy", current.partition())) .role(example.name()) .build()); } }
-
-
Constructor Summary
Constructors Constructor Description GameServerGroup(java.lang.String name)GameServerGroup(java.lang.String name, GameServerGroupArgs args)GameServerGroup(java.lang.String name, GameServerGroupArgs args, com.pulumi.resources.CustomResourceOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.pulumi.core.Output<java.lang.String>arn()com.pulumi.core.Output<java.lang.String>autoScalingGroupArn()com.pulumi.core.Output<java.util.Optional<GameServerGroupAutoScalingPolicy>>autoScalingPolicy()com.pulumi.core.Output<java.lang.String>balancingStrategy()com.pulumi.core.Output<java.lang.String>gameServerGroupName()com.pulumi.core.Output<java.lang.String>gameServerProtectionPolicy()static GameServerGroupget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, GameServerGroupState state, com.pulumi.resources.CustomResourceOptions options)Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.com.pulumi.core.Output<java.util.List<GameServerGroupInstanceDefinition>>instanceDefinitions()com.pulumi.core.Output<GameServerGroupLaunchTemplate>launchTemplate()com.pulumi.core.Output<java.lang.Integer>maxSize()com.pulumi.core.Output<java.lang.Integer>minSize()com.pulumi.core.Output<java.lang.String>region()com.pulumi.core.Output<java.lang.String>roleArn()com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>>tags()com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>>tagsAll()com.pulumi.core.Output<java.util.Optional<java.util.List<java.lang.String>>>vpcSubnets()
-
-
-
Constructor Detail
-
GameServerGroup
public GameServerGroup(java.lang.String name)
- Parameters:
name- The _unique_ name of the resulting resource.
-
GameServerGroup
public GameServerGroup(java.lang.String name, GameServerGroupArgs args)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
GameServerGroup
public GameServerGroup(java.lang.String name, GameServerGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.options- A bag of options that control this resource's behavior.
-
-
Method Detail
-
arn
public com.pulumi.core.Output<java.lang.String> arn()
- Returns:
- ARN of the GameLift Game Server Group.
-
autoScalingGroupArn
public com.pulumi.core.Output<java.lang.String> autoScalingGroupArn()
- Returns:
- ARN of the created EC2 Auto Scaling group.
-
autoScalingPolicy
public com.pulumi.core.Output<java.util.Optional<GameServerGroupAutoScalingPolicy>> autoScalingPolicy()
-
balancingStrategy
public com.pulumi.core.Output<java.lang.String> balancingStrategy()
- Returns:
- How GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances. Valid values: `SPOT_ONLY`, `SPOT_PREFERRED`, `ON_DEMAND_ONLY`. Defaults to `SPOT_PREFERRED`.
-
gameServerGroupName
public com.pulumi.core.Output<java.lang.String> gameServerGroupName()
- Returns:
- Name of the game server group. This value is used to generate unique ARN identifiers for the EC2 Auto Scaling group and the GameLift FleetIQ game server group.
-
gameServerProtectionPolicy
public com.pulumi.core.Output<java.lang.String> gameServerProtectionPolicy()
- Returns:
- Whether instances in the game server group are protected from early termination. 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. Valid values: `NO_PROTECTION`, `FULL_PROTECTION`. Defaults to `NO_PROTECTION`.
-
instanceDefinitions
public com.pulumi.core.Output<java.util.List<GameServerGroupInstanceDefinition>> instanceDefinitions()
-
launchTemplate
public com.pulumi.core.Output<GameServerGroupLaunchTemplate> launchTemplate()
-
maxSize
public com.pulumi.core.Output<java.lang.Integer> maxSize()
- Returns:
- Maximum number of instances allowed in the EC2 Auto Scaling group. During automatic scaling events, GameLift FleetIQ and EC2 do not scale up the group above this maximum.
-
minSize
public com.pulumi.core.Output<java.lang.Integer> minSize()
- Returns:
- Minimum number of instances allowed in the EC2 Auto Scaling group. During automatic scaling events, GameLift FleetIQ and EC2 do not scale down the group below this minimum.
-
region
public com.pulumi.core.Output<java.lang.String> region()
- Returns:
- Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
-
roleArn
public com.pulumi.core.Output<java.lang.String> roleArn()
- Returns:
- ARN for an IAM role that allows Amazon GameLift to access your EC2 Auto Scaling groups.
-
tags
public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>> tags()
- Returns:
- Key-value map of resource tags
-
tagsAll
public com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>> tagsAll()
-
vpcSubnets
public com.pulumi.core.Output<java.util.Optional<java.util.List<java.lang.String>>> vpcSubnets()
- Returns:
- List of VPC subnets to use with instances in the game server group. By default, all GameLift FleetIQ-supported Availability Zones are used.
-
get
public static GameServerGroup get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable GameServerGroupState state, @Nullable com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.- Parameters:
name- The _unique_ name of the resulting resource.id- The _unique_ provider ID of the resource to lookup.state-options- Optional settings to control the behavior of the CustomResource.
-
-