ContainerGroupDefinition
The ContainerGroupDefinition resource allows you to define a group of containers that run on AWS GameLift. This resource is essential for deploying game server processes in a containerized environment. For more details, refer to the AWS GameLift ContainerGroupDefinitions documentation.
Minimal Example
Section titled “Minimal Example”Create a basic ContainerGroupDefinition with required properties and a common optional description.
import AWS from "alchemy/aws/control";
const basicContainerGroup = await AWS.GameLift.ContainerGroupDefinition("basicContainerGroup", {  OperatingSystem: "Linux",  TotalMemoryLimitMebibytes: 2048,  TotalVcpuLimit: 2,  Name: "MyBasicContainerGroup",  VersionDescription: "Initial version of the container group"});Advanced Configuration
Section titled “Advanced Configuration”Define a ContainerGroupDefinition with additional options for memory limits and tags for better management.
const advancedContainerGroup = await AWS.GameLift.ContainerGroupDefinition("advancedContainerGroup", {  OperatingSystem: "Linux",  TotalMemoryLimitMebibytes: 4096,  TotalVcpuLimit: 4,  Name: "MyAdvancedContainerGroup",  GameServerContainerDefinition: {    Image: "my-game-server-image:latest",    Port: 7777,    RuntimeConfiguration: {      ServerProcesses: [        {          ConcurrentExecutions: 10,          LaunchPath: "server.sh",          Parameters: "--port 7777"        }      ]    }  },  Tags: [    { Key: "Environment", Value: "Production" },    { Key: "Owner", Value: "GameDevTeam" }  ]});Custom Container Definitions
Section titled “Custom Container Definitions”Create a ContainerGroupDefinition that supports multiple container definitions for complex game server requirements.
const multiContainerGroup = await AWS.GameLift.ContainerGroupDefinition("multiContainerGroup", {  OperatingSystem: "Linux",  TotalMemoryLimitMebibytes: 8192,  TotalVcpuLimit: 8,  Name: "MyMultiContainerGroup",  SupportContainerDefinitions: [    {      Image: "my-game-server-image:latest",      Port: 7777,      RuntimeConfiguration: {        ServerProcesses: [          {            ConcurrentExecutions: 5,            LaunchPath: "server.sh",            Parameters: "--port 7777"          }        ]      }    },    {      Image: "my-helper-service-image:latest",      Port: 8080,      RuntimeConfiguration: {        ServerProcesses: [          {            ConcurrentExecutions: 3,            LaunchPath: "helper.sh",            Parameters: "--mode active"          }        ]      }    }  ]});Adoption of Existing Resources
Section titled “Adoption of Existing Resources”If you want to adopt an existing ContainerGroupDefinition instead of creating a new one, you can set the adopt property to true.
const adoptedContainerGroup = await AWS.GameLift.ContainerGroupDefinition("adoptedContainerGroup", {  OperatingSystem: "Linux",  TotalMemoryLimitMebibytes: 2048,  TotalVcpuLimit: 2,  Name: "MyAdoptedContainerGroup",  adopt: true});