in Gems/AWSGameLift/cdkv1/aws_gamelift/gamelift_stack.py [0:0]
def __init__(self, scope: core.Construct, id_: str,
stack_name: str, fleet_configurations: dict,
create_game_session_queue: bool,
flex_match: bool,
**kwargs) -> None:
super().__init__(scope, id_, **kwargs)
self._stack_name = stack_name
fleet_ids = []
queue_destinations = []
for index in range(len(fleet_configurations)):
fleet_configuration = fleet_configurations[index]
# Create a new GameLift fleet using the configuration
fleet_ids.append(self._create_fleet(fleet_configuration, index).attr_fleet_id)
destination_arn = core.Fn.sub(
body='arn:${AWS::Partition}:gamelift:${AWS::Region}::fleet/${FleetId}',
variables={
'FleetId': fleet_ids[index],
}
)
if fleet_configuration.get('alias_configuration'):
# Create an alias for the fleet if the alias configuration is provided
alias = self._create_alias(fleet_configuration['alias_configuration'], fleet_ids[index])
destination_arn = core.Fn.sub(
body='arn:${AWS::Partition}:gamelift:${AWS::Region}::alias/${AliasId}',
variables={
'AliasId': alias.attr_alias_id,
}
)
queue_destinations.append(destination_arn)
# Export the GameLift fleet ids as a stack output
core.CfnOutput(
self,
id='GameLiftFleets',
description='List of GameLift fleet ids',
export_name=f'{self._stack_name}:GameLiftFleets',
value=','.join(fleet_ids)
)
game_session_queue_arns = []
if flex_match or create_game_session_queue:
queue = game_session_queue.GameSessionQueueResources(self, queue_destinations)
game_session_queue_arns.append(queue.game_session_queue_arn)
if flex_match:
matchmaking.MatchmakingResoures(self, game_session_queue_arns)