copilot-cli: Release v1.20.0
⚡️ Features and Enhancements
- Brand-New Env Manifests Allow You to Configure and Modify your Environments (#3522)
Update environments even after they're deployed, rather than deleting and recreating them! Environment manifests enable modeling and provisioning environments with infrastructure as code.
Please note thatenv init
no longer automatically deploys an environment and instead generates a manifest file.$ cat copilot/environments/prod/manifest.yml # The manifest for the "prod" environment. # Read the full specification for the "Environment" type at: # https://aws.github.io/copilot-cli/docs/manifest/environment/ # Your environment name will be used in naming your resources like VPC, cluster, etc. name: prod type: Environment # Import your own VPC and subnets or configure how they should be created. # network: # vpc: # id: # Configure the load balancers in your environment, once created. # http: # public: # private: # Configure observability for your environment resources. observability: container_insights: false
For a detailed explanation and walkthrough, see blog post.
- A New Type of Pipeline to Manage Environment Deployment (#3751)
Enjoy continuous delivery of environments by setting up an environment pipeline. Follow the same steps (
pipeline init
andpipeline deploy
) that you've been using to create pipelines for services and jobs. A pipeline manifest and buildspec will be created, which you may configure and push to your source repository between the two commands.
See blog post for more. --manifest
flags forsvc show
andenv show
(#3715 & #3597)The
--manifest
flag helps you generate manifest files for your existing environments, for smooth integration into Copilot's new env manifest functionality.$ mkdir -p copilot/environments/prod $ copilot env show -n prod --manifest > copilot/environments/prod/manifest.yml
The flag also makes it easy to
init
new services and envs that are similar to your existing ones (that have been deployed since v1.20.0).$ mkdir -p copilot/second-svc $ copilot svc show -n first-svc --manifest env-name > copilot/second-svc/manifest.yml // Change the value of the `name:` field in the manifest from `first-svc` to `second-svc` $ copilot svc init -n second-svc
- Configuration of Autoscaling Cooldown Periods Allowed (#3629, #3644, #3667)
For
Load Balanced
,Backend
, andWorker
Services, configure their autoscaling fields undercount
to have custom cooldown periods.
Previously, each scaling metric such ascpu_percentage
had a set in cooldown of 120 secs and out cooldown of 60 seconds.
For a detailed explanation and walkthrough, see blog post. For the specifications, see documentation. - New
copilot env package
command (#3731)Like the existing
svc package
command, this new command prints the CloudFormation stack template and configuration used to deploy your environment. You may optionally write the output to a directory or upload assets like container images and Lambda functions. Asset locations are automatically plugged into the template! copilot job run
(#3692)When you set up a scheduled job, sometimes you want to give it a test run to ensure that it works as expected, or you want to force a one-off run of your job. Now you can!
- Denial of Default Security Group Ingress Allowed (#3682)
Indicate in your workload manifest that you don't want to allow ingress of Copilot's default
EnvironmentSecurityGroup
. Find out how here! - You Can Now Add Permissions to Pipeline Build Role (#3709)
By adding policies to your build role via your pipeline manifest, you'll enjoy greatly increased flexibility. Access Secrets Manager to avoid the Docker Hub pull rate limit, grab parameters from Systems Manager, pull objects down from an S3 bucket, and more!
- Surface Exit Codes for
task run
(#3620)Copilot now forwards non-zero exit codes when tasks launched by the
copilot task run --follow
command fail. - Predictable Alias for Backend Services (#3668)
For a backend service with an internal ALB, Copilot will create a hosted zone
[env].[app].internal
and insert an A record[svc].[env].[app].internal
into the hosted zone that points to the internal ALB.
🐛 Bug Fixes
- Fix Quoting of Env Vars and Secrets in
task run --generate-cmd
(#3702) - Allow Wildcard Character (
*
) in Aliases (#3739) - Don't Require Availability Zones When the VPC is Adjusted (#3745)
- Don't Require Docker Engine for
svc init
When Bringing a Built Image (#3671) - Don't Require
port
Specification for Sidecar Config to Render Properly (#3666)
❤️ Contributions
Thank you, contributors!