You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
143 lines
8.3 KiB
Python
143 lines
8.3 KiB
Python
"""
|
|
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 or WINDOWS_2012.
|
|
'operating_system': 'WINDOWS_2012'
|
|
},
|
|
# (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.
|
|
'from_port': 3389,
|
|
'ip_range': '<external ip range>',
|
|
'protocol': 'TCP',
|
|
'to_port': 3389
|
|
},
|
|
{
|
|
# Open the debug port for remote into a Linux fleet.
|
|
'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
|
|
}
|
|
]
|