Before you start coding, set up your development environment and brush up on the following topics. If you need a refresher on coding AWS CloudFormation or using GitHub, follow the links provided.
Before you start
What you must set up:
- Get a GitHub account.
- We use GitHub for source control. The GitHub organization for AWS Quick Starts is at https://github.com/aws-quickstart.
- We use SSH authentication in the submodules, so if you want to contribute to the Quick Starts, you must have your public key registered in your GitHub account.
- For security reasons, you must enable two-factor authentication (2FA) on your account.
- Set up your development environment:
- For an IDE, use Visual Studio with AWS Tools, Atom, Sublime Text, or Visual Studio Code.
- For source control, use Git, GitHub.com, or SSH keys.
What you must know:
- If you haven’t used Git before, learn about commands and concepts at https://git-scm.com/doc. Pay special attention to the following sections:
- Familiarize yourself with JSON or YAML.
- JSON and YAML are the two supported formats for AWS CloudFormation templates. However, note that AWS CloudFormation doesn’t support all YAML features.
- Learn about AWS CloudFormation. Here are some useful links:
- Explore AWS services to include in your deployment to improve the usefulness of your cloud architecture:
Using the Quick Start GitHub organization
The GitHub organization for AWS Quick Starts is at https://github.com/aws-quickstart. When your Quick Start has been approved for publication, we will create a private GitHub repository for you within this organization and give you access to its contents. To commit code into this repository, you must create pull requests. When your development work and testing are complete and the Quick Start is ready for publication, we will make the GitHub repository public.
The GitHub repositories follow these standards:
Repository names start with
quickstart-and are followed by the company name and product name with dashes as delimiters. If the Quick Start architecture includes multiple solutions, we also add the workload or use case name. The repository names and the folders names must be lowercase, and we recommend that file names be lowercase as well. For example:
- The GitHub repository for each Quick Start includes the following branches:
- master for releases that are ready to be copied to the S3 bucket for publication.
- develop for integrating changes from pull requests and other feature branches.
- Feature branches, as necessary, for planned updates.
- The GitHub repository for each Quick Start includes the following folders:
- ci: Contains the configuration file and parameter files used for automated testing.
- scripts: Contains the scripts and configuration files that are used in the Quick Start; for example, to orchestrate the bootstrap, install or configure an app, or update a host.
- submodules: Used for any referenced Quick Starts that are configured as submodules of the Quick Start. These follow the naming convention /submodules/quickstart-repo-name where the contents are synced at a specific commit level. For more information, see submodules in the builder’s guide.
- templates: Contains the AWS CloudFormation templates for the Quick Start. All templates use the .template file extension.
- The following files are added during repository creation:
- README.md: General information about the Quick Start. The Quick Start team will edit this file to provide information about your Quick Start. For an example, see the README for Citrix.
- NOTICE.txt: Copyright notice. Do not modify this file.
- LICENSE.txt: Apache 2.0 license. Do not modify this file.
- Do not store deployment guides or software bits in the GitHub repository. Deployment guides are managed separately, and software bits are downloaded on demand from other approved locations.