

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Go server SDK untuk Amazon GameLift Servers -- Tindakan
<a name="integration-server-sdk-go-actions"></a>

Gunakan referensi SDK 5.x server untuk mengintegrasikan game multipemain Anda untuk hosting. Amazon GameLift Servers Untuk panduan tentang proses integrasi, lihat[Tambahkan Amazon GameLift Servers ke server game Anda dengan SDK server](gamelift-sdk-server-api.md).

`GameLiftServerAPI.go`mendefinisikan tindakan SDK server Go.

[Go server SDK untuk Amazon GameLift Servers - Jenis data](integration-server-sdk-go-datatypes.md)

**Topics**
+ [Go server SDK untuk Amazon GameLift Servers - Jenis data](integration-server-sdk-go-datatypes.md)
+ [GetSdkVersion()](#integration-server-sdk-go-getsdkversion)
+ [InitMetrics()](#integration-server-sdk-go-initmetrics)
+ [InitMetricsFromEnvironment()](#integration-server-sdk-go-initmetricsfromenv)
+ [InitSDK()](#integration-server-sdk-go-initsdk)
+ [ProcessReady()](#integration-server-sdk-go-processready)
+ [ProcessEnding()](#integration-server-sdk-go-processending)
+ [ActivateGameSession()](#integration-server-sdk-go-activategamesession)
+ [UpdatePlayerSessionCreationPolicy()](#integration-server-sdk-go-updateplayersessioncreationpolicy)
+ [GetGameSessionId()](#integration-server-sdk-go-getgamesessionid)
+ [GetTerminationTime()](#integration-server-sdk-go-getterm)
+ [AcceptPlayerSession()](#integration-server-sdk-go-acceptplayersession)
+ [RemovePlayerSession()](#integration-server-sdk-go-removeplayersession)
+ [DescribePlayerSessions()](#integration-server-sdk-go-describeplayersessions)
+ [StartMatchBackfill()](#integration-server-sdk-go-startmatchbackfill)
+ [StopMatchBackfill()](#integration-server-sdk-go-stopmatchbackfill)
+ [GetComputeCertificate()](#integration-server-sdk-go-getcomputecertificate)
+ [GetFleetRoleCredentials()](#integration-server-sdk-go-getfleetrolecredentials)
+ [Hancurkan ()](#integration-server-sdk-go-destroy)

## GetSdkVersion()
<a name="integration-server-sdk-go-getsdkversion"></a>

Mengembalikan nomor versi SDK saat ini yang dibangun ke dalam proses server.

### Sintaks
<a name="integration-server-sdk-go-getsdkversion-syntax"></a>

```
func GetSdkVersion() (string, error)
```

### Nilai yang ditampilkan
<a name="integration-server-sdk-go-getsdkversion-return"></a>

Jika berhasil, mengembalikan versi SDK saat ini sebagai string. String yang dikembalikan mencakup nomor versi (contoh`5.0.0`). Jika tidak berhasil, mengembalikan pesan kesalahan seperti`common.SdkVersionDetectionFailed`.

### Contoh
<a name="integration-server-sdk-go-getsdkversion-example"></a>

```
version, err := server.GetSdkVersion()
```

## InitMetrics()
<a name="integration-server-sdk-go-initmetrics"></a>

Menginisialisasi koleksi metrik untuk SDK. Amazon GameLift Servers Metode ini mengatur pelaporan metrik untuk membantu memantau kinerja dan kesehatan server. Panggil metode ini setelah [InitSDK()](#integration-server-sdk-go-initsdk) tetapi sebelumnya[ProcessReady()](#integration-server-sdk-go-processready).

### Sintaks
<a name="integration-server-sdk-go-initmetrics-syntax"></a>

```
func InitMetrics() error
func InitMetrics(metricsParameters MetricsParameters) error
```

### Parameter
<a name="integration-server-sdk-go-initmetrics-parameter"></a>

MetricsParameters (opsional)  
`MetricsParameters`Objek yang mengonfigurasi koleksi metrik. Jika tidak disediakan, konfigurasi metrik default digunakan. MetricsParametersStruktur berisi bidang-bidang berikut:  
+ `StatsdHost`- Nama host atau alamat IP server StatSD.
+ `StatsdPort`- Nomor port untuk server StatSD.
+ `CrashReporterHost`- Nama host atau alamat IP dari layanan reporter kerusakan.
+ `CrashReporterPort`- Nomor port untuk layanan reporter kecelakaan.
+ `FlushIntervalMs`- Interval dalam milidetik untuk pembilasan data metrik.
+ `MaxPacketSize`- Ukuran maksimum paket metrik dalam byte.
Untuk informasi selengkapnya tentang MetricsParameters struktur, lihat [Server SDK 5.x untuk tipe data C\#](https://docs.aws.amazon.com/gameliftservers/latest/developerguide/integration-server-sdk5-csharp-datatypes.html).

### Nilai yang dikembalikan
<a name="integration-server-sdk-go-initmetrics-return"></a>

Jika berhasil, mengembalikan `nil` kesalahan untuk menunjukkan bahwa pengumpulan metrik telah berhasil diinisialisasi.

### Contoh
<a name="integration-server-sdk-go-initmetrics-example"></a>

Inisialisasi metrik dengan konfigurasi default:

```
err := server.InitMetrics()
```

Inisialisasi metrik dengan konfigurasi khusus:

```
metricsParams := MetricsParameters{
    StatsdHost:        "localhost",
    StatsdPort:        8125,
    CrashReporterHost: "localhost",
    CrashReporterPort: 9125,
    FlushIntervalMs:   5000,
    MaxPacketSize:     1024,
}

err := server.InitMetrics(metricsParams)
```

## InitMetricsFromEnvironment()
<a name="integration-server-sdk-go-initmetricsfromenv"></a>

Menginisialisasi pengumpulan metrik untuk Amazon GameLift Servers SDK menggunakan konfigurasi dari variabel lingkungan. Metode ini mengatur pelaporan metrik menggunakan pengaturan default yang berasal dari lingkungan runtime.

Panggil metode ini setelah [InitSDK()](#integration-server-sdk-go-initsdk) tetapi sebelumnya[ProcessReady()](#integration-server-sdk-go-processready).

### Sintaks
<a name="integration-server-sdk-go-initmetricsfromenv-syntax"></a>

```
func InitMetricsFromEnvironment() error
```

### Nilai yang ditampilkan
<a name="integration-server-sdk-go-initmetricsfromenv-return"></a>

Jika berhasil, mengembalikan `nil` kesalahan untuk menunjukkan bahwa pengumpulan metrik telah berhasil diinisialisasi menggunakan konfigurasi lingkungan.

### Contoh
<a name="integration-server-sdk-go-initmetricsfromenv-example"></a>

```
err := server.InitMetricsFromEnvironment()
```

## InitSDK()
<a name="integration-server-sdk-go-initsdk"></a>

Menginisialisasi Amazon GameLift Servers SDK. Panggil metode ini saat peluncuran sebelum inisialisasi lain yang terkait dengan Amazon GameLift Servers terjadi. Metode ini mengatur komunikasi antara server dan Amazon GameLift Servers layanan.

### Sintaks
<a name="integration-server-sdk-go-initsdk-syntax"></a>

```
func InitSDK(params ServerParameters) error 
```

### Parameter
<a name="integration-server-sdk-go-initsdk-parameter"></a>

[ServerParameters](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-serverparameters)  
Untuk menginisialisasi server game pada armada Amazon GameLift Servers Anywhere, buat `ServerParameters` objek dengan informasi berikut:  
+ URL yang WebSocket digunakan untuk terhubung ke server game Anda. 
+ ID dari proses yang digunakan untuk meng-host server game Anda. 
+ ID komputasi yang menghosting proses server game Anda. 
+ ID Amazon GameLift Servers armada yang berisi komputasi Amazon GameLift Servers Anywhere Anda.
+ Token otorisasi yang dihasilkan oleh Amazon GameLift Servers operasi. 
Untuk menginisialisasi server game pada armada EC2 Amazon GameLift Servers terkelola, buat `ServerParameters` objek tanpa parameter. Dengan panggilan ini, Amazon GameLift Servers agen mengatur lingkungan komputasi dan secara otomatis terhubung ke Amazon GameLift Servers layanan untuk Anda. 

### Nilai yang dikembalikan
<a name="integration-server-sdk-go-initsdk-return"></a>

Jika berhasil, mengembalikan `nil` kesalahan untuk menunjukkan bahwa proses server siap untuk memanggil[ProcessReady()](#integration-server-sdk-go-processready). 

**catatan**  
Jika panggilan gagal untuk build game yang diterapkan ke `InitSDK()` armada Anywhere, periksa `ServerSdkVersion` parameter yang digunakan saat membuat sumber daya build. Anda harus secara eksplisit menetapkan nilai ini ke versi SDK server yang digunakan. Nilai default untuk parameter ini adalah 4.x, yang tidak kompatibel. Untuk mengatasi masalah ini, buat build baru dan terapkan ke armada baru.

### Contoh
<a name="integration-server-sdk-go-initsdk-example"></a>

Amazon GameLift ServersContoh di mana saja

```
//Define the server parameters
serverParameters := ServerParameters {
  WebSocketURL: "wss://us-west-1.api.amazongamelift.com",
  ProcessID: "PID1234",
  HostID: "HardwareAnywhere",
  FleetID: "aarn:aws:gamelift:us-west-1:111122223333:fleet/fleet-9999ffff-88ee-77dd-66cc-5555bbbb44aa",
  AuthToken: "1111aaaa-22bb-33cc-44dd-5555eeee66ff"
}

//Call InitSDK to establish a local connection with the Amazon GameLift Servers Agent to enable further communication.
err := server.InitSDK(serverParameters)
```

Amazon GameLift Serverscontoh EC2 yang dikelola

```
//Define the server parameters
serverParameters := ServerParameters {}

//Call InitSDK to establish a local connection with the Amazon GameLift Servers Agent to enable further communication.
err := server.InitSDK(serverParameters)
```

## ProcessReady()
<a name="integration-server-sdk-go-processready"></a>

Memberitahu Amazon GameLift Servers bahwa proses server siap untuk meng-host sesi permainan. Panggil metode ini setelah memanggil[InitSDK()](#integration-server-sdk-go-initsdk). Metode ini harus dipanggil hanya satu kali per proses.

### Sintaks
<a name="integration-server-sdk-go-processready-syntax"></a>

```
func ProcessReady(param ProcessParameters) error
```

### Parameter
<a name="integration-server-sdk-go-processready-parameter"></a>

**ProcessParameters**  
[ProcessParameters](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-process)Objek mengkomunikasikan informasi berikut tentang proses server:  
+ Nama-nama metode callback yang diimplementasikan dalam kode server game yang dipanggil Amazon GameLift Servers layanan untuk berkomunikasi dengan proses server.
+ Nomor port yang didengarkan oleh proses server.
+ Tipe [LogParameters](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-log) data yang berisi jalur ke file khusus sesi game apa pun yang Amazon GameLift Servers ingin Anda ambil dan simpan.

### Nilai yang dikembalikan
<a name="integration-server-sdk-go-processready-return"></a>

Mengembalikan kesalahan dengan pesan kesalahan jika metode gagal. Mengembalikan `nil` jika metode ini berhasil.

### Contoh
<a name="integration-server-sdk-go-processready-example"></a>

Contoh ini menggambarkan panggilan [ProcessReady()](#integration-server-sdk-go-processready) dan mendelegasi implementasi fungsi.

```
// Define the process parameters
processParams := ProcessParameters {
  OnStartGameSession: gameProcess.OnStartGameSession,
  OnUpdateGameSession: gameProcess.OnGameSessionUpdate,
  OnProcessTerminate: gameProcess.OnProcessTerminate,
  OnHealthCheck: gameProcess.OnHealthCheck,
  Port: port,
  LogParameters: LogParameters {    // logging and error example
    []string {"C:\\game\\logs", "C:\\game\\error"}
  }
}

err := server.ProcessReady(processParams)
```

## ProcessEnding()
<a name="integration-server-sdk-go-processending"></a>

Memberitahu Amazon GameLift Servers bahwa proses server berakhir. Panggil metode ini setelah semua tugas pembersihan lainnya (termasuk mematikan sesi permainan aktif) dan sebelum mengakhiri proses. Tergantung pada hasil`ProcessEnding()`, proses keluar dengan sukses (0) atau kesalahan (-1) dan menghasilkan peristiwa armada. Jika proses berakhir dengan kesalahan, peristiwa armada yang dihasilkan adalah`SERVER_PROCESS_TERMINATED_UNHEALTHY`.

### Sintaks
<a name="integration-server-sdk-go-processending-syntax"></a>

```
func ProcessEnding() error
```

### Nilai yang ditampilkan
<a name="integration-server-sdk-go-processending-return"></a>

Mengembalikan kode kesalahan 0 atau kode kesalahan yang ditentukan.

### Contoh
<a name="integration-server-sdk-go-processending-example"></a>

```
// operations to end game sessions and the server process
defer func() {
  err := server.ProcessEnding()
  server.Destroy()
  if err != nil {
    fmt.Println("ProcessEnding() failed. Error: ", err)
    os.Exit(-1)
  } else {
    os.Exit(0)
  }
}
```

## ActivateGameSession()
<a name="integration-server-sdk-go-activategamesession"></a>

Memberitahu Amazon GameLift Servers bahwa proses server telah mengaktifkan sesi permainan dan sekarang siap menerima koneksi pemain. Tindakan ini disebut sebagai bagian dari fungsi `onStartGameSession()` callback, setelah semua inisialisasi sesi game.

### Sintaks
<a name="integration-server-sdk-go-activategamesession-syntax"></a>

```
func ActivateGameSession() error
```

### Nilai yang ditampilkan
<a name="integration-server-sdk-go-activategamesession-return"></a>

Mengembalikan kesalahan dengan pesan kesalahan jika metode gagal.

### Contoh
<a name="integration-server-sdk-go-activategamesession-example"></a>

Contoh ini menunjukkan `ActivateGameSession()` dipanggil sebagai bagian dari fungsi `onStartGameSession()` delegasi. 

```
func OnStartGameSession(GameSession gameSession) {
  // game-specific tasks when starting a new game session, such as loading map   
  // Activate when ready to receive players   
  err := server.ActivateGameSession();
}
```

## UpdatePlayerSessionCreationPolicy()
<a name="integration-server-sdk-go-updateplayersessioncreationpolicy"></a>

Memperbarui kemampuan sesi game saat ini untuk menerima sesi pemain baru. Sesi game dapat diatur untuk menerima atau menolak semua sesi pemain baru.

### Sintaks
<a name="integration-server-sdk-go-updateplayersessioncreationpolicy-syntax"></a>

```
func UpdatePlayerSessionCreationPolicy(policy model.PlayerSessionCreationPolicy) error
```

### Parameter
<a name="integration-server-sdk-go-updateplayersessioncreationpolicy-parameter"></a>

**playerSessionCreationKebijakan**  
Nilai string yang menunjukkan apakah sesi permainan menerima pemain baru.   
Nilai yang valid meliputi:  
+ **`model.AcceptAll`**— Terima semua sesi pemain baru.
+ **`model.DenyAll`**— Tolak semua sesi pemain baru.

### Nilai yang dikembalikan
<a name="integration-server-sdk-go-updateplayersessioncreationpolicy-return"></a>

Mengembalikan kesalahan dengan pesan kesalahan jika terjadi kegagalan.

### Contoh
<a name="integration-server-sdk-go-updateplayersessioncreationpolicy-example"></a>

Contoh ini menetapkan kebijakan bergabung sesi game saat ini untuk menerima semua pemain.

```
err := server.UpdatePlayerSessionCreationPolicy(model.AcceptAll)
```

## GetGameSessionId()
<a name="integration-server-sdk-go-getgamesessionid"></a>

Mengambil ID sesi permainan yang dihosting oleh proses server aktif.

### Sintaks
<a name="integration-server-sdk-go-getgamesessionid-syntax"></a>

```
func GetGameSessionID() (string, error)
```

### Parameter
<a name="integration-server-sdk-go-getgamesessionid-parameter"></a>

Tindakan ini tidak memiliki parameter.

### Nilai yang dikembalikan
<a name="integration-server-sdk-go-getgamesessionid-return"></a>

Jika berhasil, mengembalikan ID sesi permainan dan kesalahan nihil. Untuk proses idle yang belum diaktifkan dengan sesi permainan, panggilan mengembalikan string kosong dan `nil` kesalahan.

### Contoh
<a name="integration-server-sdk-go-getgamesessionid-example"></a>

```
gameSessionID, err := server.GetGameSessionID()
```

## GetTerminationTime()
<a name="integration-server-sdk-go-getterm"></a>

Mengembalikan waktu proses server dijadwalkan untuk dimatikan jika waktu penghentian tersedia. Proses server mengambil tindakan ini setelah menerima `onProcessTerminate()` panggilan balik dariAmazon GameLift Servers. Amazon GameLift Serverspanggilan `onProcessTerminate()` untuk alasan berikut: 
+ Ketika proses server telah melaporkan kesehatan yang buruk atau belum Amazon GameLift Servers merespons.
+ Saat mengakhiri instance selama acara scale-down.
+ Ketika sebuah instance dihentikan karena gangguan [spot-instance](spot-tasks.md).

### Sintaks
<a name="integration-server-sdk-go-getterm-syntax"></a>

```
func GetTerminationTime() (int64, error)
```

### Nilai yang ditampilkan
<a name="integration-server-sdk-go-getterm-return"></a>

Jika berhasil, mengembalikan stempel waktu dalam detik epoch yang proses server dijadwalkan untuk dimatikan dan penghentian kesalahan. `nil` Nilainya adalah waktu penghentian, dinyatakan dalam kutu yang telah berlalu dari. `0001 00:00:00` Misalnya, nilai waktu tanggal `2020-09-13 12:26:40 -000Z` sama dengan `637355968000000000` kutu. Jika tidak ada waktu penghentian tersedia, pesan kesalahan ditampilkan.

### Contoh
<a name="integration-server-sdk-go-getterm-example"></a>

```
terminationTime, err := server.GetTerminationTime()
```

## AcceptPlayerSession()
<a name="integration-server-sdk-go-acceptplayersession"></a>

Memberitahu Amazon GameLift Servers bahwa pemain dengan ID sesi pemain tertentu telah terhubung ke proses server dan membutuhkan validasi. Amazon GameLift Serversmemverifikasi bahwa ID sesi pemain valid. Setelah sesi pemain divalidasi, Amazon GameLift Servers ubah status slot pemain dari `RESERVED` ke`ACTIVE`. 

### Sintaks
<a name="integration-server-sdk-go-acceptplayersession-syntax"></a>

```
func AcceptPlayerSession(playerSessionID string) error
```

### Parameter
<a name="integration-server-sdk-go-acceptplayersession-parameter"></a>

`playerSessionId`  
ID unik yang dikeluarkan oleh Amazon GameLift Servers saat sesi pemain baru dibuat.

### Nilai yang dikembalikan
<a name="integration-server-sdk-go-acceptplayersession-return"></a>

Mengembalikan hasil generik yang terdiri dari keberhasilan atau kegagalan dalam sebuah pesan kesalahan. 

### Contoh
<a name="integration-server-sdk-go-acceptplayersession-example"></a>

Contoh ini menangani permintaan koneksi yang mencakup memvalidasi dan menolak sesi pemain yang tidak valid. IDs 

```
func ReceiveConnectingPlayerSessionID(conn Connection, playerSessionID string) {
    err := server.AcceptPlayerSession(playerSessionID)
    if err != nil {
        connection.Accept()
    } else {
        connection.Reject(err.Error())
    }
}
```

## RemovePlayerSession()
<a name="integration-server-sdk-go-removeplayersession"></a>

Memberitahu Amazon GameLift Servers bahwa pemain telah terputus dari proses server. Sebagai tanggapan, Amazon GameLift Servers ubah slot pemain menjadi tersedia. 

### Sintaks
<a name="integration-server-sdk-go-removeplayersession-syntax"></a>

```
func RemovePlayerSession(playerSessionID string) error
```

### Parameter
<a name="integration-server-sdk-go-removeplayersession-parameter"></a>

**`playerSessionId`**  
ID unik yang dikeluarkan oleh Amazon GameLift Servers saat sesi pemain baru dibuat.

### Nilai yang dikembalikan
<a name="integration-server-sdk-go-removeplayersession-return"></a>

Mengembalikan hasil generik yang terdiri dari keberhasilan atau kegagalan dalam sebuah pesan kesalahan.

### Contoh
<a name="integration-server-sdk-go-removeplayersession-example"></a>

```
err := server.RemovePlayerSession(playerSessionID)
```

## DescribePlayerSessions()
<a name="integration-server-sdk-go-describeplayersessions"></a>

Mengambil data sesi pemain yang mencakup pengaturan, metadata sesi, dan data pemain. Gunakan metode ini untuk mendapatkan informasi tentang hal-hal berikut:
+ Sesi pemain tunggal
+ Semua sesi pemain dalam sesi permainan
+ Semua sesi pemain yang terkait dengan ID pemain tunggal

### Sintaks
<a name="integration-server-sdk-go-describeplayersessions-syntax"></a>

```
func DescribePlayerSessions(req request.DescribePlayerSessionsRequest) (result.DescribePlayerSessionsResult, error) {
	return srv.describePlayerSessions(&req)
}
```

### Parameter
<a name="integration-server-sdk-go-describeplayersessions-parameter"></a>

**[DescribePlayerSessionsRequest](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-playersessions)**  
Sebuah `DescribePlayerSessionsRequest` objek menjelaskan sesi pemain mana yang akan diambil.

### Nilai yang dikembalikan
<a name="integration-server-sdk-go-describeplayersessions-return"></a>

Jika berhasil, mengembalikan `DescribePlayerSessionsResult` objek yang berisi satu set objek sesi pemain yang sesuai dengan parameter permintaan.

### Contoh
<a name="integration-server-sdk-go-describeplayersessions-example"></a>

Contoh ini meminta semua sesi pemain yang terhubung secara aktif ke sesi permainan tertentu. Dengan menghilangkan *NextToken*dan mengatur nilai *Batas* ke 10, Amazon GameLift Servers mengembalikan catatan sesi 10 pemain pertama yang cocok dengan permintaan.

```
// create request
describePlayerSessionsRequest := request.NewDescribePlayerSessions() 
describePlayerSessionsRequest.GameSessionID, _ = server.GetGameSessionID() // get ID for the current game session
describePlayerSessionsRequest.Limit = 10                                 // return the first 10 player sessions
describePlayerSessionsRequest.PlayerSessionStatusFilter = "ACTIVE"         // Get all player sessions actively connected to the game session

describePlayerSessionsResult, err := server.DescribePlayerSessions(describePlayerSessionsRequest)
```

## StartMatchBackfill()
<a name="integration-server-sdk-go-startmatchbackfill"></a>

Mengirim permintaan untuk menemukan pemain baru untuk slot terbuka dalam sesi permainan yang dibuat denganFlexMatch. Untuk informasi selengkapnya, lihat [fitur FlexMatch isi ulang](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html).

Tindakan ini asinkron. Jika pemain baru dicocokkan, kirimkan data Amazon GameLift Servers mak comblang yang diperbarui menggunakan fungsi panggilan balik. `OnUpdateGameSession()`

Proses server hanya dapat melakukan satu permintaan backfill match yang aktif dalam satu waktu. Untuk mengirim permintaan baru, panggil [StopMatchBackfill()](#integration-server-sdk-go-stopmatchbackfill) terlebih dahulu untuk membatalkan permintaan asli.

### Sintaks
<a name="integration-server-sdk-go-startmatchbackfill-syntax"></a>

```
func StartMatchBackfill(req request.StartMatchBackfillRequest) (result.StartMatchBackfillResult, error)
```

### Parameter
<a name="integration-server-sdk-go-startmatchbackfill-parameter"></a>

**[StartMatchBackfillRequest](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-startmatchbackfillrequest)**  
Sebuah StartMatchBackfillRequest objek mengkomunikasikan informasi berikut:  
+ ID tiket untuk ditetapkan ke permintaan backfill. Informasi ini opsional; jika tidak ada ID yang diberikan, Amazon GameLift Servers hasilkan satu.
+ Matchmaker untuk dikirimi permintaan. ARN konfigurasi penuh diperlukan. Nilai ini ada dalam data mak comblang sesi permainan.
+ ID sesi permainan untuk mengisi ulang.
+ Data perjodohan yang tersedia untuk pemain sesi permainan saat ini.

### Nilai yang dikembalikan
<a name="integration-server-sdk-go-startmatchbackfill-return"></a>

Mengembalikan `StartMatchBackfillResult` objek dengan ID tiket isi ulang kecocokan, atau kegagalan dengan pesan kesalahan. 

### Contoh
<a name="integration-server-sdk-go-startmatchbackfill-example"></a>

```
// form the request
startBackfillRequest := request.NewStartMatchBackfill()
startBackfillRequest.RequestID = "1111aaaa-22bb-33cc-44dd-5555eeee66ff"          // optional
startBackfillRequest.MatchmakingConfigurationArn = "arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MyMatchmakerConfig"
var matchMaker model.MatchmakerData
if err := matchMaker.UnmarshalJSON([]byte(gameSession.MatchmakerData)); err != nil {    
    return
}
startBackfillRequest.Players = matchMaker.Players
res, err := server.StartMatchBackfill(startBackfillRequest)

// Implement callback function for backfill
func OnUpdateGameSession(myGameSession model.GameSession) {
    // game-specific tasks to prepare for the newly matched players and update matchmaker data as needed
}
```

## StopMatchBackfill()
<a name="integration-server-sdk-go-stopmatchbackfill"></a>

Membatalkan permintaan pengisian ulang pertandingan yang aktif. Untuk informasi selengkapnya, lihat [fitur FlexMatch isi ulang](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html).

### Sintaks
<a name="integration-server-sdk-go-stopmatchbackfill-syntax"></a>

```
func StopMatchBackfill(req request.StopMatchBackfillRequest) error
```

### Parameter
<a name="integration-server-sdk-go-stopmatchbackfill-parameter"></a>

**[StopMatchBackfillRequest](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-stopmatchbackfillrequest)**  
 StopMatchBackfillRequest Objek yang mengidentifikasi tiket perjodohan untuk dibatalkan:   
+ ID tiket yang ditetapkan untuk permintaan pengisian ulang.
+ Mak comblang permintaan isi ulang dikirim ke.
+ Sesi permainan terkait dengan permintaan isi ulang.

### Nilai yang dikembalikan
<a name="integration-server-sdk-go-stopmatchbackfill-return"></a>

Mengembalikan hasil generik yang terdiri dari keberhasilan atau kegagalan dalam sebuah pesan kesalahan.

### Contoh
<a name="integration-server-sdk-go-stopmatchbackfill-example"></a>

```
stopBackfillRequest := request.NewStopMatchBackfill()  // Use this function to create request
stopBackfillRequest.TicketID = "1111aaaa-22bb-33cc-44dd-5555eeee66ff"
stopBackfillRequest.MatchmakingConfigurationArn = "arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MyMatchmakerConfig"
                
//error
err := server.StopMatchBackfill(stopBackfillRequest)
```

## GetComputeCertificate()
<a name="integration-server-sdk-go-getcomputecertificate"></a>

Mengambil jalur ke sertifikat TLS yang digunakan untuk mengenkripsi koneksi jaringan antara server game dan klien game Anda. Anda dapat menggunakan jalur sertifikat saat mendaftarkan perangkat komputasi ke armada Amazon GameLift Servers Anywhere. Untuk informasi selengkapnya, lihat [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html).

### Sintaks
<a name="integration-server-sdk-go-getcomputecertificate-syntax"></a>

```
func GetComputeCertificate() (result.GetComputeCertificateResult, error)
```

### Nilai yang ditampilkan
<a name="integration-server-sdk-go-getcomputecertificate-return"></a>

Mengembalikan `GetComputeCertificateResult` objek yang berisi berikut: 
+  CertificatePath: Jalur ke sertifikat TLS pada sumber daya komputasi Anda. Saat menggunakan armada Amazon GameLift Servers terkelola, jalur ini berisi: 
  + `certificate.pem`: Sertifikat pengguna akhir. Rantai sertifikat lengkap adalah kombinasi dari `certificateChain.pem` ditambahkan ke sertifikat ini.
  + `certificateChain.pem`: Rantai sertifikat yang berisi sertifikat root dan sertifikat perantara.
  + `rootCertificate.pem`: Sertifikat root.
  + `privateKey.pem`: Kunci pribadi untuk sertifikat pengguna akhir.
+ ComputeName: Nama sumber daya komputasi Anda.

### Contoh
<a name="integration-server-sdk-go-getcomputecertificate-example"></a>

```
tlsCertificate, err := server.GetFleetRoleCredentials(getFleetRoleCredentialsRequest)
```

## GetFleetRoleCredentials()
<a name="integration-server-sdk-go-getfleetrolecredentials"></a>

Mengambil kredensyal peran layanan yang Anda buat untuk memperluas izin ke orang lain. Layanan AWS Amazon GameLift Servers Kredensyal ini memungkinkan server game Anda menggunakan sumber daya Anda AWS . Untuk informasi selengkapnya, lihat [Menyiapkan peran layanan IAM untuk Amazon GameLift Servers](setting-up-role.md).

### Sintaks
<a name="integration-server-sdk-go-getfleetrolecredentials-syntax"></a>

```
func GetFleetRoleCredentials(
  req request.GetFleetRoleCredentialsRequest,
) (result.GetFleetRoleCredentialsResult, error) {
  return srv.getFleetRoleCredentials(&req)
}
```

### Parameter
<a name="integration-server-sdk-go-getfleetrolecredentials-parameters"></a>

[GetFleetRoleCredentialsRequest](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-getfleetrolecredentialsrequest)  
Kredensyal peran yang memperluas akses terbatas ke AWS sumber daya Anda ke server game.

### Nilai yang dikembalikan
<a name="integration-server-sdk-go-getfleetrolecredentials-return"></a>

Mengembalikan `GetFleetRoleCredentialsResult` objek yang berisi berikut: 
+ AssumedRoleUserArn - Nama Sumber Daya Amazon (ARN) pengguna yang menjadi milik peran layanan. 
+ AssumedRoleId - ID pengguna yang menjadi milik peran layanan. 
+ AccessKeyId - ID kunci akses untuk mengautentikasi dan menyediakan akses ke AWS sumber daya Anda. 
+ SecretAccessKey - ID kunci akses rahasia untuk otentikasi. 
+ SessionToken - Token untuk mengidentifikasi sesi aktif saat ini yang berinteraksi dengan AWS sumber daya Anda. 
+ Kedaluwarsa - Jumlah waktu hingga kredensyal sesi Anda kedaluwarsa.

### Contoh
<a name="integration-server-sdk-go-getfleetrolecredentials-example"></a>

```
// form the customer credentials request
getFleetRoleCredentialsRequest := request.NewGetFleetRoleCredentials()
getFleetRoleCredentialsRequest.RoleArn = "arn:aws:iam::123456789012:role/service-role/exampleGameLiftAction"

credentials, err := server.GetFleetRoleCredentials(getFleetRoleCredentialsRequest)
```

## Hancurkan ()
<a name="integration-server-sdk-go-destroy"></a>

Membebaskan SDK server Amazon GameLift Servers game dari memori. Sebagai praktik terbaik, hubungi metode ini setelah `ProcessEnding()` dan sebelum mengakhiri proses. Jika Anda menggunakan armada Anywhere dan Anda tidak menghentikan proses server setelah setiap sesi game, panggil `Destroy()` dan kemudian `InitSDK()` untuk menginisialisasi ulang sebelum memberi tahu Amazon GameLift Servers bahwa proses tersebut siap untuk menjadi tuan rumah sesi game. `ProcessReady()`

### Sintaks
<a name="integration-server-sdk-go-destroy-syntax"></a>

```
func Destroy() error {
	return srv.destroy()
}
```

### Nilai yang ditampilkan
<a name="integration-server-sdk-go-destroy-return"></a>

Mengembalikan kesalahan dengan pesan kesalahan jika metode gagal.

### Contoh
<a name="integration-server-sdk-go-destroy-example"></a>

```
// operations to end game sessions and the server process
defer func() {
  err := server.ProcessEnding()
  server.Destroy()
  if err != nil {
    fmt.Println("ProcessEnding() failed. Error: ", err)
    os.Exit(-1)
  } else {
    os.Exit(0)
  }
}
```