Gems/AWSGameLift/cdk/aws_gamelift/fleet_configurations.py (60 lines of code) (raw):

""" Copyright (c) Contributors to the Open 3D Engine Project. For complete copyright and license terms please see the LICENSE at the root of this distribution. SPDX-License-Identifier: Apache-2.0 OR MIT """ # Configurations for the fleets to deploy. # Modify the fleet configuration fields below before deploying the CDK application. # Customers can define multiple fleets by copying the existing configuration template below and # append the new fleet configuration to the FLEET_CONFIGURATIONS list. All the fleets in the list # will be deployed automatically by this CDK application. # To select the right combination of hosting resources and learn how to configure them to best suit to your application, # please check: https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-design.html FLEET_CONFIGURATIONS = [ { # (Optional) An alias for an Amazon GameLift fleet destination. # By using aliases instead of specific fleet IDs, customers can more easily and seamlessly switch # player traffic from one fleet to another by changing the alias's target location. 'alias_configuration': { # (Required) A descriptive label that is associated with an alias. Alias names do not need to be unique. 'name': '<alias name>', # (Conditional) A type of routing strategy for the GameLift fleet alias if exists. # Required if alias_configuration is provided. 'routing_strategy': { # The message text to be used with a terminal routing strategy. # If you specify TERMINAL for the Type property, you must specify this property. # Required if specify TERMINAL for the Type property, 'message': '<routing strategy message>', # (Required) A type of routing strategy. # Choose from SIMPLE or TERMINAL. 'type': 'SIMPLE' } }, # (Required) Information about a game server build that is installed and # run on instances in an Amazon GameLift fleet. 'build_configuration': { # (Conditional) A unique identifier for a build to be deployed on the new fleet. # This parameter is required unless the parameters build_path and operating_system are defined and # the conditional variable upload-with-support-stack is set to true 'build_id': '<build id>', # (Conditional) The disk location of the local build file(.zip). # This parameter is required unless the parameter build_id is defined. 'build_path': '<build path>', # (Conditional) The operating system that the game server binaries are built to run on. # This parameter is required if the parameter build_path is defined. # Choose from AMAZON_LINUX_2 | WINDOWS_2016 as latest OS's supported by GameLift 'operating_system': 'WINDOWS_2016' }, # (Optional) Information about the use of a TLS/SSL certificate for a fleet. 'certificate_configuration': { # (Required) Indicates whether a TLS/SSL certificate is generated for the fleet. # Choose from DISABLED or GENERATED. 'certificate_type': 'DISABLED', }, # A human-readable description of the fleet. 'description': 'Amazon GameLift fleet to host game servers.', # (Optional) A range of IP addresses and port settings that allow inbound traffic to connect to # server processes on an Amazon GameLift server. # This should be the same port range as the server is configured for. 'ec2_inbound_permissions': [ { # (Required) A starting value for a range of allowed port numbers. # 33450 is the default server port defined by the Multiplayer Gem. 'from_port': 33450, # (Required) A range of allowed IP addresses. 'ip_range': '<ip range>', # (Required) The network communication protocol used by the fleet. 'protocol': 'UDP', # (Required) An ending value for a range of allowed port numbers. 'to_port': 33450 }, { # Open the debug port for remote into a Windows fleet. # Note: Remove this if fleet is Linux based, otherwise you will encounter restricted port failures 'from_port': 3389, 'ip_range': '<external ip range>', 'protocol': 'TCP', 'to_port': 3389 }, { # Open the debug port for remote into a Linux fleet. # Note: Remove this if fleet is Windows based, otherwise you will encounter restricted port failures 'from_port': 22, 'ip_range': '<external ip range>', 'protocol': 'TCP', 'to_port': 22 } ], # (Optional) The GameLift-supported EC2 instance type to use for all fleet instances. # Choose from the available EC2 instance type list: https://aws.amazon.com/ec2/instance-types/ 'ec2_instance_type': 'c5.large', # (Optional) Indicates whether to use On-Demand or Spot instances for this fleet. # Choose from ON_DEMAND or SPOT 'fleet_type': 'ON_DEMAND', # (Optional) A game session protection policy to apply to all game sessions hosted on instances in this fleet. # Choose from FullProtection or NoProtection 'new_game_session_protection_policy': 'NoProtection', # (Optional) A policy that limits the number of game sessions that an individual player # can create on instances in this fleet within a specified span of time. 'resource_creation_limit_policy': { # (Optional) The maximum number of game sessions that an individual can create during the policy period. # Provide any integer not less than 0. 'new_game_sessions_per_creator': 3, # (Optional) The time span used in evaluating the resource creation limit policy. # Provide any integer not less than 0. 'policy_period_in_minutes': 15 }, # (Conditional) Instructions for launching server processes on each instance in the fleet. # This parameter is required unless the parameters ServerLaunchPath and ServerLaunchParameters are defined. 'runtime_configuration': { # (Optional) The maximum amount of time (in seconds) allowed to launch a new game session and # have it report ready to host players. # Provide an integer from 1 to 600. 'game_session_activation_timeout_seconds': 300, # (Optional) The number of game sessions in status ACTIVATING to allow on an instance. # Provide an integer from 1 to 2147483647. 'max_concurrent_game_session_activations': 2, # (Optional) A collection of server process configurations that identify what server processes # to run on each instance in a fleet. To set up a fleet's runtime configuration to # run multiple game server processes per instance, please check the following document: # https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-multiprocess.html 'server_processes': [ { # (Required) The number of server processes using this configuration that # run concurrently on each instance. # Provide any integer not less than 1. 'concurrent_executions': 1, # (Required) The location of a game build executable that contains the Init() function. # Game builds are installed on instances at the root: # Windows (custom game builds only): C:\game. # Linux: /local/game. 'launch_path': 'C:\\game\\bin\\server.exe', # (Optional) An optional list of parameters to pass to the server executable on launch. 'parameters': '--sv_port 33450 --project-path=C:\\game ' '--project-cache-path=C:\\game\\assets --engine-path=C:\\game ' '-bg_ConnectToAssetProcessor=0' } ] } # For additional fleet configurations, please check: # https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_GameLift.html } ]