⚡️ Features and Enhancements
-
Add support for automating rollbacks for Amazon ECS services with CloudWatch alarms
You can now monitor your ECS deployments with custom CloudWatch alarms! Configure your services to roll back to the last completed deployment if your alarms go into
In alarm
state during deployment. With the circuit breaker, Copilot has already been rolling back your failed deployments. Now, you can also roll back service deployments that aren't failing, but aren't performing in accordance with the metrics of your choice.For example, in your backend, worker, or load-balanced web service manifest, you may import your own existing CloudWatch alarms:
deployment: rollback_alarms: ["MyAlarm-ELB-4xx", "MyAlarm-ELB-5xx"]
Or have Copilot create a CPU and/or memory utilization alarm for you, with thresholds of your choice:
deployment: rollback_alarms: cpu_utilization: 70 // Percentage value at or above which alarm is triggered. memory_utilization: 50 // Percentage value at or above which alarm is triggered.
Read the blog post for more!
-
Update
storage init
to support DynamoDB tables, S3 buckets or RDS clusters as environment storageNow, you can create environment addons for your storage easily with
copilot storage init --lifecycle environment
. The storage is deployed when you runcopilot env deploy
, and isn't deleted until you delete the environment by runningcopilot env delete
.Here is an example of prompts that you might see when you run
copilot storage init
without any flags.$ copilot storage init What type of storage would you like to create? > DynamoDB (NoSQL) S3 (Objects) Aurora Serverless (SQL) Which workload needs access to the storage? > api backend What would you like to name this DynamoDB Table? movies Do you want the storage to be created and deleted with the api service? Yes, the storage should be created and deleted at the same time as api > No, the storage should be created and deleted at the environment level
Read the blog post for more!
-
Support Request-Driven Web Service secrets
You can now add your secrets (from SSM Parameter Store or AWS Secrets Manager) to your App Runner service as environment variables using Copilot.
Similar to other service types such as Load-Balanced Web Service, you need to first add the following tags to your secrets:
Key Value copilot-application
Application name from which you want to access the secret copilot-environment
Environment name from which you want to access the secret Then simply update your Request-Driven Web Service manifest with:
secrets: GITHUB_TOKEN: GH_TOKEN_SECRET
And deploy! Your service can now access the secret as an environment variable.
Read the blog post for more!