本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
遊戲工作階段置放事件
Amazon GameLift Servers 在處理每個遊戲工作階段置放請求時發出事件。您可以將這些事件發佈至 Amazon SNS 主題,如中所述設定遊戲工作階段放置的事件通知。這些事件也會以近乎即時且盡最大努力的方式傳送至 Amazon CloudWatch Events。
本主題說明遊戲工作階段置放事件的結構,並提供每個事件類型的範例。如需遊戲工作階段置放請求狀態的詳細資訊,請參閱 Amazon GameLift Servers API 參考中的 GameSessionPlacement。
置放事件語法
事件會以 JSON 物件的形式表示。事件結構符合 CloudWatch Events 模式,具有類似的最上層欄位和服務特定詳細資訊。
最上層欄位包括下列項目 (如需詳細資訊,請參閱事件模式):
- version
-
此欄位一律設定為 0 (零)。
- id
-
事件的唯一追蹤識別符。
- 詳細資訊類型
-
值一律為
GameLift Queue Placement Event。 - source
-
值一律為
aws.gamelift。 - 帳戶
-
用來管理 AWS 的帳戶Amazon GameLift Servers。
- time
-
事件時間戳記。
- region
-
正在處理置放請求 AWS 的區域。這是使用中遊戲工作階段佇列所在的區域。
- resources
-
正在處理置放請求之遊戲工作階段佇列的 ARN 值。
PlacementFulfilled
已成功完成置放請求。已啟動新的遊戲工作階段,並已為遊戲工作階段放置請求中列出的每個玩家建立新的玩家工作階段。提供玩家連線資訊。
詳細資訊語法:
- placementId
-
指派給遊戲工作階段置放請求的唯一識別符。
- port
-
新遊戲工作階段的連接埠號碼。
- gameSessionArn
-
新遊戲工作階段的 ARN 識別符。
- ipAddress
-
遊戲工作階段的 IP 地址。
- dnsName
-
指派給執行新遊戲工作階段之執行個體的 DNS 識別符。值格式會根據執行遊戲工作階段的執行個體是否已啟用 TLS 而有所不同。在啟用 TLS 的機群上連線至遊戲工作階段時,玩家必須使用 DNS 名稱,而不是 IP 地址。
啟用 TLS 的機群:
<unique identifier>.<region identifier>.amazongamelift.com。Non-TLS-enabled 的機群:
ec2-<unique identifier>.compute.amazonaws.com。 - startTime
-
時間戳記,指出此請求何時放置在佇列中。
- endTime
-
時間戳記,指出何時滿足此請求。
- gameSessionRegion
-
AWS 託管遊戲工作階段的機群所在區域。
- gameSessionLocation
-
遊戲工作階段執行所在的機群位置。此值可能會指定機群的主區域或遠端位置。
- playerGatewayStatus
-
執行此遊戲工作階段之機群位置的玩家閘道狀態。
可能的值包括:
ENABLED– 玩家閘道可用於路由此遊戲工作階段的玩家連線。DISABLED– 此遊戲工作階段無法使用玩家閘道。
- computeName
-
託管遊戲工作階段之運算資源的描述性標籤。對於 EC2 機群,這是 EC2 執行個體 ID。對於容器機群,機群執行個體上的每個遊戲伺服器容器群組都會獲指派運算名稱。對於 Anywhere 機群,這是自訂運算名稱。
- placedPlayerSessions
-
在遊戲工作階段置放請求中為每個玩家建立的玩家工作階段集合。
範例
{ "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/us-east-1/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", "playerGatewayStatus": "ENABLED", "gameSessionLocation": "us-east-1", "computeName": "i-1234567890abcdef0", "placedPlayerSessions": [ { "playerId": "player-1" "playerSessionId": "psess-1232131232324124123123" } ] } }
PlacementCancelled
已透過呼叫 GameLift 服務 StopGameSessionPlacement 來取消置放請求。
詳細資訊:
- placementId
-
指派給遊戲工作階段置放請求的唯一識別符。
- startTime
-
時間戳記,指出此請求何時放置在佇列中。
- endTime
-
時間戳記,指出此請求的取消時間。
範例
{ "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
在佇列的時間限制過期之前,遊戲工作階段置放未成功完成。可視需要重新提交置放請求。
詳細資訊:
- placementId
-
指派給遊戲工作階段置放請求的唯一識別符。
- startTime
-
時間戳記,指出此請求何時放置在佇列中。
- endTime
-
時間戳記,指出此請求的取消時間。
範例
{ "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
Amazon GameLift Servers 無法滿足遊戲工作階段請求。這通常是由非預期的內部錯誤所造成。可視需要重新提交置放請求。
詳細資訊:
- placementId
-
指派給遊戲工作階段置放請求的唯一識別符。
- startTime
-
時間戳記,指出此請求何時放置在佇列中。
- endTime
-
時間戳記,指出此請求何時失敗。
範例
{ "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" } }