production-deployment-sample-script/utils/game_lift_client.py (54 lines of code) (raw):

import boto3 from models import ParsedBuild, ParsedFleet class GameLiftClient: def __init__(self): self.client = boto3.client('gamelift') def create_build(self, parsed_build: ParsedBuild): callargs = dict(Name=parsed_build.name, StorageLocation=parsed_build.storage_location, Version=parsed_build.version, OperatingSystem=parsed_build.operating_system, Tags=parsed_build.tags, ServerSdkVersion=parsed_build.server_sdk_version) return self.client.create_build(**{k: v for k, v in callargs.items() if v is not None}) def create_fleet(self, parsed_fleet: ParsedFleet): callargs = dict(Name=parsed_fleet.name, BuildId=parsed_fleet.build_id, EC2InstanceType=parsed_fleet.ec2_instance_type, RuntimeConfiguration=parsed_fleet.runtime_configuration, Description=parsed_fleet.description, EC2InboundPermissions=parsed_fleet.ec2_inbound_permissions, NewGameSessionProtectionPolicy=parsed_fleet.new_game_session_protection_policy, ResourceCreationLimitPolicy=parsed_fleet.resource_creation_limit_policy, MetricGroups=parsed_fleet.metric_groups, PeerVpcAwsAccountId=parsed_fleet.peer_vpc_aws_account_id, PeerVpcId=parsed_fleet.peer_vpc_id, FleetType=parsed_fleet.fleet_type, InstanceRoleArn=parsed_fleet.instance_role_arn, CertificateConfiguration=parsed_fleet.certificate_configuration, Locations=parsed_fleet.locations, Tags=parsed_fleet.tags, ComputeType=parsed_fleet.compute_type, AnywhereConfiguration=parsed_fleet.anywhere_configuration) return self.client.create_fleet(**{k: v for k, v in callargs.items() if v is not None}) def delete_fleet(self, fleet_id: str): return self.client.delete_fleet(FleetId=fleet_id) def describe_alias(self, alias_id: str): return self.client.describe_alias(AliasId=alias_id) def describe_build(self, build_id: str): return self.client.describe_build(BuildId=build_id) def describe_fleet_attributes(self, fleet_id: str): return self.client.describe_fleet_attributes(FleetIds=[fleet_id]) def describe_fleet_location_attributes(self, fleet_id: str, locations): callargs = dict(FleetId=fleet_id, Locations=locations) return self.client.describe_fleet_location_attributes(**{k: v for k, v in callargs.items() if v is not None}) def describe_game_sessions(self, fleet_id: str): return self.client.describe_game_sessions(FleetId=fleet_id) def update_alias(self, alias_id: str, fleet_id: str): return self.client.update_alias(AliasId=alias_id, RoutingStrategy={ 'Type': 'SIMPLE', 'FleetId': fleet_id, 'Message': 'Updated via production deployment sample script.' })