割り当てペイロード

ノート: このページの内容は Multiplay Hosting に関連しています。Clanforge のページについては、割り当てペイロード (Clanforge) を参照してください。

割り当てペイロード機能を使用すると、任意のファイルをサーバー割り当てリクエストでペイロードとして送信できます。これにより、設定可能な方法で、マッチごとにゲームを設定できるようになります。ProcessAllocation V1 エンドポイントによってペイロードがアップロードされると、ゲームプロセスからそのペイロードを取得できます。割り当てが終了した後、その割り当てに関連付けられたペイロードは使用できなくなります。ペイロードのライフサイクル を参照してください。

制限事項

割り当てペイロード機能には以下の制限事項があります。

  • ペイロードは 30 KB を超えることはできません。エンドポイントでは、制限サイズよりも大きいペイロードの割り当てはステータス 400 で拒否されます。
  • Multiplay ProcessAllocation V1 エンドポイント内でペイロードを割り当ての一部として加えることができます。
  • ProcessDeallocation V1 エンドポイントを使用してペイロードを削除できます。

ペイロードのライフサイクル

ペイロードは、特定の割り当てに結び付けられている、一時的なセッションベースのデータです。ペイロードがリンクされた割り当てが解除された後、そのペイロードは使用できなくなります。

以下の条件のいずれか 1 つが満たされるまではペイロードを取得できます。

  • ゲームサーバーが、割り当て解除エンドポイントを使用して割り当て解除されます。割り当てのライフサイクルが完了すると、Multiplay Hosting が割り当て UUID に関連するすべてのデータを消去します。
  • ペイロードが生存時間 (TTL、time to live) に到達します。割り当てタイムアウト値によって、フリートスケーリング設定 でペイロードの TTL が設定されます。フリートレベルで設定されない場合、デフォルトでは 1 時間です。

ペイロードの送信

ペイロード値を送信するには、payload 文字列値をリクエスト本文に加えます。ペイロードは、割り当てのライフサイクル中ずっと使用可能です。

Multiplay API URL:

https://multiplay.services.api.unity.com

リクエストの例

curl --location --request POST 'https://multiplay.services.api.unity.com/v1/allocations/projects/<projectid>/environments/<environmentid>/fleets/<fleetid>/allocations' \
--header 'Authorization: Basic YOUR_AUTH_CREDENTIALS' \
--header 'Content-Type: application/json' \
--data-raw '{
  allocationId: "<allocation_uuid>"",
  buildConfigurationId: <build_config_id>,
  regionId: "<region_id>"",
  payload: "this can be anything"
}'

レスポンスの例

{
  "allocationId": "<allocation_uuid>",
  "href": "string"
}

ペイロードの取得

割り当てリクエストが完了すると、ゲームサーバーからペイロードにアクセスできます。リクエストをペイロードプロキシ (ゲームサーバーマシン上でローカルに使用可能) に送信し、ゲームサーバーからペイロードファイルを取得します。ペイロードプロキシは、ポート 8086 でアクセスできるサービスであり、ゲームサーバーと一緒に配置されています。これが、割り当てエンドポイントを介してアップロードされたペイロードを取得します。

ノート: サーバーの割り当て UUID を取得するには、server.json ファイル を使用します。

リクエストの例

curl -X GET http://localhost:8086/payload/<allocation_uuid>

レスポンスの例

HTTP/1.1 200 OK
Date: Mon, 26 Jul 2021 17:00:33 GMT
Content-Length: 23
Content-Type: text/plain; charset=utf-8
This can be anything.