aws / aws/containers-roadmap

[ECS] [request]: Allow updating canary deployment configuration for Express Gateway services via CLI/SDK

Open
#2,813 3 comments 15 reactions 1 assignee Claimed by @nikitadahiya View on GitHub
ECS Proposed Under consideration
Dominant language
Shell
Stars
5.4k
Forks
334
PR merge metrics
No merged PRs in 30d

Description

### Community Note

* Please vote on this issue by adding a 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to the original issue to help the community and maintainers prioritize this request
* Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
* If you are interested in working on this issue or have submitted a pull request, please leave a comment

**Tell us about your request**

Expose canary deployment configuration (canary percent, canary bake time, deployment bake time) via the `update-express-gateway-service` API/CLI command, or allow `update-service --deployment-configuration` to work on Express Gateway services.

**Which service(s) is this request for?**

ECS Express Gateway Services (Fargate)

**Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?**

We run an internal platform that provisions ECS Express services programmatically via CI/CD (GitHub Actions). After a service is first created, we want to adjust the canary deployment settings to optimize for our non-production environments — specifically setting canary percent to 100%, canary bake time to 0, and deployment bake time to 0 — so that deploys complete in 1-2 minutes instead of ~10 minutes.

Currently:
- `aws ecs update-service --deployment-configuration` returns `InvalidParameterException: Updates to the deployment strategy are not supported for ExpressGatewayServices`
- `aws ecs update-express-gateway-service` does not include any deployment strategy parameters
- The ECS Console **does** allow updating these settings (canary percent, canary bake time, deployment bake time) — confirming the underlying API supports it, but it's not exposed via CLI/SDK

This means we cannot automate deployment strategy configuration as part of our infrastructure-as-code or CI/CD pipelines. Every new service requires a manual Console visit to adjust these settings.

**Are you currently working around this issue?**

Yes — after a service is first created by our CI/CD pipeline, an engineer manually navigates to the ECS Console (Clusters → Service → Update) and changes the canary settings. This is not scalable for a platform that provisions services dynamically per-branch (we create/destroy dozens of services per day across multiple applications).

**Additional context**

- We use `aws-actions/amazon-ecs-deploy-express-service@v1` GitHub Action for deployments
- Our platform creates ephemeral branch-based environments (each git branch = one ECS Express service)
- For non-production environments, the default canary settings (5% traffic, 3 min bake, 3 min deployment bake) add unnecessary deployment latency
- We already validate health checks locally before deploying, so the conservative canary approach adds little safety value for nonprod
- Ideally, `update-express-gateway-service` would accept a `--deployment-configuration` or `--canary-configuration` parameter matching what the Console exposes

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.