Amazon ECS
Manage cluster, task-definition and service records.
Plan: Pro76 of 77 operations implemented, 1 failed in testing4Known differences
A service can report running tasks while its deployment and task set count none, and RunTask returns HTTP 501 NotIncluded in Vera 1.2.0-rc.3.
Example checked on Vera 1.2.2, 8 November 2026. Each coverage note names its own evidence and date.
Connect
Section titled “Connect”Activate your license key and start the emulator with the Vera launcher, as in Activate Pro, then run this in a terminal of its own, from an empty scratch directory. It gives the official AWS CLI dummy credentials and a config file of its own, so no AWS account is needed and your own AWS profile isn't touched.
export VERA_ENDPOINT="http://localhost:5003"export AWS_ACCESS_KEY_ID=test AWS_SECRET_ACCESS_KEY=testexport AWS_REGION=us-east-1 AWS_DEFAULT_REGION=us-east-1export AWS_SHARED_CREDENTIALS_FILE=/dev/nullexport AWS_EC2_METADATA_DISABLED=trueexport AWS_PAGER="" AWS_CLI_AUTO_PROMPT=offunset AWS_PROFILE AWS_DEFAULT_PROFILEunset AWS_SESSION_TOKEN AWS_SECURITY_TOKENunset AWS_WEB_IDENTITY_TOKEN_FILE AWS_ROLE_ARN AWS_ROLE_SESSION_NAMEunset AWS_CONTAINER_CREDENTIALS_FULL_URIunset AWS_CONTAINER_CREDENTIALS_RELATIVE_URIcat > vera-aws-config <<'EOF'[default]region = us-east-1output = jsoncli_binary_format = base64s3 = addressing_style = pathEOFexport AWS_CONFIG_FILE="$PWD/vera-aws-config"When you've finished every example in this terminal, close it and delete vera-aws-config, not before.
Use the AWS CLI’s ecs commands. The emulator serves the 2014-11-13 API over the AWS JSON protocol, and the examples use us-east-1.
Cluster and service ARNs carry the region local instead of the one you signed for, such as arn:aws:ecs:local:123456789012:cluster/vera-docs-cluster, while task definition ARNs carry us-east-1. Pass ARNs exactly as the emulator returns them.
Example
Section titled “Example”Create a cluster, register a Fargate task definition and create a service from it with no tasks, then raise its desired count to 1 and describe the service. The image is an example name that’s never pulled.
CLUSTER_ARN=$(aws --endpoint-url "$VERA_ENDPOINT" ecs create-cluster \ --cluster-name vera-docs-cluster --query cluster.clusterArn --output text)TASK_DEF_ARN=$(aws --endpoint-url "$VERA_ENDPOINT" ecs register-task-definition \ --family vera-docs-task --network-mode awsvpc --requires-compatibilities FARGATE \ --cpu 256 --memory 512 \ --container-definitions '[{"name": "web", "image": "example.net/docs-image:latest", "essential": true}]' \ --query taskDefinition.taskDefinitionArn --output text)aws --endpoint-url "$VERA_ENDPOINT" ecs create-service \ --cluster "$CLUSTER_ARN" --service-name vera-docs-service \ --task-definition "$TASK_DEF_ARN" --desired-count 0 --launch-type FARGATEaws --endpoint-url "$VERA_ENDPOINT" ecs update-service \ --cluster "$CLUSTER_ARN" --service vera-docs-service --desired-count 1aws --endpoint-url "$VERA_ENDPOINT" ecs describe-services \ --cluster "$CLUSTER_ARN" --services vera-docs-serviceThe emulator accepts this Fargate service without network configuration, so don’t use the example as a recipe for AWS. These are selected fields from the last command’s output:
{ "services": [ { "serviceName": "vera-docs-service", "status": "ACTIVE", "desiredCount": 1, "runningCount": 1, "taskSets": [ { "pendingCount": 0, "runningCount": 0 } ], "deployments": [ { "desiredCount": 0, "pendingCount": 0, "runningCount": 0 } ] } ]}The service’s desired and running counts became 1 at once, while its task set and deployment still count none. These are counters on a record: no container started. The update also replaced several of the service’s deployment settings with zero or empty defaults.
To clean up, scale the service back to 0, delete it, deregister the task definition and delete the cluster. Deregistering makes the task definition inactive rather than erasing it:
aws --endpoint-url "$VERA_ENDPOINT" ecs update-service \ --cluster "$CLUSTER_ARN" --service vera-docs-service --desired-count 0aws --endpoint-url "$VERA_ENDPOINT" ecs delete-service \ --cluster "$CLUSTER_ARN" --service vera-docs-service --forceaws --endpoint-url "$VERA_ENDPOINT" ecs deregister-task-definition --task-definition "$TASK_DEF_ARN"aws --endpoint-url "$VERA_ENDPOINT" ecs delete-cluster --cluster "$CLUSTER_ARN"Supported features
Section titled “Supported features”- Clusters, task definitions and services as records: create, describe, change a service’s desired count, and delete or deregister. Their metadata works as the example shows.
- Regions kept apart: a cluster created in
us-east-1isn’t returned when described inus-west-2. - Listed in the earlier implementation inventory; not rechecked against Vera 1.2.0-rc.3: capacity providers, task sets and service deployments, container instances, daemons, account settings, attributes, ECS Exec and tags.
Limitations
Section titled “Limitations”The main limits are below. A few more apply to every service, and the API coverage notes cover smaller differences.
- Tasks can’t be run in Vera 1.2.0-rc.3.
RunTaskreturns HTTP 501NotIncluded, because this release doesn’t include the task engine, and a Pro license doesn’t add it. In Vera 1.2.0 preview,RunTaskcreated task records thatDescribeTasks,ListTasksandStopTaskworked on, but no container started. - No containers ran. No container engine, image pull, traffic, ECS Exec or logs were verified. Services are records: the example’s service reports a running task though nothing started.
- Counts don’t reconcile. Changing a service’s desired count reports the same number running at once, while its task set and deployment keep counting none. Don’t read scheduling or container readiness from these counters.
- Region
localin ARNs. Clusters and services signed forus-east-1get ARNs in the regionlocal. - Services can’t be scaling targets. In testing of Vera 1.2.0 preview, Application Auto Scaling rejected an existing ECS service as not found.
API coverage
Section titled “API coverage”Every operation in AWS's published 2014-11-13 API (SDK model, botocore 1.43.105), and whether the emulator implements it. Availability combines the earlier implementation inventory with the dated observations below; checking a page's example does not verify every operation. Each note names its evidence first; an observation given without a build or date comes from earlier testing, on 3 November 2026. What the statuses mean
No operation matches .
Try part of a name, such as ContinueServiceDeployment, or .
| Operation | Status | Notes |
|---|---|---|
| Continue | Implemented | |
| Create | Implemented | |
| Create | Known difference | Local observation: Returns a cluster ARN in the region local instead of the one you signed for. Local observation: Vera 1.2.0 preview, 5 November 2026 — the same. |
| Create | Implemented | |
| Create | Implemented | |
| Create | Known difference | Local observation: Returns service ARNs in the region local. The service is a record: no tasks started in testing. Local observation: Vera 1.2.0 preview, 5 November 2026 — the same, and a Fargate service was accepted without network configuration. |
| Create | Implemented | |
| Delete | Implemented | |
| Delete | Implemented | |
| Delete | Implemented | |
| Delete | Implemented | Local observation: Vera 1.2.0 preview, 5 November 2026 — deleted the example's cluster. |
| Delete | Implemented | |
| Delete | Implemented | |
| Delete | Implemented | |
| Delete | Implemented | Local observation: Vera 1.2.0 preview, 5 November 2026 — deleted the example's service with --force after it was scaled back to 0. |
| Delete | Implemented | |
| Delete | Implemented | |
| Deregister | Implemented | |
| Deregister | Implemented | Local observation: Vera 1.2.0 preview, 5 November 2026 — deregistered the example's task definition, which becomes inactive rather than erased. |
| Describe | Implemented | |
| Describe | Implemented | Local observation: Vera 1.2.0 preview, 5 November 2026 — a cluster created in us-east-1 wasn't returned by a request to us-west-2. |
| Describe | Implemented | |
| Describe | Implemented | |
| Describe | Implemented | |
| Describe | Implemented | |
| Describe | Implemented | |
| Describe | Implemented | |
| Describe | Implemented | |
| Describe | Implemented | |
| Describe | Known difference | Local observation: Vera 1.2.0 preview, 5 November 2026 — after the desired count was raised to 1, reported the service's desiredCount and runningCount as 1, but 0 running and pending for its task set and 0 desired, running and pending for its deployment. The counters don't show a running container. |
| Describe | Implemented | |
| Describe | Implemented | |
| Describe | Implemented | Local observation: Vera 1.2.0 preview, 5 November 2026 — described a task record from RunTask. |
| Discover | Implemented | |
| Execute | Implemented | |
| Get | Implemented | |
| List | Implemented | |
| List | Implemented | |
| List | Implemented | |
| List | Implemented | |
| List | Implemented | |
| List | Implemented | |
| List | Implemented | |
| List | Implemented | |
| List | Implemented | |
| List | Implemented | |
| List | Implemented | |
| List | Implemented | |
| List | Implemented | |
| List | Implemented | Local observation: Vera 1.2.0 preview, 5 November 2026 — listed a task record from RunTask. |
| Put | Implemented | |
| Put | Implemented | |
| Put | Implemented | |
| Put | Implemented | |
| Register | Implemented | |
| Register | Implemented | |
| Register | Implemented | Local observation: Vera 1.2.0 preview, 5 November 2026 — registered a Fargate task definition, whose ARN carries us-east-1. Its image wasn't pulled. |
| Run | Failed in testing | Local observation: Vera 1.2.0-rc.3, 6 November 2026 — returns HTTP 501 NotIncluded, because this Vera release doesn't include the task engine. A Pro license doesn't add the engine. The request named a cluster and task definition that don't exist; the refusal came before either was looked up. The earlier observations that follow don't describe Vera 1.2.0-rc.3. Local observation: earlier testing, 3 November 2026 — returned ARNs in the region local. Tasks were records: no image was pulled and no container started. Local observation: Vera 1.2.0 preview, 5 November 2026 — created a task record; no container started. |
| Start | Implemented | |
| Stop | Implemented | |
| Stop | Implemented | Local observation: Vera 1.2.0 preview, 5 November 2026 — stopped a task record from RunTask. |
| Submit | Implemented | |
| Submit | Implemented | |
| Submit | Implemented | |
| Tag | Implemented | |
| Untag | Implemented | |
| Update | Implemented | |
| Update | Implemented | |
| Update | Implemented | |
| Update | Implemented | |
| Update | Implemented | |
| Update | Implemented | |
| Update | Implemented | |
| Update | Known difference | A new desired count is reported as running at once, while the service's task set and deployment still count none. Local observation: Vera 1.2.0 preview, 5 November 2026 — the same, and the update also replaced several deployment settings with zero or empty defaults. No container started. |
| Update | Implemented | |
| Update | Implemented | |
| Update | Implemented |