Eventos de posicionamento de sessões de jogo
O Amazon GameLift Servers emite eventos para cada solicitação de posicionamento de sessões de jogo à medida que ela é processada. Você pode publicar esses eventos em um tópico do Amazon SNS, conforme descrito em Configurar notificações de eventos para o posicionamento de sessões de jogo. Esses eventos também são emitidos para o Amazon CloudWatch Events quase em tempo real e com base no melhor esforço.
Este tópico descreve a estrutura dos eventos de posicionamento de sessões de jogo e fornece um exemplo para cada tipo de evento. Para obter mais informações sobre o status das solicitações de posicionamento de sessões de jogo, consulte GameSessionPlacement na Referência da API do Amazon GameLift Servers.
Sintaxe do evento de posicionamento
Os eventos são representados como objetos JSON. A estrutura do evento está em conformidade com o padrão CloudWatch Events, com campos de nível superior semelhantes e detalhes específicos do serviço.
Os campos de nível superior incluem o seguinte (consulte o padrão do evento para obter mais detalhes):
- version
-
Esse campo é sempre definido como 0 (zero).
- id
-
Identificador de rastreamento exclusivo do evento.
- detail-type
-
O valor é sempre
GameLift Queue Placement Event. - origem
-
O valor é sempre
aws.gamelift. - conta
-
A conta do AWS que está sendo usada para gerenciar o Amazon GameLift Servers.
- horário
-
Carimbo de data/hora do evento.
- região
-
Região AWS, onde a solicitação de posicionamento está sendo processada. Essa é a região em que a fila de sessões de jogos em uso reside.
- resources
-
Valor ARN da fila da sessão de jogo que está processando a solicitação de posicionamento.
PlacementFulfilled
A solicitação de posicionamento foi atendida com sucesso. Uma nova sessão de jogo foi iniciada e novas sessões de jogadores foram criadas para cada jogador listado na solicitação de posicionamento de sessões de jogo. As informações de conexão do jogador estão disponíveis.
Sintaxe detalhada:
- placementId
-
Identificador exclusivo atribuído à solicitação de posicionamento de sessões de jogo.
- porta
-
Número da porta da nova sessão de jogos.
- gameSessionArn
-
Identificador ARN da nova sessão de jogos.
- ipAddress
-
Endereço IP da sessão de jogos.
- dnsName
-
Identificador DNS atribuído à instância que está executando a nova sessão de jogos. O formato do valor é diferente dependendo se a instância que executa a sessão de jogos está habilitada para TLS. Ao se conectar a uma sessão de jogos em uma frota habilitada para TLS, os jogadores devem usar o nome DNS e não o endereço IP.
Frotas habilitadas para TLS:
<unique identifier>.<region identifier>.amazongamelift.com.Frotas não habilitadas para TLS:
ec2-<unique identifier>.compute.amazonaws.com. - startTime
-
Carimbo de data/hora indicando quando essa solicitação foi posicionada na fila.
- endTime
-
Carimbo de data/hora indicando quando essa solicitação foi atendida.
- gameSessionRegion
-
Região da AWS da frota que está hospedando a sessão do jogo. Isso corresponde ao token de região no
GameSessionArn. - placedPlayerSessions
-
Coleção de sessões de jogadores que foram criadas para cada jogador na solicitação de posicionamento de sessões de jogo.
Exemplo
{ "version": "0", "id": "1111aaaa-bb22-cc33-dd44-5555eeee66ff", "detail-type": "GameLift Queue Placement Event", "source": "aws.gamelift", "account": "123456789012", "time": "2021-03-01T15:50:52Z", "region": "us-east-1", "resources": [ "arn:aws:gamelift:us-west-2:123456789012:gamesessionqueue/MegaFrogRace-NA" ], "detail": { "type": "PlacementFulfilled", "placementId": "9999ffff-88ee-77dd-66cc-5555bb44aa", "port": "6262", "gameSessionArn": "arn:aws:gamelift:us-west-2::gamesession/fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa/4444dddd-55ee-66ff-77aa-8888bbbb99cc", "ipAddress": "98.987.98.987", "dnsName": "ec2-12-345-67-890.us-west-2.compute.amazonaws.com", "startTime": "2021-03-01T15:50:49.741Z", "endTime": "2021-03-01T15:50:52.084Z", "gameSessionRegion": "us-west-2", "placedPlayerSessions": [ { "playerId": "player-1" "playerSessionId": "psess-1232131232324124123123" } ] } }
PlacementCancelled
A solicitação de posicionamento foi cancelada com uma chamada para o serviço StopGameSessionPlacement do GameLift.
Detail:
- placementId
-
Identificador exclusivo atribuído à solicitação de posicionamento de sessões de jogo.
- startTime
-
Carimbo de data/hora indicando quando essa solicitação foi posicionada na fila.
- endTime
-
Carimbo de data/hora indicando quando essa solicitação foi cancelada.
Exemplo
{ "version": "0", "id": "1111aaaa-bb22-cc33-dd44-5555eeee66ff", "detail-type": "GameLift Queue Placement Event", "source": "aws.gamelift", "account": "123456789012", "time": "2021-03-01T15:50:52Z", "region": "us-east-1", "resources": [ "arn:aws:gamelift:us-west-2:123456789012:gamesessionqueue/MegaFrogRace-NA" ], "detail": { "type": "PlacementCancelled", "placementId": "9999ffff-88ee-77dd-66cc-5555bb44aa", "startTime": "2021-03-01T15:50:49.741Z", "endTime": "2021-03-01T15:50:52.084Z" } }
PlacementTimedOut
O posicionamento de sessões de jogo não foi concluído com êxito antes que o limite de tempo da fila expirasse. A solicitação de posicionamento pode ser reenviada conforme necessário.
Detalhe:
- placementId
-
Identificador exclusivo atribuído à solicitação de posicionamento de sessões de jogo.
- startTime
-
Carimbo de data/hora indicando quando essa solicitação foi posicionada na fila.
- endTime
-
Carimbo de data/hora indicando quando essa solicitação foi cancelada.
Exemplo
{ "version": "0", "id": "1111aaaa-bb22-cc33-dd44-5555eeee66ff", "detail-type": "GameLift Queue Placement Event", "source": "aws.gamelift", "account": "123456789012", "time": "2021-03-01T15:50:52Z", "region": "us-east-1", "resources": [ "arn:aws:gamelift:us-west-2:123456789012:gamesessionqueue/MegaFrogRace-NA" ], "detail": { "type": "PlacementTimedOut", "placementId": "9999ffff-88ee-77dd-66cc-5555bb44aa", "startTime": "2021-03-01T15:50:49.741Z", "endTime": "2021-03-01T15:50:52.084Z" } }
PlacementFailed
O Amazon GameLift Servers não conseguiu atender à solicitação de posicionamento de sessões de jogo. Isso geralmente é causado por um erro interno inesperado. A solicitação de posicionamento pode ser reenviada conforme necessário.
Detalhe:
- placementId
-
Identificador exclusivo atribuído à solicitação de posicionamento de sessões de jogo.
- startTime
-
Carimbo de data/hora indicando quando essa solicitação foi posicionada na fila.
- endTime
-
Carimbo de data/hora indicando quando essa solicitação falhou.
Exemplo
{ "version": "0", "id": "39c978f3-ba46-3f7c-e787-55bfcca1bd31", "detail-type": "GameLift Queue Placement Event", "source": "aws.gamelift", "account": "252386620677", "time": "2021-03-01T15:50:52Z", "region": "us-east-1", "resources": [ "arn:aws:gamelift:us-west-2:252386620677:gamesessionqueue/MegaFrogRace-NA" ], "detail": { "type": "PlacementFailed", "placementId": "e4a1119a-39af-45cf-a990-ef150fe0d453", "startTime": "2021-03-01T15:50:49.741Z", "endTime": "2021-03-01T15:50:52.084Z" } }