94 lines
3.6 KiB
TypeScript
94 lines
3.6 KiB
TypeScript
import type { Construct } from 'constructs';
|
|
import type { CommonTaskDefinitionAttributes, CommonTaskDefinitionProps, InferenceAccelerator, IpcMode, ITaskDefinition, PidMode } from '../base/task-definition';
|
|
import { NetworkMode, TaskDefinition } from '../base/task-definition';
|
|
import type { ContainerDefinition, ContainerDefinitionOptions } from '../container-definition';
|
|
import type { PlacementConstraint } from '../placement';
|
|
/**
|
|
* The properties for a task definition run on an EC2 cluster.
|
|
*/
|
|
export interface Ec2TaskDefinitionProps extends CommonTaskDefinitionProps {
|
|
/**
|
|
* The Docker networking mode to use for the containers in the task.
|
|
*
|
|
* The valid values are NONE, BRIDGE, AWS_VPC, and HOST.
|
|
*
|
|
* @default - NetworkMode.BRIDGE for EC2 tasks, AWS_VPC for Fargate tasks.
|
|
*/
|
|
readonly networkMode?: NetworkMode;
|
|
/**
|
|
* An array of placement constraint objects to use for the task. You can
|
|
* specify a maximum of 10 constraints per task (this limit includes
|
|
* constraints in the task definition and those specified at run time).
|
|
*
|
|
* @default - No placement constraints.
|
|
*/
|
|
readonly placementConstraints?: PlacementConstraint[];
|
|
/**
|
|
* The IPC resource namespace to use for the containers in the task.
|
|
*
|
|
* Not supported in Fargate and Windows containers.
|
|
*
|
|
* @default - IpcMode used by the task is not specified
|
|
*/
|
|
readonly ipcMode?: IpcMode;
|
|
/**
|
|
* The process namespace to use for the containers in the task.
|
|
*
|
|
* Not supported in Windows containers.
|
|
*
|
|
* @default - PidMode used by the task is not specified
|
|
*/
|
|
readonly pidMode?: PidMode;
|
|
/**
|
|
* The inference accelerators to use for the containers in the task.
|
|
*
|
|
* Not supported in Fargate.
|
|
*
|
|
* @default - No inference accelerators.
|
|
*/
|
|
readonly inferenceAccelerators?: InferenceAccelerator[];
|
|
}
|
|
/**
|
|
* The interface of a task definition run on an EC2 cluster.
|
|
*/
|
|
export interface IEc2TaskDefinition extends ITaskDefinition {
|
|
}
|
|
/**
|
|
* Attributes used to import an existing EC2 task definition
|
|
*/
|
|
export interface Ec2TaskDefinitionAttributes extends CommonTaskDefinitionAttributes {
|
|
}
|
|
/**
|
|
* The details of a task definition run on an EC2 cluster.
|
|
*
|
|
* @resource AWS::ECS::TaskDefinition
|
|
*/
|
|
export declare class Ec2TaskDefinition extends TaskDefinition implements IEc2TaskDefinition {
|
|
/**
|
|
* Uniquely identifies this class.
|
|
*/
|
|
static readonly PROPERTY_INJECTION_ID: string;
|
|
/**
|
|
* Imports a task definition from the specified task definition ARN.
|
|
*/
|
|
static fromEc2TaskDefinitionArn(scope: Construct, id: string, ec2TaskDefinitionArn: string): IEc2TaskDefinition;
|
|
/**
|
|
* Imports an existing Ec2 task definition from its attributes
|
|
*/
|
|
static fromEc2TaskDefinitionAttributes(scope: Construct, id: string, attrs: Ec2TaskDefinitionAttributes): IEc2TaskDefinition;
|
|
/**
|
|
* Validates the placement constraints to make sure they are supported.
|
|
* Currently, only 'memberOf' is a valid constraint for an Ec2TaskDefinition.
|
|
*/
|
|
private static validatePlacementConstraints;
|
|
/**
|
|
* Constructs a new instance of the Ec2TaskDefinition class.
|
|
*/
|
|
constructor(scope: Construct, id: string, props?: Ec2TaskDefinitionProps);
|
|
/**
|
|
* Tasks running in AWSVPC networking mode requires an additional environment variable for the region to be sourced.
|
|
* This override adds in the additional environment variable as required
|
|
*/
|
|
addContainer(id: string, props: ContainerDefinitionOptions): ContainerDefinition;
|
|
}
|