From 39c10e79c7c33cb138c150ce17a822c86452ab8a Mon Sep 17 00:00:00 2001 From: Rico Huijbers Date: Fri, 12 Jul 2019 16:18:19 +0200 Subject: [PATCH] chore: small tweaks to master README (#3268) --- README.md | 92 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 61 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index 449379724d8a3..461b0d889d238 100644 --- a/README.md +++ b/README.md @@ -4,37 +4,42 @@ [![Build Status](https://travis-ci.org/aws/aws-cdk.svg?branch=master)](https://travis-ci.org/aws/aws-cdk) [![Version](https://badge.fury.io/js/aws-cdk.svg)](https://badge.fury.io/js/aws-cdk) [![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.svg)](https://gitter.im/awslabs/aws-cdk) +[![NPM version](https://badge.fury.io/js/aws-cdk.svg)](https://badge.fury.io/js/aws-cdk) +[![PyPI version](https://badge.fury.io/py/aws-cdk.core.svg)](https://badge.fury.io/py/aws-cdk.core) +[![NuGet version](https://badge.fury.io/nu/Amazon.CDK.svg)](https://badge.fury.io/nu/Amazon.CDK) +[![Maven Central](https://maven-badges.herokuapp.com/maven-central/software.amazon.awscdk/core/badge.svg)](https://maven-badges.herokuapp.com/maven-central/software.amazon.awscdk/core) The **AWS Cloud Development Kit (AWS CDK)** is an open-source software development framework to define cloud infrastructure in code and provision it through AWS CloudFormation. -The CDK integrates fully with AWS services and offers a higher level object-oriented -abstraction to define AWS resources imperatively. Using the CDK’s library of -infrastructure [constructs], you can easily encapsulate AWS best practices in your -infrastructure definition and share it without worrying about boilerplate logic. The -CDK improves the end-to-end development experience because you get to use the power -of modern programming languages to define your AWS infrastructure in a predictable -and efficient manner. - -The following languages are currently supported: - -* JavaScript, TypeScript -* Python -* Java (Developer Preview) -* .NET (Developer Preview) - -[Developer Guide] | -[Tutorial] | + +It offers a high-level object-oriented abstraction to define AWS resources imperatively using +the power of modern programming languages. Using the CDK’s library of +infrastructure constructs, you can easily encapsulate AWS best practices in your +infrastructure definition and share it without worrying about boilerplate logic. + +The CDK is available in the following languages: + +* JavaScript, TypeScript ([Node.js ≥ 8.11.x](https://nodejs.org/en/download)) +* Python ([Python ≥ 3.6](https://www.python.org/downloads/)) +* Java (Developer Preview, [Java ≥ 8](https://www.oracle.com/technetwork/java/javase/downloads/index.html) and [Maven ≥ 3.5.4](https://maven.apache.org/download.cgi)) +* .NET (Developer Preview, [.NET Core ≥ 2.0](https://dotnet.microsoft.com/download)) + +The CDK is currently in developer preview and we look forward to community feedback and collaboration! + +------- + +[Developer Guide](https://docs.aws.amazon.com/cdk/latest/guide) | +[Getting Started](https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html) | [API Reference](https://docs.aws.amazon.com/cdk/api/latest/docs/aws-construct-library.html) | [Examples](https://github.com/aws-samples/aws-cdk-examples) | [Getting Help](#getting-help) -Developers can use one of the supported programming languages to define reusable -cloud components called [constructs], which are composed together into -[stacks] and [apps]. +Developers use the [CDK framework] in one of the +supported programming languages to define reusable cloud components called [constructs], which +are composed together into [stacks], forming a "CDK app". -The [AWS CDK Toolkit] is a command-line tool for interacting with -CDK apps. It allows developers to synthesize artifacts such as AWS -CloudFormation Templates, deploy stacks to development AWS accounts and "diff" +They then use the [AWS CDK CLI] to interact with their CDK app. The CLI allows developers to +synthesize artifacts such as AWS CloudFormation Templates, deploy stacks to development AWS accounts and "diff" against a deployed stack to understand the impact of a code change. The [AWS Construct Library] includes a module for each @@ -43,30 +48,53 @@ how to use AWS. The AWS Construct Library aims to reduce the complexity and glue-logic required when integrating various AWS services to achieve your goals on AWS. +[cdk framework]: https://docs.aws.amazon.com/cdk/api/latest/ [constructs]: https://docs.aws.amazon.com/cdk/latest/guide/constructs.html [stacks]: https://docs.aws.amazon.com/cdk/latest/guide/apps_and_stacks.html#stacks [apps]: https://docs.aws.amazon.com/cdk/latest/guide/apps_and_stacks.html#apps [Developer Guide]: https://docs.aws.amazon.com/cdk/latest/guide -[Tutorial]: https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html#hello_world_tutorial -[AWS CDK Toolkit]: https://docs.aws.amazon.com/cdk/latest/guide/tools.html +[AWS CDK CLI]: https://docs.aws.amazon.com/cdk/latest/guide/tools.html [AWS Construct Library]: https://docs.aws.amazon.com/cdk/latest/guide/aws_construct_lib.html -## Getting Started - -* See [Manual Installation](./MANUAL_INSTALLATION.md) for installing the CDK from a signed .zip file +## At a glance -Install or update the [AWS CDK Toolkit] from npm (requires [Node.js ≥ 8.11.x](https://nodejs.org/en/download)): +Install or update the [AWS CDK CLI] from npm (requires [Node.js ≥ 8.11.x](https://nodejs.org/en/download)): ```bash $ npm i -g aws-cdk ``` +(See [Manual Installation](./MANUAL_INSTALLATION.md) for installing the CDK from a signed .zip file). + Initialize a project: ```bash $ mkdir hello-cdk $ cd hello-cdk -$ cdk init app --language=typescript (or --language=java, ...) +$ cdk init sample-app --language=typescript +``` + +This creates a sample project looking like this: + +```ts +export class HelloCdkStack extends cdk.Stack { + constructor(scope: cdk.App, id: string, props?: cdk.StackProps) { + super(scope, id, props); + + const queue = new sqs.Queue(this, 'HelloCdkQueue', { + visibilityTimeout: cdk.Duration.seconds(300) + }); + + const topic = new sns.Topic(this, 'HelloCdkTopic'); + + topic.addSubscription(new subs.SqsSubscription(queue)); + } +} +``` + +Deploy this to your account: + +```bash $ cdk deploy ``` @@ -76,7 +104,7 @@ Use the `cdk` command-line toolkit to interact with your project: * `cdk synth`: synthesizes an AWS CloudFormation template for your app * `cdk diff`: compares your app with the deployed stack -For a detailed walkthrough, see [Tutorial] in the AWS CDK [Developer Guide]. +For a detailed walkthrough, see the [tutorial] in the AWS CDK [Developer Guide]. ## Getting Help @@ -101,3 +129,5 @@ environment and submit code. The AWS CDK is distributed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0). See [LICENSE](./LICENSE) and [NOTICE](./NOTICE) for more information. + +[Tutorial]: https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html#hello_world_tutorial