Crea definizioni di gruppi di container per una flotta di GameLift container Amazon - Amazon GameLift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crea definizioni di gruppi di container per una flotta di GameLift container Amazon

Questa documentazione riguarda una funzionalità disponibile in anteprima pubblica. ed è soggetta a modifiche.

Una definizione di gruppo di container descrive come distribuire le applicazioni di server di gioco containerizzate in una flotta di container. È un modello che identifica il set di container da far funzionare sulla flotta e come eseguirli. Quando crei una flotta di container, specifichi le definizioni dei gruppi di container da distribuire nella flotta. Per ulteriori informazioni sui gruppi di container, consultaComponenti della flotta di container.

Prima di iniziare

Completa le seguenti operazioni:

  • Progetta un'architettura di container per ospitare i tuoi server di gioco. Per informazioni, consulta Progetta una flotta di GameLift container Amazon.

  • Pianifica le definizioni dei contenitori da includere nel gruppo di contenitori. Se utilizzi la AWS CLI, crea la definizione del contenitore in un file JSON.

  • Invia le immagini finali del contenitore a un registro Amazon Elastic Container Registry (Amazon ECR) Regione AWS nello stesso in cui intendi creare il gruppo di contenitori. Amazon GameLift archivia un'istantanea di ogni immagine al momento della creazione della definizione del gruppo di container e utilizza la copia per la distribuzione su una flotta di container. Per informazioni, consulta Prepara un'immagine del contenitore con il software del tuo server di gioco.

  • Verifica che il tuo AWS utente disponga delle autorizzazioni IAM per accedere al repository Amazon ECR. Per informazioni, consulta Gestisci le autorizzazioni degli utenti per Amazon GameLift. Sono necessarie almeno le autorizzazioni per le seguenti azioni:

    • ecr:DescribeImages

    • ecr:BatchGetImage

    • ecr:GetDownloadUrlForLayer

Clonare una definizione di gruppo di contenitori

Puoi utilizzare la GameLift console Amazon per clonare una definizione di gruppo di contenitori esistente.

Per clonare un gruppo di contenitori
  1. Nella GameLift console Amazon, vai al riquadro di navigazione a sinistra e scegli Gruppi di contenitori.

  2. Nella pagina di elenco dei gruppi di contenitori, seleziona il gruppo di contenitori esistente che desideri clonare. Dopo aver selezionato un gruppo di contenitori, il pulsante Clona è attivo.

  3. Seleziona Clona. Questa azione apre la procedura guidata per la creazione di gruppi di contenitori con impostazioni precompilate.

  4. Immettete un nuovo nome per il gruppo di contenitori clonato. Il gruppo di contenitori nella stessa regione deve avere nomi univoci.

  5. Scorri le pagine del gruppo di contenitori e delle definizioni dei contenitori, esamina e crea il nuovo gruppo di contenitori.

Crea una definizione di gruppo di contenitori di replica

Un gruppo di contenitori di repliche gestisce il software del server di gioco. Un gruppo di contenitori di replica ha almeno un contenitore che esegue Amazon GameLift Agent e i processi del server di gioco. Il gruppo potrebbe disporre di contenitori «secondari» aggiuntivi per eseguire il software di supporto.

Questo argomento descrive come creare una definizione di gruppo di contenitori utilizzando la GameLift console Amazon o gli strumenti AWS CLI. Per informazioni più dettagliate sull'impostazione delle configurazioni dei gruppi di contenitori, consulta. Progetta una flotta di GameLift container Amazon

Console

Nella GameLift console Amazon, seleziona il Regione AWS punto in cui desideri creare il gruppo di contenitori.

Apri la barra di navigazione a sinistra della console e scegli Gruppi di contenitori. Nella pagina Gruppi di contenitori, scegli Crea gruppo di contenitori.

Fase 1: Definire i dettagli del gruppo.
  1. Immettere un nome per la definizione del gruppo di contenitori. Questo nome deve essere univoco per la regione Account AWS and. Nella console, le definizioni dei gruppi sono elencate per nome, quindi può essere utile assegnare etichette significative.

  2. Seleziona la strategia di pianificazione delle repliche.

  3. Per Limite di memoria totale, inserisci la memoria massima disponibile per il gruppo di contenitori. Per informazioni sul calcolo di questo valore, consultaImposta i limiti delle risorse.

  4. Per Limite totale della CPU, inserisci la potenza di calcolo massima disponibile per il gruppo di contenitori. Per informazioni sul calcolo di questo valore, consultaImposta i limiti delle risorse.

Fase 2: Aggiungere le definizioni dei contenitori.

Definisci il contenitore con la tua applicazione server di gioco e Amazon GameLift Agent. Questo è il tuo contenitore di replica essenziale.

  1. Fornisci un nome di definizione del contenitore. Ogni contenitore definito per il gruppo deve avere un valore di nome univoco.

  2. Identifica l'URI dell'immagine Amazon ECR dell'immagine del contenitore. Inserisci uno dei seguenti formati:

    • Solo URI dell'immagine: [Account AWS].dkr.ecr.[Regione AWS].amazonaws.com/[repository ID]

    • URI dell'immagine + digest: [Account AWS].dkr.ecr.[Regione AWS].amazonaws.com/[repository ID]@[digest]

    • Tag URI + dell'immagine: [Account AWS].dkr.ecr.[Regione AWS].amazonaws.com/[repository ID]:[tag]

  3. Per Essential container, Yes viene selezionato automaticamente per la prima definizione del contenitore. Se aggiungi un'altra definizione di contenitore, puoi attivare o disattivare questa impostazione per ogni definizione. Per ulteriori dettagli, consulta Designare contenitori essenziali.

  4. Imposta uno o più intervalli di porte interne del contenitore. Questo contenitore ospita i tuoi server di gioco, quindi definisci un intervallo con abbastanza porte per ogni processo del server da eseguire nel gruppo di contenitori. Per ulteriori dettagli, consulta Configurare le connessioni di rete.

  5. Le impostazioni opzionali Overrides e Environment variabili consentono di specificare i valori da passare al contenitore all'avvio. I valori impostati qui sostituiscono tutte le impostazioni già presenti nell'immagine del contenitore.

  6. Imposta limiti opzionali per il contenitore per gestire l'allocazione delle risorse per questo contenitore. Per ulteriori dettagli, consulta Imposta i limiti delle risorse.

  7. Definisci contenitori aggiuntivi non essenziali secondo necessità:

    • Fornisci un nome di definizione del contenitore e l'URI dell'immagine ECR. I contenitori non essenziali non devono eseguire Amazon GameLift Agent.

    • Imposta un intervallo di porte interne per i container solo se i contenitori hanno processi che richiedono l'accesso alla rete.

    • Opzionalmente, imposta un Health check per il contenitore. Quando un contenitore non essenziale non supera un controllo di integrità, richiede solo il riavvio del contenitore in errore.

    • Se necessario, imposta le sostituzioni, le variabili di ambiente e i limiti di allocazione delle risorse.

Fase 3: Configurare le dipendenze.

Se nella definizione del gruppo di contenitori è presente più di un contenitore, è possibile definire le dipendenze tra di essi. Utilizza le dipendenze per configurare le sequenze di avvio e spegnimento in base alle condizioni del contenitore. Per ulteriori dettagli, consulta Imposta le dipendenze del contenitore.

  1. Identifica il nome del contenitore per cui desideri aggiungere una dipendenza. Questo contenitore non si avvia finché non viene soddisfatta la condizione di dipendenza.

  2. Identifica la dipendenza Nome e condizione del contenitore. Questo contenitore deve soddisfare la condizione prima che il contenitore dipendente possa iniziare.

  3. Imposta dipendenze aggiuntive secondo necessità. Puoi creare più dipendenze per qualsiasi contenitore. Evita di creare dipendenze circolari.

Fase 4: Rivedi e crea.
  1. Controlla tutte le impostazioni di definizione del gruppo di contenitori. Non è possibile modificare la configurazione di una definizione di gruppo di contenitori dopo la sua creazione. Usa Modifica per apportare modifiche a qualsiasi sezione, inclusa ciascuna definizione di contenitore per il gruppo.

  2. Al termine della revisione, scegli Crea.

    Se la richiesta ha esito positivo, la console visualizza la pagina di dettaglio per la nuova risorsa di definizione del gruppo di contenitori. Inizialmente lo stato èCOPYING, quando Amazon GameLift inizia a scattare istantanee di tutte le immagini dei container per il gruppo. Al termine di questa fase, lo stato della definizione del gruppo di contenitori cambia inREADY. Una definizione di gruppo di container deve essere READY attiva prima di poter creare una flotta di container con essa.

AWS CLI

Quando utilizzi la AWS CLI per creare una definizione di gruppo di contenitori, mantieni le configurazioni della definizione del contenitore in un file separato. JSON Puoi fare riferimento al file nel tuo comando CLI. Vedi alcuni esempi Crea un file di definizione del contenitore JSON di schema.

Crea una definizione di gruppo di contenitori

Per creare una nuova definizione di gruppo di contenitori, utilizzate il create-container-group-definition comando CLI. Per ulteriori informazioni su questo comando, create-container-group-definitionconsultate la AWS CLI Command Reference.

Esempio : gruppo di contenitori Replica

Questo esempio illustra una richiesta per una definizione di gruppo di contenitori di replica. La struttura dei comandi per la creazione di definizioni di repliche e gruppi di daemon è essenzialmente identica. I dettagli specifici per ogni tipo di gruppo sono descritti nelle definizioni dei singoli contenitori.

Questo esempio presuppone che tu abbia creato un file JSON con le definizioni dei contenitori per questo gruppo.

aws gamelift create-container-group-definition \ --name MyAdventureGameContainerGroup \ --operating-system AMAZON_LINUX_2023 \ --scheduling-strategy REPLICA \ --total-memory-limit 4096 \ --total-cpu-limit 1024 \ --container-definitions file://SimpleServer.json

Crea un file di definizione del contenitore JSON

Quando si crea una definizione di gruppo di contenitori, si definiscono anche i contenitori per il gruppo. Una definizione di contenitore specifica il repository Amazon ECR in cui è archiviata l'immagine del contenitore e le configurazioni opzionali per le porte di rete, i limiti per l'utilizzo di CPU e memoria e altre impostazioni. Consigliamo di creare un singolo JSON file con le configurazioni per tutti i contenitori in un gruppo di contenitori. La manutenzione di un file è utile per archiviare, condividere e tenere traccia delle versioni di queste configurazioni critiche. Se si utilizza la AWS CLI per creare le definizioni dei gruppi di contenitori, è possibile fare riferimento al file nel comando.

Per creare una definizione di contenitore
  1. Crea e apri un nuovo .JSON file. Per esempio:

    [~/work/glc]$ vim SimpleServer.json
  2. Crea una definizione di contenitore separata per ciascuno dei contenitori del gruppo. Copia il seguente contenuto di esempio e modificalo secondo necessità per i tuoi contenitori. Per i dettagli sulla sintassi di una definizione di contenitore, consulta ContainerDefinitionInputAmazon GameLift API Reference.

  3. Salvate il file localmente in modo da potervi fare riferimento in un comando AWS CLI.

Questo esempio descrive il contenitore essenziale per il gruppo di contenitori di replica. Il contenitore di replica essenziale include l'applicazione per server di gioco, Amazon GameLift Agent, e può includere altro software di supporto per l'hosting dei giochi. La definizione deve includere un nome, un URI dell'immagine e una configurazione di porta. Questo esempio imposta anche alcuni limiti di risorse specifici del contenitore.

[ { "ContainerName": "SimpleServer", "ImageUri": "111122223333.dkr.ecr.us-east-1.amazonaws.com/gl-containers:complex-server", "Essential": true, "Cpu": 256, "MemoryLimits": { "HardLimit": 128 }, "PortConfiguration": { "ContainerPortRanges": [ { "FromPort": 2000, "Protocol": "TCP", "ToPort": 2100 } ] } } ]