Struct aws_sdk_gamelift::types::ContainerDefinitionInput

source ·
#[non_exhaustive]
pub struct ContainerDefinitionInput { pub container_name: Option<String>, pub image_uri: Option<String>, pub memory_limits: Option<ContainerMemoryLimits>, pub port_configuration: Option<ContainerPortConfiguration>, pub cpu: Option<i32>, pub health_check: Option<ContainerHealthCheck>, pub command: Option<Vec<String>>, pub essential: Option<bool>, pub entry_point: Option<Vec<String>>, pub working_directory: Option<String>, pub environment: Option<Vec<ContainerEnvironment>>, pub depends_on: Option<Vec<ContainerDependency>>, }
Expand description

This data type is used with the Amazon GameLift containers feature, which is currently in public preview.

Describes a container's configuration, resources, and start instructions. Use this data type to create a container group definition. For the properties of a container that's been deployed to a fleet, see ContainerDefinition. You can't change these properties after you've created the container group definition. If you need a container group with different properties, then you must create a new one.

Used with: CreateContainerGroupDefinition

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§container_name: Option<String>

A string that uniquely identifies the container definition within a container group.

§image_uri: Option<String>

The location of a container image that $short; will copy and deploy to a container fleet. Images in Amazon Elastic Container Registry private repositories are supported. The repository must be in the same Amazon Web Services account and Amazon Web Services Region where you're creating the container group definition. For limits on image size, see Amazon GameLift endpoints and quotas. You can use any of the following image URI formats:

  • Image ID only: [AWS account].dkr.ecr.[AWS region].amazonaws.com/[repository ID]

  • Image ID and digest: [AWS account].dkr.ecr.[AWS region].amazonaws.com/[repository ID]@[digest]

  • Image ID and tag: [AWS account].dkr.ecr.[AWS region].amazonaws.com/[repository ID]:[tag]

§memory_limits: Option<ContainerMemoryLimits>

The amount of memory to make available to the container. If you don't specify memory limits for this container, then it shares the container group's total memory allocation.

Related data type: ContainerGroupDefinition$TotalMemoryLimit

§port_configuration: Option<ContainerPortConfiguration>

A set of ports that Amazon GameLift can assign to processes in the container. All processes that accept inbound traffic connections, including game server processes, must be assigned a port from this set. The set of ports must be large enough to assign one to each process in the container that needs one. If the container includes your game server, include enough ports to assign one port to each concurrent server process (as defined in a container fleet's RuntimeConfiguration). For more details, see Networking for container fleets.

Container ports aren't directly accessed by inbound traffic. Amazon GameLift maps these container ports to externally accessible connection ports, which are assigned as needed from the container fleet's ConnectionPortRange.

§cpu: Option<i32>

The number of CPU units to reserve for this container. The container can use more resources when needed, if available. Note: 1 vCPU unit equals 1024 CPU units. If you don't reserve CPU units for this container, then it shares the total CPU limit for the container group. This property is similar to the Amazon ECS container definition parameter environment (Amazon Elastic Container Service Developer Guide).

Related data type: ContainerGroupDefinition$TotalCpuLimit

§health_check: Option<ContainerHealthCheck>

Configuration for a non-terminal health check. A container automatically restarts if it stops functioning. This parameter lets you define additional reasons to consider a container unhealthy and restart it. You can set a health check for any container except for the essential container in the replica container group. If an essential container in the daemon group fails a health check, the entire container group is restarted.

§command: Option<Vec<String>>

A command to pass to the container on startup. Add multiple arguments as additional strings in the array. See the ContainerDefinition command parameter in the Amazon Elastic Container Service API reference.

§essential: Option<bool>

Specifies whether the container is vital for the container group to function properly. If an essential container fails, it causes the entire container group to restart. Each container group must have an essential container.

Replica container groups - A replica group must have exactly one essential container. Use the following to configure an essential replica container:

  • Choose a container is running your game server and the Amazon GameLift Agent.

  • Include a port configuration. This container runs your game server processes, and each process requires a container port to allow access to game clients.

  • Don't configure a health check. The Agent handles this task for the essential replica container.

Daemon container groups - A daemon group must have at least one essential container.

§entry_point: Option<Vec<String>>

An entry point to pass to the container on startup. Add multiple arguments as additional strings in the array. See the ContainerDefinition::entryPoint parameter in the Amazon Elastic Container Service API Reference.

§working_directory: Option<String>

The directory in the container where commands are run. See the ContainerDefinition::workingDirectory parameter in the Amazon Elastic Container Service API Reference.

§environment: Option<Vec<ContainerEnvironment>>

A set of environment variables to pass to the container on startup. See the ContainerDefinition::environment parameter in the Amazon Elastic Container Service API Reference.

§depends_on: Option<Vec<ContainerDependency>>

Sets up dependencies between this container and the status of other containers in the same container group. A container can have dependencies on multiple different containers.

You can use dependencies to establish a startup/shutdown sequence across the container group. A container startup dependency is reversed on shutdown.

For example, you might specify that SideCarContainerB has a START dependency on SideCarContainerA. This dependency means that SideCarContainerB can't start until after SideCarContainerA has started. This dependency is reversed on shutdown, which means that SideCarContainerB must shut down before SideCarContainerA can shut down.

Implementations§

source§

impl ContainerDefinitionInput

source

pub fn container_name(&self) -> Option<&str>

A string that uniquely identifies the container definition within a container group.

source

pub fn image_uri(&self) -> Option<&str>

The location of a container image that $short; will copy and deploy to a container fleet. Images in Amazon Elastic Container Registry private repositories are supported. The repository must be in the same Amazon Web Services account and Amazon Web Services Region where you're creating the container group definition. For limits on image size, see Amazon GameLift endpoints and quotas. You can use any of the following image URI formats:

  • Image ID only: [AWS account].dkr.ecr.[AWS region].amazonaws.com/[repository ID]

  • Image ID and digest: [AWS account].dkr.ecr.[AWS region].amazonaws.com/[repository ID]@[digest]

  • Image ID and tag: [AWS account].dkr.ecr.[AWS region].amazonaws.com/[repository ID]:[tag]

source

pub fn memory_limits(&self) -> Option<&ContainerMemoryLimits>

The amount of memory to make available to the container. If you don't specify memory limits for this container, then it shares the container group's total memory allocation.

Related data type: ContainerGroupDefinition$TotalMemoryLimit

source

pub fn port_configuration(&self) -> Option<&ContainerPortConfiguration>

A set of ports that Amazon GameLift can assign to processes in the container. All processes that accept inbound traffic connections, including game server processes, must be assigned a port from this set. The set of ports must be large enough to assign one to each process in the container that needs one. If the container includes your game server, include enough ports to assign one port to each concurrent server process (as defined in a container fleet's RuntimeConfiguration). For more details, see Networking for container fleets.

Container ports aren't directly accessed by inbound traffic. Amazon GameLift maps these container ports to externally accessible connection ports, which are assigned as needed from the container fleet's ConnectionPortRange.

source

pub fn cpu(&self) -> Option<i32>

The number of CPU units to reserve for this container. The container can use more resources when needed, if available. Note: 1 vCPU unit equals 1024 CPU units. If you don't reserve CPU units for this container, then it shares the total CPU limit for the container group. This property is similar to the Amazon ECS container definition parameter environment (Amazon Elastic Container Service Developer Guide).

Related data type: ContainerGroupDefinition$TotalCpuLimit

source

pub fn health_check(&self) -> Option<&ContainerHealthCheck>

Configuration for a non-terminal health check. A container automatically restarts if it stops functioning. This parameter lets you define additional reasons to consider a container unhealthy and restart it. You can set a health check for any container except for the essential container in the replica container group. If an essential container in the daemon group fails a health check, the entire container group is restarted.

source

pub fn command(&self) -> &[String]

A command to pass to the container on startup. Add multiple arguments as additional strings in the array. See the ContainerDefinition command parameter in the Amazon Elastic Container Service API reference.

If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use .command.is_none().

source

pub fn essential(&self) -> Option<bool>

Specifies whether the container is vital for the container group to function properly. If an essential container fails, it causes the entire container group to restart. Each container group must have an essential container.

Replica container groups - A replica group must have exactly one essential container. Use the following to configure an essential replica container:

  • Choose a container is running your game server and the Amazon GameLift Agent.

  • Include a port configuration. This container runs your game server processes, and each process requires a container port to allow access to game clients.

  • Don't configure a health check. The Agent handles this task for the essential replica container.

Daemon container groups - A daemon group must have at least one essential container.

source

pub fn entry_point(&self) -> &[String]

An entry point to pass to the container on startup. Add multiple arguments as additional strings in the array. See the ContainerDefinition::entryPoint parameter in the Amazon Elastic Container Service API Reference.

If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use .entry_point.is_none().

source

pub fn working_directory(&self) -> Option<&str>

The directory in the container where commands are run. See the ContainerDefinition::workingDirectory parameter in the Amazon Elastic Container Service API Reference.

source

pub fn environment(&self) -> &[ContainerEnvironment]

A set of environment variables to pass to the container on startup. See the ContainerDefinition::environment parameter in the Amazon Elastic Container Service API Reference.

If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use .environment.is_none().

source

pub fn depends_on(&self) -> &[ContainerDependency]

Sets up dependencies between this container and the status of other containers in the same container group. A container can have dependencies on multiple different containers.

You can use dependencies to establish a startup/shutdown sequence across the container group. A container startup dependency is reversed on shutdown.

For example, you might specify that SideCarContainerB has a START dependency on SideCarContainerA. This dependency means that SideCarContainerB can't start until after SideCarContainerA has started. This dependency is reversed on shutdown, which means that SideCarContainerB must shut down before SideCarContainerA can shut down.

If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use .depends_on.is_none().

source§

impl ContainerDefinitionInput

source

pub fn builder() -> ContainerDefinitionInputBuilder

Creates a new builder-style object to manufacture ContainerDefinitionInput.

Trait Implementations§

source§

impl Clone for ContainerDefinitionInput

source§

fn clone(&self) -> ContainerDefinitionInput

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ContainerDefinitionInput

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for ContainerDefinitionInput

source§

fn eq(&self, other: &ContainerDefinitionInput) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl StructuralPartialEq for ContainerDefinitionInput

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

impl<Unshared, Shared> IntoShared<Shared> for Unshared
where Shared: FromUnshared<Unshared>,

source§

fn into_shared(self) -> Shared

Creates a shared type from an unshared type.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more