AwsEcsArgs
AwsEcsArgs = AwsEcsClusterCapabilityArgs | AwsEcsTaskDefinitionCapabilityArgs | AwsEcsServiceCapabilityArgs | AwsEcsCapacityProviderCapabilityArgsInput arguments for AwsEcs.
Remarks
Exactly one capability (cluster, taskDefinition, service, or capacityProvider) must be provided per component instance.
Logical identity fields (cluster.identity, taskDefinition.name, service.service.name, and capacityProvider.name) must be non-empty synchronous plain string values. Inputs/Outputs, promises, and apply-derived values are rejected fail-fast before resource construction. cluster.identity is logical-only; taskDefinition.name, service.service.name, and capacityProvider.name are shared logical/provider identities.
Example
CODE
// Cluster capability
const cluster = new AwsEcs({
cluster: {
identity: 'app-cluster',
},
});
// Task-definition capability
const taskDefinition = new AwsEcs({
taskDefinition: {
name: 'app',
cpu: '256',
memory: '512',
networkMode: 'awsvpc',
requiresCompatibilities: ['FARGATE'],
executionRole: 'arn:aws:iam::000000000000:role/ecsTaskExecutionRole',
taskRole: 'arn:aws:iam::000000000000:role/ecsTaskRole',
containerDefinitions: JSON.stringify([{ name: 'app', image: 'nginx', essential: true }]),
},
});
// Service capability with inline task-definition input
const serviceInlineTaskDefinition = new AwsEcs({
service: {
cluster,
taskDefinition: {
name: 'appService',
cpu: '256',
memory: '512',
networkMode: 'awsvpc',
requiresCompatibilities: ['FARGATE'],
executionRole: 'ecsTaskExecutionRoleName',
taskRole: 'ecsTaskRoleName',
containerDefinitions: JSON.stringify([{ name: 'app', image: 'nginx', essential: true }]),
},
service: {
name: 'app',
desiredCount: 1,
},
},
});
// Service capability with predefined default task-definition preset for a daemon service with cluster name lookup
const serviceDefaultTaskDefinition = new AwsEcs({
service: {
cluster: 'app-cluster',
taskDefinition: buildAwsEcsStandaloneTaskDefinitionArgs({
name: 'daemonService',
executionRole: 'ecsTaskExecutionRoleName',
taskRole: 'arn:aws:iam::000000000000:role/ecsTaskRole',
}),
service: {
name: 'daemon',
desiredCount: 1,
},
},
});