Skip to content
mainline
Switch branches/tags
Code

Latest commit

Today, `stream.Stream` is structured as:
```go
case <-streamer.Done():
  // call Close()
case <-time.After(fetchDelay):
  // call Fetch()
```
The problem is that it's possible that the `Done()` event is triggered at
the same time as `time.After(fetchDelay)` and in that scenario the
behavior is undeterministic.
It's possible that we call `Fetch` a second time. For the ECS deployment
streamer, this means that we would previous close the `s.done` channel
twice. Wrapping the call with a `sync.Once` removes this concern.


By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
3d97212

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time

AWS Copilot CLI AWS Copilot CLI

Build, Release and Operate Containerized Applications on AWS.

latest version Join the chat at https://gitter.im/aws/copilot-cli

The AWS Copilot CLI is a tool for developers to build, release and operate production ready containerized applications on AWS App Runner, Amazon ECS, and AWS Fargate.

Use Copilot to:

  • Deploy production-ready, scalable services on AWS from a Dockerfile in one command.
  • Add databases or inject secrets to your services.
  • Grow from one microservice to a collection of related microservices in an application.
  • Set up test and production environments, across regions and accounts.
  • Set up CI/CD pipelines to release your services to your environments.
  • Monitor and debug your services from your terminal.

init

Installation

To install with homebrew:

$ brew install aws/tap/copilot-cli

To install manually, we're distributing binaries from our GitHub releases:

Instructions for installing Copilot for your platform
Platform Command to install
macOS curl -Lo copilot https://github.com/aws/copilot-cli/releases/latest/download/copilot-darwin && chmod +x copilot && sudo mv copilot /usr/local/bin/copilot && copilot --help
Linux x86 (64-bit) curl -Lo copilot https://github.com/aws/copilot-cli/releases/latest/download/copilot-linux && chmod +x copilot && sudo mv copilot /usr/local/bin/copilot && copilot --help
Linux (ARM) curl -Lo copilot https://github.com/aws/copilot-cli/releases/latest/download/copilot-linux-arm64 && chmod +x copilot && sudo mv copilot /usr/local/bin/copilot && copilot --help
Windows Invoke-WebRequest -OutFile 'C:\Program Files\copilot.exe' https://github.com/aws/copilot-cli/releases/latest/download/copilot-windows.exe

Getting started

Make sure you have the AWS command line tool installed and have already run aws configure before you start.

To get a sample app up and running in one command, run the following:

$ git clone git@github.com:aws-samples/aws-copilot-sample-service.git demo-app
$ cd demo-app
$ copilot init --app demo                \
  --name api                             \
  --type 'Load Balanced Web Service'     \
  --dockerfile './Dockerfile'            \
  --deploy

This will create a VPC, Application Load Balancer, an Amazon ECS Service with the sample app running on AWS Fargate. This process will take around 8 minutes to complete - at which point you'll get a URL for your sample app running! 🚀

Learning more

Want to learn more about what's happening? Check out our documentation https://aws.github.io/copilot-cli/ for a getting started guide, learning about Copilot concepts, and a breakdown of our commands.

Feedback

Have any feedback at all? 🙏 Drop us an issue or join us on gitter.

We're happy to hear feedback or answer questions, so reach out, anytime!

Security disclosures

If you think you’ve found a potential security issue, please do not post it in the Issues. Instead, please follow the instructions here or email AWS security directly at aws-security@amazon.com.

License

This library is licensed under the Apache 2.0 License.