UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

89 lines (88 loc) 3.48 kB
import { Construct } from 'constructs'; import { CommonTaskDefinitionAttributes, CommonTaskDefinitionProps, InferenceAccelerator, IpcMode, ITaskDefinition, NetworkMode, PidMode, TaskDefinition } from '../base/task-definition'; import { ContainerDefinition, ContainerDefinitionOptions } from '../container-definition'; import { 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 { /** * 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; }