Task
Source:
src/AWS/ECS/Task.ts
A bundled ECS task definition.
Task bundles an inline Effect program, builds and pushes a Docker image to
a generated ECR repository, provisions task + execution IAM roles and a
CloudWatch log group, and registers a Fargate task definition. Each reconcile
registers a new immutable revision.
Beyond the single bundled container you can declare task-level configuration
(volumes, runtime platform, ephemeral storage, IPC/PID mode, placement
constraints) and append additional sidecars for multi-container tasks.
Creating a Task
Section titled “Creating a Task”const task = yield* Task("ApiTask", { main: import.meta.url, cpu: 256, memory: 512, port: 3000,});Multi-Container Tasks
Section titled “Multi-Container Tasks”const task = yield* Task("ApiTask", { main: import.meta.url, port: 3000, sidecars: [ { name: "otel-collector", image: "public.ecr.aws/aws-observability/aws-otel-collector:latest", essential: false, portMappings: [{ containerPort: 4317, protocol: "tcp" }], }, ],});Task-Level Configuration
Section titled “Task-Level Configuration”const task = yield* Task("WorkerTask", { main: import.meta.url, runtimePlatform: { cpuArchitecture: "ARM64", operatingSystemFamily: "LINUX" }, ephemeralStorage: { sizeInGiB: 40 }, volumes: [ { name: "data", efsVolumeConfiguration: { fileSystemId: fileSystem.fileSystemId }, }, ], container: { mountPoints: [{ sourceVolume: "data", containerPath: "/data" }], },});