⚡️ Features and enhancements
- Support publish/subscribe architecture pattern for asynchronous communication between your services (#2550)
All existing service patterns now support an optional
publish
field in the manifest to broadcast events with SNS topics:publish: - name: orders allowed_workers: [receipt-worker]
A new "Worker Service" pattern (SNS -> SQS -> ECS on Fargate) is introduced to
copilot svc init
to consume events from the topics.
To learn more see the documentation. - Allow overriding Amazon ECS Task Definition fields with the new
taskdef_overrides
field (#2588)You can now add or update any Task Definition fields that in the manifest of Load Balanced Web Services, Backend Services, Worker Services, and Scheduled Jobs. Here is an example:
taskdef_overrides: - path: ContainerDefinitions[0].Ulimits[-] value: Name: "cpu" SoftLimit: 1024 HardLimit: 2048
To learn more see the documentation.
- Add a
--force
flag tocopilot deploy
,copilot svc deploy
,copilot job deploy
(#2736)Without the
--force
flag, Copilot returns a CloudFormation empty change set error. Now, you can run the deploy commands with the flag to force a new deployment. - Support multiple aliases for a Load Balanced Web Service (#2638)
http: # String version. alias: example.com http: # Alternatively, as an array of strings. alias: ["example.com", "v1.example.com"]
🐛 Bug Fixes
- Apply
environment
overrides forefs
,healthcheck
,alias
,range
fields in manifests (#2745) - Skip validating environment name if application name cannot be retrieved (#2781)
- The "Build" stage of CodePipeline no longer throws an error if the pipeline manifest includes only a subset of your environments (#2715)
- Return an error instead of a segmentation fault if there is no
image.port
field specified for Request-Driven Web Services (#2712)
❤️ Contributions
Thank you for the contributions!