Create Build With Custom Container
Creates a multiplayer server build with a custom container.
Allowed entity token types: title
Error codes
This operation may return the following PlayFab errors:
| Error | Code |
|---|---|
| APINotEnabledForGameClientAccess | 1082 |
| MultiplayerServerBadRequest | 1382 |
| MultiplayerServerConflict | 1386 |
| MultiplayerServerForbidden | 1384 |
| MultiplayerServerInternalServerError | 1387 |
| MultiplayerServerTitleQuotaCoresExceeded | 1445 |
| MultiplayerServerUnauthorized | 1383 |
| MultiplayerServerUnavailable | 1388 |
| ProductDisabledForTitle | 1609 |
curl --request POST \
--url https://{titleId}.playfabapi.com/MultiplayerServer/CreateBuildWithCustomContainer \
--header 'Content-Type: application/json' \
--header 'X-EntityToken: <api-key>' \
--data '
{
"ContainerRunCommand": "/data/Assets -startserver",
"GameAssetReferences": [
{
"FileName": "gameserver.zip",
"MountPath": "/data/Assets"
}
],
"ContainerImageReference": {
"ImageName": "ContainerImageName",
"Tag": "ContainerTag"
},
"ContainerFlavor": "CustomLinux",
"ServerResourceConstraints": {
"CpuLimit": 0.5,
"MemoryLimitGB": 0.5
},
"BuildName": "GameBuildName",
"Metadata": {
"MetadataKey": "MetadataValue"
},
"VmSize": "Standard_D2_v2",
"MultiplayerServerCountPerVm": 10,
"Ports": [
{
"Name": "PortName",
"Num": 1243
}
],
"RegionConfigurations": [
{
"Region": "EastUs",
"MaxServers": 10,
"StandbyServers": 5,
"ScheduledStandbySettings": {
"IsEnabled": true,
"ScheduleList": [
{
"StartTime": "2020-08-21T17:00:00Z",
"EndTime": "2020-08-24T09:00:00Z",
"IsRecurringWeekly": true,
"Description": "Weekend Schedule",
"TargetStandby": 8
},
{
"StartTime": "2020-08-24T09:00:00Z",
"EndTime": "2020-08-28T17:00:00Z",
"IsRecurringWeekly": true,
"Description": "Weekday Schedule",
"TargetStandby": 3
}
]
},
"RoutingSettings": {
"NumberOfMicrosoftRoutingIPs": 1,
"NumberOfInternetRoutingIPs": 1,
"DefaultRoutingType": 1
}
},
{
"Region": "WestUs",
"MaxServers": 50,
"StandbyServers": 8,
"ScheduledStandbySettings": {
"IsEnabled": true,
"ScheduleList": [
{
"StartTime": "2020-08-21T09:00:00Z",
"EndTime": "2020-08-21T23:00:00Z",
"Description": "Game Launch",
"TargetStandby": 30
}
]
}
},
{
"Region": "NorthEurope",
"MaxServers": 7,
"StandbyServers": 3
}
],
"GameCertificateReferences": [
{
"Name": "CertName",
"GsdkAlias": "CertGsdkAlias"
}
],
"GameSecretReferences": [
{
"Name": "SecretName"
}
],
"RoutingSettings": {
"NumberOfMicrosoftRoutingIPs": 1,
"NumberOfInternetRoutingIPs": 0,
"DefaultRoutingType": 0
}
}
'import requests
url = "https://{titleId}.playfabapi.com/MultiplayerServer/CreateBuildWithCustomContainer"
payload = {
"ContainerRunCommand": "/data/Assets -startserver",
"GameAssetReferences": [
{
"FileName": "gameserver.zip",
"MountPath": "/data/Assets"
}
],
"ContainerImageReference": {
"ImageName": "ContainerImageName",
"Tag": "ContainerTag"
},
"ContainerFlavor": "CustomLinux",
"ServerResourceConstraints": {
"CpuLimit": 0.5,
"MemoryLimitGB": 0.5
},
"BuildName": "GameBuildName",
"Metadata": { "MetadataKey": "MetadataValue" },
"VmSize": "Standard_D2_v2",
"MultiplayerServerCountPerVm": 10,
"Ports": [
{
"Name": "PortName",
"Num": 1243
}
],
"RegionConfigurations": [
{
"Region": "EastUs",
"MaxServers": 10,
"StandbyServers": 5,
"ScheduledStandbySettings": {
"IsEnabled": True,
"ScheduleList": [
{
"StartTime": "2020-08-21T17:00:00Z",
"EndTime": "2020-08-24T09:00:00Z",
"IsRecurringWeekly": True,
"Description": "Weekend Schedule",
"TargetStandby": 8
},
{
"StartTime": "2020-08-24T09:00:00Z",
"EndTime": "2020-08-28T17:00:00Z",
"IsRecurringWeekly": True,
"Description": "Weekday Schedule",
"TargetStandby": 3
}
]
},
"RoutingSettings": {
"NumberOfMicrosoftRoutingIPs": 1,
"NumberOfInternetRoutingIPs": 1,
"DefaultRoutingType": 1
}
},
{
"Region": "WestUs",
"MaxServers": 50,
"StandbyServers": 8,
"ScheduledStandbySettings": {
"IsEnabled": True,
"ScheduleList": [
{
"StartTime": "2020-08-21T09:00:00Z",
"EndTime": "2020-08-21T23:00:00Z",
"Description": "Game Launch",
"TargetStandby": 30
}
]
}
},
{
"Region": "NorthEurope",
"MaxServers": 7,
"StandbyServers": 3
}
],
"GameCertificateReferences": [
{
"Name": "CertName",
"GsdkAlias": "CertGsdkAlias"
}
],
"GameSecretReferences": [{ "Name": "SecretName" }],
"RoutingSettings": {
"NumberOfMicrosoftRoutingIPs": 1,
"NumberOfInternetRoutingIPs": 0,
"DefaultRoutingType": 0
}
}
headers = {
"X-EntityToken": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-EntityToken': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
ContainerRunCommand: '/data/Assets -startserver',
GameAssetReferences: [{FileName: 'gameserver.zip', MountPath: '/data/Assets'}],
ContainerImageReference: {ImageName: 'ContainerImageName', Tag: 'ContainerTag'},
ContainerFlavor: 'CustomLinux',
ServerResourceConstraints: {CpuLimit: 0.5, MemoryLimitGB: 0.5},
BuildName: 'GameBuildName',
Metadata: {MetadataKey: 'MetadataValue'},
VmSize: 'Standard_D2_v2',
MultiplayerServerCountPerVm: 10,
Ports: [{Name: 'PortName', Num: 1243}],
RegionConfigurations: [
{
Region: 'EastUs',
MaxServers: 10,
StandbyServers: 5,
ScheduledStandbySettings: {
IsEnabled: true,
ScheduleList: [
{
StartTime: '2020-08-21T17:00:00Z',
EndTime: '2020-08-24T09:00:00Z',
IsRecurringWeekly: true,
Description: 'Weekend Schedule',
TargetStandby: 8
},
{
StartTime: '2020-08-24T09:00:00Z',
EndTime: '2020-08-28T17:00:00Z',
IsRecurringWeekly: true,
Description: 'Weekday Schedule',
TargetStandby: 3
}
]
},
RoutingSettings: {
NumberOfMicrosoftRoutingIPs: 1,
NumberOfInternetRoutingIPs: 1,
DefaultRoutingType: 1
}
},
{
Region: 'WestUs',
MaxServers: 50,
StandbyServers: 8,
ScheduledStandbySettings: {
IsEnabled: true,
ScheduleList: [
{
StartTime: '2020-08-21T09:00:00Z',
EndTime: '2020-08-21T23:00:00Z',
Description: 'Game Launch',
TargetStandby: 30
}
]
}
},
{Region: 'NorthEurope', MaxServers: 7, StandbyServers: 3}
],
GameCertificateReferences: [{Name: 'CertName', GsdkAlias: 'CertGsdkAlias'}],
GameSecretReferences: [{Name: 'SecretName'}],
RoutingSettings: {
NumberOfMicrosoftRoutingIPs: 1,
NumberOfInternetRoutingIPs: 0,
DefaultRoutingType: 0
}
})
};
fetch('https://{titleId}.playfabapi.com/MultiplayerServer/CreateBuildWithCustomContainer', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{titleId}.playfabapi.com/MultiplayerServer/CreateBuildWithCustomContainer",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'ContainerRunCommand' => '/data/Assets -startserver',
'GameAssetReferences' => [
[
'FileName' => 'gameserver.zip',
'MountPath' => '/data/Assets'
]
],
'ContainerImageReference' => [
'ImageName' => 'ContainerImageName',
'Tag' => 'ContainerTag'
],
'ContainerFlavor' => 'CustomLinux',
'ServerResourceConstraints' => [
'CpuLimit' => 0.5,
'MemoryLimitGB' => 0.5
],
'BuildName' => 'GameBuildName',
'Metadata' => [
'MetadataKey' => 'MetadataValue'
],
'VmSize' => 'Standard_D2_v2',
'MultiplayerServerCountPerVm' => 10,
'Ports' => [
[
'Name' => 'PortName',
'Num' => 1243
]
],
'RegionConfigurations' => [
[
'Region' => 'EastUs',
'MaxServers' => 10,
'StandbyServers' => 5,
'ScheduledStandbySettings' => [
'IsEnabled' => true,
'ScheduleList' => [
[
'StartTime' => '2020-08-21T17:00:00Z',
'EndTime' => '2020-08-24T09:00:00Z',
'IsRecurringWeekly' => true,
'Description' => 'Weekend Schedule',
'TargetStandby' => 8
],
[
'StartTime' => '2020-08-24T09:00:00Z',
'EndTime' => '2020-08-28T17:00:00Z',
'IsRecurringWeekly' => true,
'Description' => 'Weekday Schedule',
'TargetStandby' => 3
]
]
],
'RoutingSettings' => [
'NumberOfMicrosoftRoutingIPs' => 1,
'NumberOfInternetRoutingIPs' => 1,
'DefaultRoutingType' => 1
]
],
[
'Region' => 'WestUs',
'MaxServers' => 50,
'StandbyServers' => 8,
'ScheduledStandbySettings' => [
'IsEnabled' => true,
'ScheduleList' => [
[
'StartTime' => '2020-08-21T09:00:00Z',
'EndTime' => '2020-08-21T23:00:00Z',
'Description' => 'Game Launch',
'TargetStandby' => 30
]
]
]
],
[
'Region' => 'NorthEurope',
'MaxServers' => 7,
'StandbyServers' => 3
]
],
'GameCertificateReferences' => [
[
'Name' => 'CertName',
'GsdkAlias' => 'CertGsdkAlias'
]
],
'GameSecretReferences' => [
[
'Name' => 'SecretName'
]
],
'RoutingSettings' => [
'NumberOfMicrosoftRoutingIPs' => 1,
'NumberOfInternetRoutingIPs' => 0,
'DefaultRoutingType' => 0
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-EntityToken: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{titleId}.playfabapi.com/MultiplayerServer/CreateBuildWithCustomContainer"
payload := strings.NewReader("{\n \"ContainerRunCommand\": \"/data/Assets -startserver\",\n \"GameAssetReferences\": [\n {\n \"FileName\": \"gameserver.zip\",\n \"MountPath\": \"/data/Assets\"\n }\n ],\n \"ContainerImageReference\": {\n \"ImageName\": \"ContainerImageName\",\n \"Tag\": \"ContainerTag\"\n },\n \"ContainerFlavor\": \"CustomLinux\",\n \"ServerResourceConstraints\": {\n \"CpuLimit\": 0.5,\n \"MemoryLimitGB\": 0.5\n },\n \"BuildName\": \"GameBuildName\",\n \"Metadata\": {\n \"MetadataKey\": \"MetadataValue\"\n },\n \"VmSize\": \"Standard_D2_v2\",\n \"MultiplayerServerCountPerVm\": 10,\n \"Ports\": [\n {\n \"Name\": \"PortName\",\n \"Num\": 1243\n }\n ],\n \"RegionConfigurations\": [\n {\n \"Region\": \"EastUs\",\n \"MaxServers\": 10,\n \"StandbyServers\": 5,\n \"ScheduledStandbySettings\": {\n \"IsEnabled\": true,\n \"ScheduleList\": [\n {\n \"StartTime\": \"2020-08-21T17:00:00Z\",\n \"EndTime\": \"2020-08-24T09:00:00Z\",\n \"IsRecurringWeekly\": true,\n \"Description\": \"Weekend Schedule\",\n \"TargetStandby\": 8\n },\n {\n \"StartTime\": \"2020-08-24T09:00:00Z\",\n \"EndTime\": \"2020-08-28T17:00:00Z\",\n \"IsRecurringWeekly\": true,\n \"Description\": \"Weekday Schedule\",\n \"TargetStandby\": 3\n }\n ]\n },\n \"RoutingSettings\": {\n \"NumberOfMicrosoftRoutingIPs\": 1,\n \"NumberOfInternetRoutingIPs\": 1,\n \"DefaultRoutingType\": 1\n }\n },\n {\n \"Region\": \"WestUs\",\n \"MaxServers\": 50,\n \"StandbyServers\": 8,\n \"ScheduledStandbySettings\": {\n \"IsEnabled\": true,\n \"ScheduleList\": [\n {\n \"StartTime\": \"2020-08-21T09:00:00Z\",\n \"EndTime\": \"2020-08-21T23:00:00Z\",\n \"Description\": \"Game Launch\",\n \"TargetStandby\": 30\n }\n ]\n }\n },\n {\n \"Region\": \"NorthEurope\",\n \"MaxServers\": 7,\n \"StandbyServers\": 3\n }\n ],\n \"GameCertificateReferences\": [\n {\n \"Name\": \"CertName\",\n \"GsdkAlias\": \"CertGsdkAlias\"\n }\n ],\n \"GameSecretReferences\": [\n {\n \"Name\": \"SecretName\"\n }\n ],\n \"RoutingSettings\": {\n \"NumberOfMicrosoftRoutingIPs\": 1,\n \"NumberOfInternetRoutingIPs\": 0,\n \"DefaultRoutingType\": 0\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-EntityToken", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{titleId}.playfabapi.com/MultiplayerServer/CreateBuildWithCustomContainer")
.header("X-EntityToken", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"ContainerRunCommand\": \"/data/Assets -startserver\",\n \"GameAssetReferences\": [\n {\n \"FileName\": \"gameserver.zip\",\n \"MountPath\": \"/data/Assets\"\n }\n ],\n \"ContainerImageReference\": {\n \"ImageName\": \"ContainerImageName\",\n \"Tag\": \"ContainerTag\"\n },\n \"ContainerFlavor\": \"CustomLinux\",\n \"ServerResourceConstraints\": {\n \"CpuLimit\": 0.5,\n \"MemoryLimitGB\": 0.5\n },\n \"BuildName\": \"GameBuildName\",\n \"Metadata\": {\n \"MetadataKey\": \"MetadataValue\"\n },\n \"VmSize\": \"Standard_D2_v2\",\n \"MultiplayerServerCountPerVm\": 10,\n \"Ports\": [\n {\n \"Name\": \"PortName\",\n \"Num\": 1243\n }\n ],\n \"RegionConfigurations\": [\n {\n \"Region\": \"EastUs\",\n \"MaxServers\": 10,\n \"StandbyServers\": 5,\n \"ScheduledStandbySettings\": {\n \"IsEnabled\": true,\n \"ScheduleList\": [\n {\n \"StartTime\": \"2020-08-21T17:00:00Z\",\n \"EndTime\": \"2020-08-24T09:00:00Z\",\n \"IsRecurringWeekly\": true,\n \"Description\": \"Weekend Schedule\",\n \"TargetStandby\": 8\n },\n {\n \"StartTime\": \"2020-08-24T09:00:00Z\",\n \"EndTime\": \"2020-08-28T17:00:00Z\",\n \"IsRecurringWeekly\": true,\n \"Description\": \"Weekday Schedule\",\n \"TargetStandby\": 3\n }\n ]\n },\n \"RoutingSettings\": {\n \"NumberOfMicrosoftRoutingIPs\": 1,\n \"NumberOfInternetRoutingIPs\": 1,\n \"DefaultRoutingType\": 1\n }\n },\n {\n \"Region\": \"WestUs\",\n \"MaxServers\": 50,\n \"StandbyServers\": 8,\n \"ScheduledStandbySettings\": {\n \"IsEnabled\": true,\n \"ScheduleList\": [\n {\n \"StartTime\": \"2020-08-21T09:00:00Z\",\n \"EndTime\": \"2020-08-21T23:00:00Z\",\n \"Description\": \"Game Launch\",\n \"TargetStandby\": 30\n }\n ]\n }\n },\n {\n \"Region\": \"NorthEurope\",\n \"MaxServers\": 7,\n \"StandbyServers\": 3\n }\n ],\n \"GameCertificateReferences\": [\n {\n \"Name\": \"CertName\",\n \"GsdkAlias\": \"CertGsdkAlias\"\n }\n ],\n \"GameSecretReferences\": [\n {\n \"Name\": \"SecretName\"\n }\n ],\n \"RoutingSettings\": {\n \"NumberOfMicrosoftRoutingIPs\": 1,\n \"NumberOfInternetRoutingIPs\": 0,\n \"DefaultRoutingType\": 0\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/MultiplayerServer/CreateBuildWithCustomContainer")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-EntityToken"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"ContainerRunCommand\": \"/data/Assets -startserver\",\n \"GameAssetReferences\": [\n {\n \"FileName\": \"gameserver.zip\",\n \"MountPath\": \"/data/Assets\"\n }\n ],\n \"ContainerImageReference\": {\n \"ImageName\": \"ContainerImageName\",\n \"Tag\": \"ContainerTag\"\n },\n \"ContainerFlavor\": \"CustomLinux\",\n \"ServerResourceConstraints\": {\n \"CpuLimit\": 0.5,\n \"MemoryLimitGB\": 0.5\n },\n \"BuildName\": \"GameBuildName\",\n \"Metadata\": {\n \"MetadataKey\": \"MetadataValue\"\n },\n \"VmSize\": \"Standard_D2_v2\",\n \"MultiplayerServerCountPerVm\": 10,\n \"Ports\": [\n {\n \"Name\": \"PortName\",\n \"Num\": 1243\n }\n ],\n \"RegionConfigurations\": [\n {\n \"Region\": \"EastUs\",\n \"MaxServers\": 10,\n \"StandbyServers\": 5,\n \"ScheduledStandbySettings\": {\n \"IsEnabled\": true,\n \"ScheduleList\": [\n {\n \"StartTime\": \"2020-08-21T17:00:00Z\",\n \"EndTime\": \"2020-08-24T09:00:00Z\",\n \"IsRecurringWeekly\": true,\n \"Description\": \"Weekend Schedule\",\n \"TargetStandby\": 8\n },\n {\n \"StartTime\": \"2020-08-24T09:00:00Z\",\n \"EndTime\": \"2020-08-28T17:00:00Z\",\n \"IsRecurringWeekly\": true,\n \"Description\": \"Weekday Schedule\",\n \"TargetStandby\": 3\n }\n ]\n },\n \"RoutingSettings\": {\n \"NumberOfMicrosoftRoutingIPs\": 1,\n \"NumberOfInternetRoutingIPs\": 1,\n \"DefaultRoutingType\": 1\n }\n },\n {\n \"Region\": \"WestUs\",\n \"MaxServers\": 50,\n \"StandbyServers\": 8,\n \"ScheduledStandbySettings\": {\n \"IsEnabled\": true,\n \"ScheduleList\": [\n {\n \"StartTime\": \"2020-08-21T09:00:00Z\",\n \"EndTime\": \"2020-08-21T23:00:00Z\",\n \"Description\": \"Game Launch\",\n \"TargetStandby\": 30\n }\n ]\n }\n },\n {\n \"Region\": \"NorthEurope\",\n \"MaxServers\": 7,\n \"StandbyServers\": 3\n }\n ],\n \"GameCertificateReferences\": [\n {\n \"Name\": \"CertName\",\n \"GsdkAlias\": \"CertGsdkAlias\"\n }\n ],\n \"GameSecretReferences\": [\n {\n \"Name\": \"SecretName\"\n }\n ],\n \"RoutingSettings\": {\n \"NumberOfMicrosoftRoutingIPs\": 1,\n \"NumberOfInternetRoutingIPs\": 0,\n \"DefaultRoutingType\": 0\n }\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"status": "OK",
"data": {
"ContainerRunCommand": "/data/Assets -startserver",
"LinuxInstrumentationConfiguration": {},
"ServerResourceConstraints": {
"CpuLimit": 0.5,
"MemoryLimitGB": 0.5
},
"BuildId": "21781fa8-096d-4d9c-b699-75433d579285",
"BuildName": "GameBuildName",
"CreationTime": "2014-04-07T09:04:28",
"Metadata": {
"MetadataKey": "MetadataValue"
},
"VmSize": "Standard_D2_v2",
"OsPlatform": "Linux",
"ContainerFlavor": "CustomLinux",
"Ports": [
{
"Name": "PortName",
"Num": 1243
}
],
"RegionConfigurations": [
{
"Region": "EastUs",
"Status": "Initialized",
"MaxServers": 10,
"StandbyServers": 5,
"ScheduledStandbySettings": {
"IsEnabled": true,
"ScheduleList": [
{
"StartTime": "2020-08-21T17:00:00Z",
"EndTime": "2020-08-24T09:00:00Z",
"IsRecurringWeekly": true,
"Description": "Weekend Schedule",
"TargetStandby": 8
},
{
"StartTime": "2020-08-24T09:00:00Z",
"EndTime": "2020-08-28T17:00:00Z",
"IsRecurringWeekly": true,
"Description": "Weekday Schedule",
"TargetStandby": 3
}
]
}
},
{
"Region": "WestUs",
"Status": "Deployed",
"MaxServers": 50,
"StandbyServers": 8,
"ScheduledStandbySettings": {
"IsEnabled": true,
"ScheduleList": [
{
"StartTime": "2020-08-21T09:00:00Z",
"EndTime": "2020-08-21T23:00:00Z",
"Description": "Game Launch",
"TargetStandby": 30
}
]
}
},
{
"Region": "NorthEurope",
"Status": "Unhealthy",
"MaxServers": 7,
"StandbyServers": 3
}
],
"GameAssetReferences": [
{
"FileName": "gameserver.zip",
"MountPath": "/data/Assets"
}
],
"GameCertificateReferences": [
{
"Name": "CertName",
"GsdkAlias": "CertGsdkAlias"
}
],
"GameSecretReferences": [
{
"Name": "SecretName"
}
],
"MultiplayerServerCountPerVm": 10
}
}{
"code": 123,
"errorCode": 123,
"status": "<string>",
"error": "<string>",
"errorMessage": "<string>",
"errorDetails": {}
}Authorizations
This API requires an Entity Session Token, available from the Entity GetEntityToken method.
Body
Creates a multiplayer server build with a custom container and returns information about the build creation request.
Creates a multiplayer server build with a custom container and returns information about the build creation request.
The build name.
The number of multiplayer servers to host on a single VM.
The ports to map the build on.
Show child attributes
Show child attributes
The region configurations for the build.
Show child attributes
Show child attributes
When true, assets will not be copied for each server inside the VM. All serverswill run from the same set of assets, or will have the same assets mounted in the container.
The flavor of container to create a build from.
ManagedWindowsServerCore, CustomLinux, ManagedWindowsServerCorePreview, Invalid The container reference, consisting of the image name and tag.
Show child attributes
Show child attributes
The container command to run when the multiplayer server has been allocated, including any arguments.
The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
The list of game assets related to the build.
Show child attributes
Show child attributes
The game certificates for the build.
Show child attributes
Show child attributes
The game secrets for the build.
Show child attributes
Show child attributes
The Linux instrumentation configuration for the build.
Show child attributes
Show child attributes
Metadata to tag the build. The keys are case insensitive. The build metadata is made available to the server through Game Server SDK (GSDK).Constraints: Maximum number of keys: 30, Maximum key length: 50, Maximum value length: 100
The resource constraints to apply to each server on the VM (EXPERIMENTAL API)
Show child attributes
Show child attributes
The VM size to create the build on.
Standard_A1, Standard_A2, Standard_A3, Standard_A4, Standard_A1_v2, Standard_A2_v2, Standard_A4_v2, Standard_A8_v2, Standard_D1_v2, Standard_D2_v2, Standard_D3_v2, Standard_D4_v2, Standard_D5_v2, Standard_D2_v3, Standard_D4_v3, Standard_D8_v3, Standard_D16_v3, Standard_F1, Standard_F2, Standard_F4, Standard_F8, Standard_F16, Standard_F2s_v2, Standard_F4s_v2, Standard_F8s_v2, Standard_F16s_v2, Standard_F2as_v6, Standard_F4as_v6, Standard_F8as_v6, Standard_F16as_v6, Standard_F2as_v7, Standard_F4as_v7, Standard_F8as_v7, Standard_F16as_v7, Standard_F2ads_v7, Standard_F4ads_v7, Standard_F8ads_v7, Standard_F16ads_v7, Standard_D2as_v4, Standard_D4as_v4, Standard_D8as_v4, Standard_D16as_v4, Standard_D2a_v4, Standard_D4a_v4, Standard_D8a_v4, Standard_D16a_v4, Standard_D2ads_v5, Standard_D4ads_v5, Standard_D8ads_v5, Standard_D16ads_v5, Standard_D2ads_v6, Standard_D4ads_v6, Standard_D8ads_v6, Standard_D16ads_v6, Standard_D2ads_v7, Standard_D4ads_v7, Standard_D8ads_v7, Standard_D16ads_v7, Standard_E2a_v4, Standard_E4a_v4, Standard_E8a_v4, Standard_E16a_v4, Standard_E2as_v4, Standard_E4as_v4, Standard_E8as_v4, Standard_E16as_v4, Standard_E2ads_v5, Standard_E4ads_v5, Standard_E8ads_v5, Standard_E16ads_v5, Standard_E2ads_v6, Standard_E4ads_v6, Standard_E8ads_v6, Standard_E16ads_v6, Standard_E2ads_v7, Standard_E4ads_v7, Standard_E8ads_v7, Standard_E16ads_v7, Standard_E2ds_v4, Standard_E4ds_v4, Standard_E8ds_v4, Standard_E16ds_v4, Standard_E2ds_v5, Standard_E4ds_v5, Standard_E8ds_v5, Standard_E16ds_v5, Standard_E2ds_v6, Standard_E4ds_v6, Standard_E8ds_v6, Standard_E16ds_v6, Standard_D2s_v3, Standard_D4s_v3, Standard_D8s_v3, Standard_D16s_v3, Standard_DS1_v2, Standard_DS2_v2, Standard_DS3_v2, Standard_DS4_v2, Standard_DS5_v2, Standard_NC4as_T4_v3, Standard_D2d_v4, Standard_D4d_v4, Standard_D8d_v4, Standard_D16d_v4, Standard_D2ds_v4, Standard_D4ds_v4, Standard_D8ds_v4, Standard_D16ds_v4, Standard_HB120_16rs_v3, Standard_HB120_32rs_v3, Standard_HB120_64rs_v3, Standard_HB120_96rs_v3, Standard_HB120rs_v3, Standard_D2d_v5, Standard_D4d_v5, Standard_D8d_v5, Standard_D16d_v5, Standard_D32d_v5, Standard_D2ds_v5, Standard_D4ds_v5, Standard_D8ds_v5, Standard_D16ds_v5, Standard_D32ds_v5, Standard_D2ds_v6, Standard_D4ds_v6, Standard_D8ds_v6, Standard_D16ds_v6, Standard_D2pds_v6, Standard_D4pds_v6, Standard_D8pds_v6, Standard_D16pds_v6 The configuration for the VmStartupScript for the build
Show child attributes
Show child attributes
Response
The Http status code. If X-ReportErrorAsSuccess header is set to true, this will report the actual http error code.
The Http status code as a string.
Show child attributes
Show child attributes
{
"ContainerRunCommand": "/data/Assets -startserver",
"LinuxInstrumentationConfiguration": {},
"ServerResourceConstraints": { "CpuLimit": 0.5, "MemoryLimitGB": 0.5 },
"BuildId": "21781fa8-096d-4d9c-b699-75433d579285",
"BuildName": "GameBuildName",
"CreationTime": "2014-04-07T09:04:28",
"Metadata": { "MetadataKey": "MetadataValue" },
"VmSize": "Standard_D2_v2",
"OsPlatform": "Linux",
"ContainerFlavor": "CustomLinux",
"Ports": [{ "Name": "PortName", "Num": 1243 }],
"RegionConfigurations": [
{
"Region": "EastUs",
"Status": "Initialized",
"MaxServers": 10,
"StandbyServers": 5,
"ScheduledStandbySettings": {
"IsEnabled": true,
"ScheduleList": [
{
"StartTime": "2020-08-21T17:00:00Z",
"EndTime": "2020-08-24T09:00:00Z",
"IsRecurringWeekly": true,
"Description": "Weekend Schedule",
"TargetStandby": 8
},
{
"StartTime": "2020-08-24T09:00:00Z",
"EndTime": "2020-08-28T17:00:00Z",
"IsRecurringWeekly": true,
"Description": "Weekday Schedule",
"TargetStandby": 3
}
]
}
},
{
"Region": "WestUs",
"Status": "Deployed",
"MaxServers": 50,
"StandbyServers": 8,
"ScheduledStandbySettings": {
"IsEnabled": true,
"ScheduleList": [
{
"StartTime": "2020-08-21T09:00:00Z",
"EndTime": "2020-08-21T23:00:00Z",
"Description": "Game Launch",
"TargetStandby": 30
}
]
}
},
{
"Region": "NorthEurope",
"Status": "Unhealthy",
"MaxServers": 7,
"StandbyServers": 3
}
],
"GameAssetReferences": [
{
"FileName": "gameserver.zip",
"MountPath": "/data/Assets"
}
],
"GameCertificateReferences": [
{
"Name": "CertName",
"GsdkAlias": "CertGsdkAlias"
}
],
"GameSecretReferences": [{ "Name": "SecretName" }],
"MultiplayerServerCountPerVm": 10
}
Was this page helpful?
curl --request POST \
--url https://{titleId}.playfabapi.com/MultiplayerServer/CreateBuildWithCustomContainer \
--header 'Content-Type: application/json' \
--header 'X-EntityToken: <api-key>' \
--data '
{
"ContainerRunCommand": "/data/Assets -startserver",
"GameAssetReferences": [
{
"FileName": "gameserver.zip",
"MountPath": "/data/Assets"
}
],
"ContainerImageReference": {
"ImageName": "ContainerImageName",
"Tag": "ContainerTag"
},
"ContainerFlavor": "CustomLinux",
"ServerResourceConstraints": {
"CpuLimit": 0.5,
"MemoryLimitGB": 0.5
},
"BuildName": "GameBuildName",
"Metadata": {
"MetadataKey": "MetadataValue"
},
"VmSize": "Standard_D2_v2",
"MultiplayerServerCountPerVm": 10,
"Ports": [
{
"Name": "PortName",
"Num": 1243
}
],
"RegionConfigurations": [
{
"Region": "EastUs",
"MaxServers": 10,
"StandbyServers": 5,
"ScheduledStandbySettings": {
"IsEnabled": true,
"ScheduleList": [
{
"StartTime": "2020-08-21T17:00:00Z",
"EndTime": "2020-08-24T09:00:00Z",
"IsRecurringWeekly": true,
"Description": "Weekend Schedule",
"TargetStandby": 8
},
{
"StartTime": "2020-08-24T09:00:00Z",
"EndTime": "2020-08-28T17:00:00Z",
"IsRecurringWeekly": true,
"Description": "Weekday Schedule",
"TargetStandby": 3
}
]
},
"RoutingSettings": {
"NumberOfMicrosoftRoutingIPs": 1,
"NumberOfInternetRoutingIPs": 1,
"DefaultRoutingType": 1
}
},
{
"Region": "WestUs",
"MaxServers": 50,
"StandbyServers": 8,
"ScheduledStandbySettings": {
"IsEnabled": true,
"ScheduleList": [
{
"StartTime": "2020-08-21T09:00:00Z",
"EndTime": "2020-08-21T23:00:00Z",
"Description": "Game Launch",
"TargetStandby": 30
}
]
}
},
{
"Region": "NorthEurope",
"MaxServers": 7,
"StandbyServers": 3
}
],
"GameCertificateReferences": [
{
"Name": "CertName",
"GsdkAlias": "CertGsdkAlias"
}
],
"GameSecretReferences": [
{
"Name": "SecretName"
}
],
"RoutingSettings": {
"NumberOfMicrosoftRoutingIPs": 1,
"NumberOfInternetRoutingIPs": 0,
"DefaultRoutingType": 0
}
}
'import requests
url = "https://{titleId}.playfabapi.com/MultiplayerServer/CreateBuildWithCustomContainer"
payload = {
"ContainerRunCommand": "/data/Assets -startserver",
"GameAssetReferences": [
{
"FileName": "gameserver.zip",
"MountPath": "/data/Assets"
}
],
"ContainerImageReference": {
"ImageName": "ContainerImageName",
"Tag": "ContainerTag"
},
"ContainerFlavor": "CustomLinux",
"ServerResourceConstraints": {
"CpuLimit": 0.5,
"MemoryLimitGB": 0.5
},
"BuildName": "GameBuildName",
"Metadata": { "MetadataKey": "MetadataValue" },
"VmSize": "Standard_D2_v2",
"MultiplayerServerCountPerVm": 10,
"Ports": [
{
"Name": "PortName",
"Num": 1243
}
],
"RegionConfigurations": [
{
"Region": "EastUs",
"MaxServers": 10,
"StandbyServers": 5,
"ScheduledStandbySettings": {
"IsEnabled": True,
"ScheduleList": [
{
"StartTime": "2020-08-21T17:00:00Z",
"EndTime": "2020-08-24T09:00:00Z",
"IsRecurringWeekly": True,
"Description": "Weekend Schedule",
"TargetStandby": 8
},
{
"StartTime": "2020-08-24T09:00:00Z",
"EndTime": "2020-08-28T17:00:00Z",
"IsRecurringWeekly": True,
"Description": "Weekday Schedule",
"TargetStandby": 3
}
]
},
"RoutingSettings": {
"NumberOfMicrosoftRoutingIPs": 1,
"NumberOfInternetRoutingIPs": 1,
"DefaultRoutingType": 1
}
},
{
"Region": "WestUs",
"MaxServers": 50,
"StandbyServers": 8,
"ScheduledStandbySettings": {
"IsEnabled": True,
"ScheduleList": [
{
"StartTime": "2020-08-21T09:00:00Z",
"EndTime": "2020-08-21T23:00:00Z",
"Description": "Game Launch",
"TargetStandby": 30
}
]
}
},
{
"Region": "NorthEurope",
"MaxServers": 7,
"StandbyServers": 3
}
],
"GameCertificateReferences": [
{
"Name": "CertName",
"GsdkAlias": "CertGsdkAlias"
}
],
"GameSecretReferences": [{ "Name": "SecretName" }],
"RoutingSettings": {
"NumberOfMicrosoftRoutingIPs": 1,
"NumberOfInternetRoutingIPs": 0,
"DefaultRoutingType": 0
}
}
headers = {
"X-EntityToken": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-EntityToken': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
ContainerRunCommand: '/data/Assets -startserver',
GameAssetReferences: [{FileName: 'gameserver.zip', MountPath: '/data/Assets'}],
ContainerImageReference: {ImageName: 'ContainerImageName', Tag: 'ContainerTag'},
ContainerFlavor: 'CustomLinux',
ServerResourceConstraints: {CpuLimit: 0.5, MemoryLimitGB: 0.5},
BuildName: 'GameBuildName',
Metadata: {MetadataKey: 'MetadataValue'},
VmSize: 'Standard_D2_v2',
MultiplayerServerCountPerVm: 10,
Ports: [{Name: 'PortName', Num: 1243}],
RegionConfigurations: [
{
Region: 'EastUs',
MaxServers: 10,
StandbyServers: 5,
ScheduledStandbySettings: {
IsEnabled: true,
ScheduleList: [
{
StartTime: '2020-08-21T17:00:00Z',
EndTime: '2020-08-24T09:00:00Z',
IsRecurringWeekly: true,
Description: 'Weekend Schedule',
TargetStandby: 8
},
{
StartTime: '2020-08-24T09:00:00Z',
EndTime: '2020-08-28T17:00:00Z',
IsRecurringWeekly: true,
Description: 'Weekday Schedule',
TargetStandby: 3
}
]
},
RoutingSettings: {
NumberOfMicrosoftRoutingIPs: 1,
NumberOfInternetRoutingIPs: 1,
DefaultRoutingType: 1
}
},
{
Region: 'WestUs',
MaxServers: 50,
StandbyServers: 8,
ScheduledStandbySettings: {
IsEnabled: true,
ScheduleList: [
{
StartTime: '2020-08-21T09:00:00Z',
EndTime: '2020-08-21T23:00:00Z',
Description: 'Game Launch',
TargetStandby: 30
}
]
}
},
{Region: 'NorthEurope', MaxServers: 7, StandbyServers: 3}
],
GameCertificateReferences: [{Name: 'CertName', GsdkAlias: 'CertGsdkAlias'}],
GameSecretReferences: [{Name: 'SecretName'}],
RoutingSettings: {
NumberOfMicrosoftRoutingIPs: 1,
NumberOfInternetRoutingIPs: 0,
DefaultRoutingType: 0
}
})
};
fetch('https://{titleId}.playfabapi.com/MultiplayerServer/CreateBuildWithCustomContainer', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{titleId}.playfabapi.com/MultiplayerServer/CreateBuildWithCustomContainer",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'ContainerRunCommand' => '/data/Assets -startserver',
'GameAssetReferences' => [
[
'FileName' => 'gameserver.zip',
'MountPath' => '/data/Assets'
]
],
'ContainerImageReference' => [
'ImageName' => 'ContainerImageName',
'Tag' => 'ContainerTag'
],
'ContainerFlavor' => 'CustomLinux',
'ServerResourceConstraints' => [
'CpuLimit' => 0.5,
'MemoryLimitGB' => 0.5
],
'BuildName' => 'GameBuildName',
'Metadata' => [
'MetadataKey' => 'MetadataValue'
],
'VmSize' => 'Standard_D2_v2',
'MultiplayerServerCountPerVm' => 10,
'Ports' => [
[
'Name' => 'PortName',
'Num' => 1243
]
],
'RegionConfigurations' => [
[
'Region' => 'EastUs',
'MaxServers' => 10,
'StandbyServers' => 5,
'ScheduledStandbySettings' => [
'IsEnabled' => true,
'ScheduleList' => [
[
'StartTime' => '2020-08-21T17:00:00Z',
'EndTime' => '2020-08-24T09:00:00Z',
'IsRecurringWeekly' => true,
'Description' => 'Weekend Schedule',
'TargetStandby' => 8
],
[
'StartTime' => '2020-08-24T09:00:00Z',
'EndTime' => '2020-08-28T17:00:00Z',
'IsRecurringWeekly' => true,
'Description' => 'Weekday Schedule',
'TargetStandby' => 3
]
]
],
'RoutingSettings' => [
'NumberOfMicrosoftRoutingIPs' => 1,
'NumberOfInternetRoutingIPs' => 1,
'DefaultRoutingType' => 1
]
],
[
'Region' => 'WestUs',
'MaxServers' => 50,
'StandbyServers' => 8,
'ScheduledStandbySettings' => [
'IsEnabled' => true,
'ScheduleList' => [
[
'StartTime' => '2020-08-21T09:00:00Z',
'EndTime' => '2020-08-21T23:00:00Z',
'Description' => 'Game Launch',
'TargetStandby' => 30
]
]
]
],
[
'Region' => 'NorthEurope',
'MaxServers' => 7,
'StandbyServers' => 3
]
],
'GameCertificateReferences' => [
[
'Name' => 'CertName',
'GsdkAlias' => 'CertGsdkAlias'
]
],
'GameSecretReferences' => [
[
'Name' => 'SecretName'
]
],
'RoutingSettings' => [
'NumberOfMicrosoftRoutingIPs' => 1,
'NumberOfInternetRoutingIPs' => 0,
'DefaultRoutingType' => 0
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-EntityToken: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{titleId}.playfabapi.com/MultiplayerServer/CreateBuildWithCustomContainer"
payload := strings.NewReader("{\n \"ContainerRunCommand\": \"/data/Assets -startserver\",\n \"GameAssetReferences\": [\n {\n \"FileName\": \"gameserver.zip\",\n \"MountPath\": \"/data/Assets\"\n }\n ],\n \"ContainerImageReference\": {\n \"ImageName\": \"ContainerImageName\",\n \"Tag\": \"ContainerTag\"\n },\n \"ContainerFlavor\": \"CustomLinux\",\n \"ServerResourceConstraints\": {\n \"CpuLimit\": 0.5,\n \"MemoryLimitGB\": 0.5\n },\n \"BuildName\": \"GameBuildName\",\n \"Metadata\": {\n \"MetadataKey\": \"MetadataValue\"\n },\n \"VmSize\": \"Standard_D2_v2\",\n \"MultiplayerServerCountPerVm\": 10,\n \"Ports\": [\n {\n \"Name\": \"PortName\",\n \"Num\": 1243\n }\n ],\n \"RegionConfigurations\": [\n {\n \"Region\": \"EastUs\",\n \"MaxServers\": 10,\n \"StandbyServers\": 5,\n \"ScheduledStandbySettings\": {\n \"IsEnabled\": true,\n \"ScheduleList\": [\n {\n \"StartTime\": \"2020-08-21T17:00:00Z\",\n \"EndTime\": \"2020-08-24T09:00:00Z\",\n \"IsRecurringWeekly\": true,\n \"Description\": \"Weekend Schedule\",\n \"TargetStandby\": 8\n },\n {\n \"StartTime\": \"2020-08-24T09:00:00Z\",\n \"EndTime\": \"2020-08-28T17:00:00Z\",\n \"IsRecurringWeekly\": true,\n \"Description\": \"Weekday Schedule\",\n \"TargetStandby\": 3\n }\n ]\n },\n \"RoutingSettings\": {\n \"NumberOfMicrosoftRoutingIPs\": 1,\n \"NumberOfInternetRoutingIPs\": 1,\n \"DefaultRoutingType\": 1\n }\n },\n {\n \"Region\": \"WestUs\",\n \"MaxServers\": 50,\n \"StandbyServers\": 8,\n \"ScheduledStandbySettings\": {\n \"IsEnabled\": true,\n \"ScheduleList\": [\n {\n \"StartTime\": \"2020-08-21T09:00:00Z\",\n \"EndTime\": \"2020-08-21T23:00:00Z\",\n \"Description\": \"Game Launch\",\n \"TargetStandby\": 30\n }\n ]\n }\n },\n {\n \"Region\": \"NorthEurope\",\n \"MaxServers\": 7,\n \"StandbyServers\": 3\n }\n ],\n \"GameCertificateReferences\": [\n {\n \"Name\": \"CertName\",\n \"GsdkAlias\": \"CertGsdkAlias\"\n }\n ],\n \"GameSecretReferences\": [\n {\n \"Name\": \"SecretName\"\n }\n ],\n \"RoutingSettings\": {\n \"NumberOfMicrosoftRoutingIPs\": 1,\n \"NumberOfInternetRoutingIPs\": 0,\n \"DefaultRoutingType\": 0\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-EntityToken", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{titleId}.playfabapi.com/MultiplayerServer/CreateBuildWithCustomContainer")
.header("X-EntityToken", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"ContainerRunCommand\": \"/data/Assets -startserver\",\n \"GameAssetReferences\": [\n {\n \"FileName\": \"gameserver.zip\",\n \"MountPath\": \"/data/Assets\"\n }\n ],\n \"ContainerImageReference\": {\n \"ImageName\": \"ContainerImageName\",\n \"Tag\": \"ContainerTag\"\n },\n \"ContainerFlavor\": \"CustomLinux\",\n \"ServerResourceConstraints\": {\n \"CpuLimit\": 0.5,\n \"MemoryLimitGB\": 0.5\n },\n \"BuildName\": \"GameBuildName\",\n \"Metadata\": {\n \"MetadataKey\": \"MetadataValue\"\n },\n \"VmSize\": \"Standard_D2_v2\",\n \"MultiplayerServerCountPerVm\": 10,\n \"Ports\": [\n {\n \"Name\": \"PortName\",\n \"Num\": 1243\n }\n ],\n \"RegionConfigurations\": [\n {\n \"Region\": \"EastUs\",\n \"MaxServers\": 10,\n \"StandbyServers\": 5,\n \"ScheduledStandbySettings\": {\n \"IsEnabled\": true,\n \"ScheduleList\": [\n {\n \"StartTime\": \"2020-08-21T17:00:00Z\",\n \"EndTime\": \"2020-08-24T09:00:00Z\",\n \"IsRecurringWeekly\": true,\n \"Description\": \"Weekend Schedule\",\n \"TargetStandby\": 8\n },\n {\n \"StartTime\": \"2020-08-24T09:00:00Z\",\n \"EndTime\": \"2020-08-28T17:00:00Z\",\n \"IsRecurringWeekly\": true,\n \"Description\": \"Weekday Schedule\",\n \"TargetStandby\": 3\n }\n ]\n },\n \"RoutingSettings\": {\n \"NumberOfMicrosoftRoutingIPs\": 1,\n \"NumberOfInternetRoutingIPs\": 1,\n \"DefaultRoutingType\": 1\n }\n },\n {\n \"Region\": \"WestUs\",\n \"MaxServers\": 50,\n \"StandbyServers\": 8,\n \"ScheduledStandbySettings\": {\n \"IsEnabled\": true,\n \"ScheduleList\": [\n {\n \"StartTime\": \"2020-08-21T09:00:00Z\",\n \"EndTime\": \"2020-08-21T23:00:00Z\",\n \"Description\": \"Game Launch\",\n \"TargetStandby\": 30\n }\n ]\n }\n },\n {\n \"Region\": \"NorthEurope\",\n \"MaxServers\": 7,\n \"StandbyServers\": 3\n }\n ],\n \"GameCertificateReferences\": [\n {\n \"Name\": \"CertName\",\n \"GsdkAlias\": \"CertGsdkAlias\"\n }\n ],\n \"GameSecretReferences\": [\n {\n \"Name\": \"SecretName\"\n }\n ],\n \"RoutingSettings\": {\n \"NumberOfMicrosoftRoutingIPs\": 1,\n \"NumberOfInternetRoutingIPs\": 0,\n \"DefaultRoutingType\": 0\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/MultiplayerServer/CreateBuildWithCustomContainer")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-EntityToken"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"ContainerRunCommand\": \"/data/Assets -startserver\",\n \"GameAssetReferences\": [\n {\n \"FileName\": \"gameserver.zip\",\n \"MountPath\": \"/data/Assets\"\n }\n ],\n \"ContainerImageReference\": {\n \"ImageName\": \"ContainerImageName\",\n \"Tag\": \"ContainerTag\"\n },\n \"ContainerFlavor\": \"CustomLinux\",\n \"ServerResourceConstraints\": {\n \"CpuLimit\": 0.5,\n \"MemoryLimitGB\": 0.5\n },\n \"BuildName\": \"GameBuildName\",\n \"Metadata\": {\n \"MetadataKey\": \"MetadataValue\"\n },\n \"VmSize\": \"Standard_D2_v2\",\n \"MultiplayerServerCountPerVm\": 10,\n \"Ports\": [\n {\n \"Name\": \"PortName\",\n \"Num\": 1243\n }\n ],\n \"RegionConfigurations\": [\n {\n \"Region\": \"EastUs\",\n \"MaxServers\": 10,\n \"StandbyServers\": 5,\n \"ScheduledStandbySettings\": {\n \"IsEnabled\": true,\n \"ScheduleList\": [\n {\n \"StartTime\": \"2020-08-21T17:00:00Z\",\n \"EndTime\": \"2020-08-24T09:00:00Z\",\n \"IsRecurringWeekly\": true,\n \"Description\": \"Weekend Schedule\",\n \"TargetStandby\": 8\n },\n {\n \"StartTime\": \"2020-08-24T09:00:00Z\",\n \"EndTime\": \"2020-08-28T17:00:00Z\",\n \"IsRecurringWeekly\": true,\n \"Description\": \"Weekday Schedule\",\n \"TargetStandby\": 3\n }\n ]\n },\n \"RoutingSettings\": {\n \"NumberOfMicrosoftRoutingIPs\": 1,\n \"NumberOfInternetRoutingIPs\": 1,\n \"DefaultRoutingType\": 1\n }\n },\n {\n \"Region\": \"WestUs\",\n \"MaxServers\": 50,\n \"StandbyServers\": 8,\n \"ScheduledStandbySettings\": {\n \"IsEnabled\": true,\n \"ScheduleList\": [\n {\n \"StartTime\": \"2020-08-21T09:00:00Z\",\n \"EndTime\": \"2020-08-21T23:00:00Z\",\n \"Description\": \"Game Launch\",\n \"TargetStandby\": 30\n }\n ]\n }\n },\n {\n \"Region\": \"NorthEurope\",\n \"MaxServers\": 7,\n \"StandbyServers\": 3\n }\n ],\n \"GameCertificateReferences\": [\n {\n \"Name\": \"CertName\",\n \"GsdkAlias\": \"CertGsdkAlias\"\n }\n ],\n \"GameSecretReferences\": [\n {\n \"Name\": \"SecretName\"\n }\n ],\n \"RoutingSettings\": {\n \"NumberOfMicrosoftRoutingIPs\": 1,\n \"NumberOfInternetRoutingIPs\": 0,\n \"DefaultRoutingType\": 0\n }\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"status": "OK",
"data": {
"ContainerRunCommand": "/data/Assets -startserver",
"LinuxInstrumentationConfiguration": {},
"ServerResourceConstraints": {
"CpuLimit": 0.5,
"MemoryLimitGB": 0.5
},
"BuildId": "21781fa8-096d-4d9c-b699-75433d579285",
"BuildName": "GameBuildName",
"CreationTime": "2014-04-07T09:04:28",
"Metadata": {
"MetadataKey": "MetadataValue"
},
"VmSize": "Standard_D2_v2",
"OsPlatform": "Linux",
"ContainerFlavor": "CustomLinux",
"Ports": [
{
"Name": "PortName",
"Num": 1243
}
],
"RegionConfigurations": [
{
"Region": "EastUs",
"Status": "Initialized",
"MaxServers": 10,
"StandbyServers": 5,
"ScheduledStandbySettings": {
"IsEnabled": true,
"ScheduleList": [
{
"StartTime": "2020-08-21T17:00:00Z",
"EndTime": "2020-08-24T09:00:00Z",
"IsRecurringWeekly": true,
"Description": "Weekend Schedule",
"TargetStandby": 8
},
{
"StartTime": "2020-08-24T09:00:00Z",
"EndTime": "2020-08-28T17:00:00Z",
"IsRecurringWeekly": true,
"Description": "Weekday Schedule",
"TargetStandby": 3
}
]
}
},
{
"Region": "WestUs",
"Status": "Deployed",
"MaxServers": 50,
"StandbyServers": 8,
"ScheduledStandbySettings": {
"IsEnabled": true,
"ScheduleList": [
{
"StartTime": "2020-08-21T09:00:00Z",
"EndTime": "2020-08-21T23:00:00Z",
"Description": "Game Launch",
"TargetStandby": 30
}
]
}
},
{
"Region": "NorthEurope",
"Status": "Unhealthy",
"MaxServers": 7,
"StandbyServers": 3
}
],
"GameAssetReferences": [
{
"FileName": "gameserver.zip",
"MountPath": "/data/Assets"
}
],
"GameCertificateReferences": [
{
"Name": "CertName",
"GsdkAlias": "CertGsdkAlias"
}
],
"GameSecretReferences": [
{
"Name": "SecretName"
}
],
"MultiplayerServerCountPerVm": 10
}
}{
"code": 123,
"errorCode": 123,
"status": "<string>",
"error": "<string>",
"errorMessage": "<string>",
"errorDetails": {}
}