From c08141e0d619630729e06ee92046c8dc77cfc5c6 Mon Sep 17 00:00:00 2001 From: Leandro Damascena Date: Fri, 15 Jan 2021 01:46:36 +0000 Subject: [PATCH] New stack - Dynamodb atomic counter #174 --- the-dynamodb-atomic-counter/README.md | 54 +++-- the-dynamodb-atomic-counter/csharp/README.md | 98 ++++++++- the-dynamodb-atomic-counter/img/img1.png | Bin 0 -> 72277 bytes the-dynamodb-atomic-counter/img/img2.png | Bin 0 -> 92987 bytes the-dynamodb-atomic-counter/img/img3.png | Bin 0 -> 57088 bytes the-dynamodb-atomic-counter/java/README.md | 62 +++++- the-dynamodb-atomic-counter/python/README.md | 61 +++++- .../typescript/README.md | 60 +++++- .../typescript/package-lock.json | 186 +++++------------- .../typescript/package.json | 11 +- .../test/the-dynamodb-atomic-counter.test.ts | 49 ++++- 11 files changed, 398 insertions(+), 183 deletions(-) create mode 100644 the-dynamodb-atomic-counter/img/img1.png create mode 100644 the-dynamodb-atomic-counter/img/img2.png create mode 100644 the-dynamodb-atomic-counter/img/img3.png diff --git a/the-dynamodb-atomic-counter/README.md b/the-dynamodb-atomic-counter/README.md index 8310b331..ed4819fb 100644 --- a/the-dynamodb-atomic-counter/README.md +++ b/the-dynamodb-atomic-counter/README.md @@ -2,9 +2,10 @@ ![the dynamodb atomic counter](img/stack.png) -This is a pattern that implements an Atomic counter using only ApiGateway and DynamoDB. In many cases, we can use UUID to identify the key, but there are situations where we need an incremental and unique number due to design. In this case, we must ensure that the number will be unique and won't be repeated, so this stack can solve this. +This is a Serverless pattern that implements an Atomic counter using only ApiGateway and DynamoDB. In many cases, we can use UUID to identify the key, but there are situations where we need an incremental and unique number due to software design or other needs. In this case, we must ensure that the number will be unique and won't be repeated, so this stack can solve this problem very cheaply. In addition, as this stack uses only DynamoDB and APIGateway, the response is very fast (in milliseconds). -A special thanks to Vikas Solegaonkar for sharing this link [Simple Atomic Counter with DynamoDB and API Gateway](https://itnext.io/simple-atomic-counter-with-dynamodb-and-api-gateway-e72115c209ff) +A special thanks to Vikas Solegaonkar for sharing this link [Simple Atomic Counter with DynamoDB and API Gateway](https://itnext.io/simple-atomic-counter-with-dynamodb-and-api-gateway-e72115c209ff). +I made changes to the original version to support multiple incremental keys, so you can use this to focus the incremental process for many systems on a single table and API. Some Useful References: @@ -20,34 +21,47 @@ Some Useful References: * [TypeScript](typescript) * [Python](python) * [Csharp](csharp) +* [Java](java) ## What's Included In This Pattern? -This pattern covers the first half of Danilo Poccia's awesome [blog post](https://aws.amazon.com/blogs/aws/new-a-shared-file-system-for-your-lambda-functions/). After deployment you will have an API Gateway HTTP API where any url you hit gets directed to a Lambda Function that is integrated with EFS. +This pattern implements an atomic counter using only DynamoDB and APIGateway. -### VPC -A VPC is bundled in this pattern because EFS requires it, this is using the default settings from CDK so if you want to put this in production you will have to review / refine this +### DynamoDB Table +A simple table with a hash key and an incremental field -### EFS FileSystem -A FileSystem is included in the above VPC with a removal policy of destroy. In a production system you probably would want to retain your storage on stack deletion. +### API Gateway REST API +This is configured with the AWS Integration method and Request/Response integrations to transform the data. -POSIX permissions are also setup for this File System +## How Do I Test This Pattern? -### Lambda Function -A simple Python lambda function that interacts with the file system - storing, retrieving and deleting messages +After deployment, the CDK will output a parameter like this: -### API Gateway HTTP API -This is configured with the Lambda Function as the default handler for any url you hit. +``` +TheDynamodbAtomicCounterStack.apigwcounterurl = https://q0nl7897m3.execute-api.us-east-1.amazonaws.com/prod/counter?systemKey=system-aa +``` -## How Do I Test This Pattern? +So, just copy this URL and call this URL using the GET method through a browser, postman, curl or other http tool. + +## Adding new keys to increment + +If you want to add more keys to increment, it's very simple. Just use the DynamoDB console and add a new key. + +![the dynamodb atomic counter](img/img1.png) + +After that, you can call the two urls and use different incremental urls: +``` +https://q0nl7897m3.execute-api.us-east-1.amazonaws.com/prod/counter?systemKey=system-aa + +https://q0nl7897m3.execute-api.us-east-1.amazonaws.com/prod/counter?systemKey=system-bb +``` + +## Performance and concurrency testing -Our deployed Lambda Function is acting as a shared message broker. It allows you to send messages to it which it stores in EFS, then you can retrieve all messages to read them or delete all messages after you have finished reading. +API Response in less than 0.080s -The Lambda Function will behave differently based on the RESTful verb you use: +![the dynamodb atomic counter](img/img2.png) -- GET - Retrieve messages -- POST - Send a message (whatever you send in the body is the message) -- DELETE - Deletes all stored messages -The URL for the HTTP API to use these commands will be printed in the CloudFormation stack output after you deploy. +Running the curl simultaneously on the same "dynamo key" and the numbers are not repeated -Note - After deployment you may need to wait 60-90 seconds before the implementation works as expected. There are a lot of network configurations happening so you need to wait on propagation \ No newline at end of file +![the dynamodb atomic counter](img/img3.png) \ No newline at end of file diff --git a/the-dynamodb-atomic-counter/csharp/README.md b/the-dynamodb-atomic-counter/csharp/README.md index fee04ca4..75953436 100644 --- a/the-dynamodb-atomic-counter/csharp/README.md +++ b/the-dynamodb-atomic-counter/csharp/README.md @@ -1,14 +1,100 @@ -# Welcome to your CDK C# project! +# The DynamoDB Atomic Counter -This is a blank project for C# development with CDK. +![the dynamodb atomic counter](../img/stack.png) -The `cdk.json` file tells the CDK Toolkit how to execute your app. +This is a Serverless pattern that implements an Atomic counter using only ApiGateway and DynamoDB. In many cases, we can use UUID to identify the key, but there are situations where we need an incremental and unique number due to software design or other needs. In this case, we must ensure that the number will be unique and won't be repeated, so this stack can solve this problem very cheaply. In addition, as this stack uses only DynamoDB and APIGateway, the response is very fast (in milliseconds). -It uses the [.NET Core CLI](https://docs.microsoft.com/dotnet/articles/core/) to compile and execute your project. +A special thanks to Vikas Solegaonkar for sharing this link [Simple Atomic Counter with DynamoDB and API Gateway](https://itnext.io/simple-atomic-counter-with-dynamodb-and-api-gateway-e72115c209ff). +I made changes to the original version to support multiple incremental keys, so you can use this to focus the incremental process for many systems on a single table and API. -## Useful commands +Some Useful References: + +| Author | Link | +| ------------- | ------------- | +| AWS Docs | [Increment an Atomic Counter](https://docs.amazonaws.cn/en_us/amazondynamodb/latest/developerguide/GettingStarted.NodeJs.03.html#GettingStarted.NodeJs.03.04) | +| A Cloud Guru | [DynamoDB Atomic Counters](https://acloudguru.com/blog/engineering/dynamodb-atomic-counters) | + + +## What's Included In This Pattern? +This pattern implements an atomic counter using only DynamoDB and APIGateway. + +### DynamoDB Table +A simple table with a hash key and an incremental field + +### API Gateway REST API +This is configured with the AWS Integration method and Request/Response integrations to transform the data. + +## How Do I Test This Pattern? + +After deployment, the CDK will output a parameter like this: + +``` +TheDynamodbAtomicCounterStack.apigwcounterurl = https://q0nl7897m3.execute-api.us-east-1.amazonaws.com/prod/counter?systemKey=system-aa +``` + +So, just copy this URL and call this URL using the GET method through a browser, postman, curl or other http tool. + +## Adding new keys to increment + +If you want to add more keys to increment, it's very simple. Just use the DynamoDB console and add a new key. + +![the dynamodb atomic counter](../img/img1.png) + +After that, you can call the two urls and use different incremental urls: +``` +https://q0nl7897m3.execute-api.us-east-1.amazonaws.com/prod/counter?systemKey=system-aa + +https://q0nl7897m3.execute-api.us-east-1.amazonaws.com/prod/counter?systemKey=system-bb +``` + +## Performance and concurrency testing + +API Response in less than 0.080s + +![the dynamodb atomic counter](../img/img2.png) + + +Running the curl simultaneously on the same "dynamo key" and the numbers are not repeated + +![the dynamodb atomic counter](../img/img3.png) + +# Useful commands * `dotnet build src` compile this app * `cdk deploy` deploy this stack to your default AWS account/region * `cdk diff` compare deployed stack with current state -* `cdk synth` emits the synthesized CloudFormation template \ No newline at end of file +* `cdk synth` emits the synthesized CloudFormation template + +## Deploy with AWS Cloud9 + +* Create an **Ubuntu** AWS Cloud9 EC2 development environment +* Add the Microsoft repository + ``` + wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb + ``` + ``` + sudo dpkg -i packages-microsoft-prod.deb + ``` +* Install the .NET Core SDK + ``` + sudo apt-get update; \ + sudo apt-get install -y apt-transport-https && \ + sudo apt-get update && \ + sudo apt-get install -y dotnet-sdk-3.1 + ``` +* Clone the CDK Patterns repo + ``` + git clone https://github.com/cdk-patterns/serverless.git + ``` +* Change directory + ``` + cd serverless/the-scalable-webhook/csharp + ``` +* Build the project to see if .NET Core has been setup correctly (optional) + ``` + dotnet build src + ``` +* Deploy the stack + ``` + cdk deploy + ``` \ No newline at end of file diff --git a/the-dynamodb-atomic-counter/img/img1.png b/the-dynamodb-atomic-counter/img/img1.png new file mode 100644 index 0000000000000000000000000000000000000000..97d73b4c4e176a737b5f5284711406f60613a6ab GIT binary patch literal 72277 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�i^z3) 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
  • l^etJR80p8Q?^^4HD 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 literal 0 HcmV?d00001 diff --git a/the-dynamodb-atomic-counter/java/README.md b/the-dynamodb-atomic-counter/java/README.md index 6f46c4de..4b0ba761 100644 --- a/the-dynamodb-atomic-counter/java/README.md +++ b/the-dynamodb-atomic-counter/java/README.md @@ -1,10 +1,62 @@ -# Welcome to your CDK Java project! +# The DynamoDB Atomic Counter -This is a blank project for Java development with CDK. +![the dynamodb atomic counter](../img/stack.png) -The `cdk.json` file tells the CDK Toolkit how to execute your app. +This is a Serverless pattern that implements an Atomic counter using only ApiGateway and DynamoDB. In many cases, we can use UUID to identify the key, but there are situations where we need an incremental and unique number due to software design or other needs. In this case, we must ensure that the number will be unique and won't be repeated, so this stack can solve this problem very cheaply. In addition, as this stack uses only DynamoDB and APIGateway, the response is very fast (in milliseconds). -It is a [Maven](https://maven.apache.org/) based project, so you can open this project with any Maven compatible Java IDE to build and run tests. +A special thanks to Vikas Solegaonkar for sharing this link [Simple Atomic Counter with DynamoDB and API Gateway](https://itnext.io/simple-atomic-counter-with-dynamodb-and-api-gateway-e72115c209ff). +I made changes to the original version to support multiple incremental keys, so you can use this to focus the incremental process for many systems on a single table and API. + +Some Useful References: + +| Author | Link | +| ------------- | ------------- | +| AWS Docs | [Increment an Atomic Counter](https://docs.amazonaws.cn/en_us/amazondynamodb/latest/developerguide/GettingStarted.NodeJs.03.html#GettingStarted.NodeJs.03.04) | +| A Cloud Guru | [DynamoDB Atomic Counters](https://acloudguru.com/blog/engineering/dynamodb-atomic-counters) | + + +## What's Included In This Pattern? +This pattern implements an atomic counter using only DynamoDB and APIGateway. + +### DynamoDB Table +A simple table with a hash key and an incremental field + +### API Gateway REST API +This is configured with the AWS Integration method and Request/Response integrations to transform the data. + +## How Do I Test This Pattern? + +After deployment, the CDK will output a parameter like this: + +``` +TheDynamodbAtomicCounterStack.apigwcounterurl = https://q0nl7897m3.execute-api.us-east-1.amazonaws.com/prod/counter?systemKey=system-aa +``` + +So, just copy this URL and call this URL using the GET method through a browser, postman, curl or other http tool. + +## Adding new keys to increment + +If you want to add more keys to increment, it's very simple. Just use the DynamoDB console and add a new key. + +![the dynamodb atomic counter](../img/img1.png) + +After that, you can call the two urls and use different incremental urls: +``` +https://q0nl7897m3.execute-api.us-east-1.amazonaws.com/prod/counter?systemKey=system-aa + +https://q0nl7897m3.execute-api.us-east-1.amazonaws.com/prod/counter?systemKey=system-bb +``` + +## Performance and concurrency testing + +API Response in less than 0.080s + +![the dynamodb atomic counter](../img/img2.png) + + +Running the curl simultaneously on the same "dynamo key" and the numbers are not repeated + +![the dynamodb atomic counter](../img/img3.png) ## Useful commands @@ -14,5 +66,3 @@ It is a [Maven](https://maven.apache.org/) based project, so you can open this p * `cdk deploy` deploy this stack to your default AWS account/region * `cdk diff` compare deployed stack with current state * `cdk docs` open CDK documentation - -Enjoy! diff --git a/the-dynamodb-atomic-counter/python/README.md b/the-dynamodb-atomic-counter/python/README.md index 494581cf..f8843787 100644 --- a/the-dynamodb-atomic-counter/python/README.md +++ b/the-dynamodb-atomic-counter/python/README.md @@ -1,9 +1,64 @@ +# The DynamoDB Atomic Counter -# Welcome to your CDK Python project! +![the dynamodb atomic counter](../img/stack.png) -This is a blank project for Python development with CDK. +This is a Serverless pattern that implements an Atomic counter using only ApiGateway and DynamoDB. In many cases, we can use UUID to identify the key, but there are situations where we need an incremental and unique number due to software design or other needs. In this case, we must ensure that the number will be unique and won't be repeated, so this stack can solve this problem very cheaply. In addition, as this stack uses only DynamoDB and APIGateway, the response is very fast (in milliseconds). -The `cdk.json` file tells the CDK Toolkit how to execute your app. +A special thanks to Vikas Solegaonkar for sharing this link [Simple Atomic Counter with DynamoDB and API Gateway](https://itnext.io/simple-atomic-counter-with-dynamodb-and-api-gateway-e72115c209ff). +I made changes to the original version to support multiple incremental keys, so you can use this to focus the incremental process for many systems on a single table and API. + +Some Useful References: + +| Author | Link | +| ------------- | ------------- | +| AWS Docs | [Increment an Atomic Counter](https://docs.amazonaws.cn/en_us/amazondynamodb/latest/developerguide/GettingStarted.NodeJs.03.html#GettingStarted.NodeJs.03.04) | +| A Cloud Guru | [DynamoDB Atomic Counters](https://acloudguru.com/blog/engineering/dynamodb-atomic-counters) | + + +## What's Included In This Pattern? +This pattern implements an atomic counter using only DynamoDB and APIGateway. + +### DynamoDB Table +A simple table with a hash key and an incremental field + +### API Gateway REST API +This is configured with the AWS Integration method and Request/Response integrations to transform the data. + +## How Do I Test This Pattern? + +After deployment, the CDK will output a parameter like this: + +``` +TheDynamodbAtomicCounterStack.apigwcounterurl = https://q0nl7897m3.execute-api.us-east-1.amazonaws.com/prod/counter?systemKey=system-aa +``` + +So, just copy this URL and call this URL using the GET method through a browser, postman, curl or other http tool. + +## Adding new keys to increment + +If you want to add more keys to increment, it's very simple. Just use the DynamoDB console and add a new key. + +![the dynamodb atomic counter](../img/img1.png) + +After that, you can call the two urls and use different incremental urls: +``` +https://q0nl7897m3.execute-api.us-east-1.amazonaws.com/prod/counter?systemKey=system-aa + +https://q0nl7897m3.execute-api.us-east-1.amazonaws.com/prod/counter?systemKey=system-bb +``` + +## Performance and concurrency testing + +API Response in less than 0.080s + +![the dynamodb atomic counter](../img/img2.png) + + +Running the curl simultaneously on the same "dynamo key" and the numbers are not repeated + +![the dynamodb atomic counter](../img/img3.png) + +# CDK Useful Commands This project is set up like a standard Python project. The initialization process also creates a virtualenv within this project, stored under the `.venv` diff --git a/the-dynamodb-atomic-counter/typescript/README.md b/the-dynamodb-atomic-counter/typescript/README.md index 32476651..a8ba175e 100644 --- a/the-dynamodb-atomic-counter/typescript/README.md +++ b/the-dynamodb-atomic-counter/typescript/README.md @@ -1,8 +1,62 @@ -# Welcome to your CDK TypeScript project! +# The DynamoDB Atomic Counter -This is a blank project for TypeScript development with CDK. +![the dynamodb atomic counter](../img/stack.png) -The `cdk.json` file tells the CDK Toolkit how to execute your app. +This is a Serverless pattern that implements an Atomic counter using only ApiGateway and DynamoDB. In many cases, we can use UUID to identify the key, but there are situations where we need an incremental and unique number due to software design or other needs. In this case, we must ensure that the number will be unique and won't be repeated, so this stack can solve this problem very cheaply. In addition, as this stack uses only DynamoDB and APIGateway, the response is very fast (in milliseconds). + +A special thanks to Vikas Solegaonkar for sharing this link [Simple Atomic Counter with DynamoDB and API Gateway](https://itnext.io/simple-atomic-counter-with-dynamodb-and-api-gateway-e72115c209ff). +I made changes to the original version to support multiple incremental keys, so you can use this to focus the incremental process for many systems on a single table and API. + +Some Useful References: + +| Author | Link | +| ------------- | ------------- | +| AWS Docs | [Increment an Atomic Counter](https://docs.amazonaws.cn/en_us/amazondynamodb/latest/developerguide/GettingStarted.NodeJs.03.html#GettingStarted.NodeJs.03.04) | +| A Cloud Guru | [DynamoDB Atomic Counters](https://acloudguru.com/blog/engineering/dynamodb-atomic-counters) | + + +## What's Included In This Pattern? +This pattern implements an atomic counter using only DynamoDB and APIGateway. + +### DynamoDB Table +A simple table with a hash key and an incremental field + +### API Gateway REST API +This is configured with the AWS Integration method and Request/Response integrations to transform the data. + +## How Do I Test This Pattern? + +After deployment, the CDK will output a parameter like this: + +``` +TheDynamodbAtomicCounterStack.apigwcounterurl = https://q0nl7897m3.execute-api.us-east-1.amazonaws.com/prod/counter?systemKey=system-aa +``` + +So, just copy this URL and call this URL using the GET method through a browser, postman, curl or other http tool. + +## Adding new keys to increment + +If you want to add more keys to increment, it's very simple. Just use the DynamoDB console and add a new key. + +![the dynamodb atomic counter](../img/img1.png) + +After that, you can call the two urls and use different incremental urls: +``` +https://q0nl7897m3.execute-api.us-east-1.amazonaws.com/prod/counter?systemKey=system-aa + +https://q0nl7897m3.execute-api.us-east-1.amazonaws.com/prod/counter?systemKey=system-bb +``` + +## Performance and concurrency testing + +API Response in less than 0.080s + +![the dynamodb atomic counter](../img/img2.png) + + +Running the curl simultaneously on the same "dynamo key" and the numbers are not repeated + +![the dynamodb atomic counter](../img/img3.png) ## Useful commands diff --git a/the-dynamodb-atomic-counter/typescript/package-lock.json b/the-dynamodb-atomic-counter/typescript/package-lock.json index cac0ede6..0e9326c0 100644 --- a/the-dynamodb-atomic-counter/typescript/package-lock.json +++ b/the-dynamodb-atomic-counter/typescript/package-lock.json @@ -15,47 +15,6 @@ "@aws-cdk/core": "1.83.0", "@aws-cdk/cx-api": "1.83.0", "constructs": "^3.2.0" - }, - "dependencies": { - "@aws-cdk/cloud-assembly-schema": { - "version": "1.83.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-1.83.0.tgz", - "integrity": "sha512-n6m7qkADyG4O3XX3sEKYlE6q9mFk2bYb/AdAZoDSWEi87XZKr3XMCKKH3+uITDnc8b3aysGWmIntVg2MNgvkJA==", - "dev": true, - "requires": { - "jsonschema": "^1.4.0", - "semver": "^7.3.2" - }, - "dependencies": { - "jsonschema": { - "version": "1.4.0", - "bundled": true, - "dev": true - }, - "semver": { - "version": "7.3.2", - "bundled": true, - "dev": true - } - } - }, - "@aws-cdk/cx-api": { - "version": "1.83.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cx-api/-/cx-api-1.83.0.tgz", - "integrity": "sha512-rbvkR8IGOfUHwhJHQ0aWg37K5ed3yMpWZ60/YTZSF89aVaUpr+HoVQLU8a61j4dPofinm4joi60dZbMlqgUF7g==", - "dev": true, - "requires": { - "@aws-cdk/cloud-assembly-schema": "1.83.0", - "semver": "^7.3.2" - }, - "dependencies": { - "semver": { - "version": "7.3.2", - "bundled": true, - "dev": true - } - } - } } }, "@aws-cdk/assets": { @@ -474,45 +433,6 @@ "minimatch": "^3.0.4" }, "dependencies": { - "@aws-cdk/cloud-assembly-schema": { - "version": "1.83.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-1.83.0.tgz", - "integrity": "sha512-n6m7qkADyG4O3XX3sEKYlE6q9mFk2bYb/AdAZoDSWEi87XZKr3XMCKKH3+uITDnc8b3aysGWmIntVg2MNgvkJA==", - "requires": { - "jsonschema": "^1.4.0", - "semver": "^7.3.2" - }, - "dependencies": { - "jsonschema": { - "version": "1.4.0", - "bundled": true - }, - "semver": { - "version": "7.3.2", - "bundled": true - } - } - }, - "@aws-cdk/cx-api": { - "version": "1.83.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/cx-api/-/cx-api-1.83.0.tgz", - "integrity": "sha512-rbvkR8IGOfUHwhJHQ0aWg37K5ed3yMpWZ60/YTZSF89aVaUpr+HoVQLU8a61j4dPofinm4joi60dZbMlqgUF7g==", - "requires": { - "@aws-cdk/cloud-assembly-schema": "1.83.0", - "semver": "^7.3.2" - }, - "dependencies": { - "semver": { - "version": "7.3.2", - "bundled": true - } - } - }, - "@aws-cdk/region-info": { - "version": "1.83.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/region-info/-/region-info-1.83.0.tgz", - "integrity": "sha512-5gwX1xhEPFb9eFFGNdHm99vSCJqrYIEvwIjFmoG8zpjV8TWtiY7D8WbhxED7Q2pejEMnuUtvmMXKgSH+lo6ung==" - }, "@balena/dockerignore": { "version": "1.0.2", "bundled": true @@ -1237,9 +1157,9 @@ } }, "@sinonjs/commons": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", - "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", + "integrity": "sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -1329,9 +1249,9 @@ } }, "@types/jest": { - "version": "26.0.19", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.19.tgz", - "integrity": "sha512-jqHoirTG61fee6v6rwbnEuKhpSKih0tuhqeFbCmMmErhtu3BYlOZaXWjffgOstMM4S/3iQD31lI5bGLTrs97yQ==", + "version": "26.0.20", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.20.tgz", + "integrity": "sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA==", "dev": true, "requires": { "jest-diff": "^26.0.0", @@ -1406,14 +1326,14 @@ "dev": true }, "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", + "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", "uri-js": "^4.2.2" } }, @@ -3538,9 +3458,9 @@ "dev": true }, "constructs": { - "version": "3.2.101", - "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.2.101.tgz", - "integrity": "sha512-YJ9rZ6giIWNy7++92vQihY1UcxD3yf8f5LiqtdOswvNHyzPkT8sC6euEbN7XKfE+l0Kf3/UzqzqYMizIVDvZrw==" + "version": "3.2.103", + "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.2.103.tgz", + "integrity": "sha512-Qf9ZBpEGPOhQvTXctbDKe5PSoXOfls/TsIi7iOGAOGBaKZf6HRL4zVDJkwCb0EAGS4yqraGSkw+HyaQuDvHNEw==" }, "convert-source-map": { "version": "1.7.0", @@ -4103,9 +4023,9 @@ "dev": true }, "fsevents": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.2.1.tgz", - "integrity": "sha512-bTLYHSeC0UH/EFXS9KqWnXuOl/wHK5Z/d+ghd5AsFMYN7wIGkUCOJyzy88+wJKkZPGON8u4Z9f6U4FdgURE9qA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz", + "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==", "dev": true, "optional": true }, @@ -4204,6 +4124,26 @@ "requires": { "ajv": "^6.12.3", "har-schema": "^2.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + } } }, "has": { @@ -5208,9 +5148,9 @@ "dev": true }, "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "json-stringify-safe": { @@ -5385,18 +5325,18 @@ } }, "mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "version": "1.45.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", + "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", "dev": true }, "mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "version": "2.1.28", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", + "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", "dev": true, "requires": { - "mime-db": "1.44.0" + "mime-db": "1.45.0" } }, "mimic-fn": { @@ -6651,26 +6591,6 @@ "lodash": "^4.17.20", "slice-ansi": "^4.0.0", "string-width": "^4.2.0" - }, - "dependencies": { - "ajv": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", - "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } } }, "terminal-link": { @@ -6935,9 +6855,9 @@ } }, "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { "punycode": "^2.1.0" @@ -7112,9 +7032,9 @@ } }, "ws": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz", - "integrity": "sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz", + "integrity": "sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==", "dev": true }, "xml-name-validator": { diff --git a/the-dynamodb-atomic-counter/typescript/package.json b/the-dynamodb-atomic-counter/typescript/package.json index 0bc4b68f..8c3fa168 100644 --- a/the-dynamodb-atomic-counter/typescript/package.json +++ b/the-dynamodb-atomic-counter/typescript/package.json @@ -8,7 +8,8 @@ "build": "tsc", "watch": "tsc -w", "test": "jest", - "cdk": "cdk" + "cdk": "cdk", + "deploy": "cdk deploy '*' --require-approval 'never'" }, "devDependencies": { "@aws-cdk/assert": "1.83.0", @@ -21,11 +22,11 @@ "typescript": "~3.9.7" }, "dependencies": { - "@aws-cdk/aws-apigateway": "1.83.0", - "@aws-cdk/aws-dynamodb": "1.83.0", - "@aws-cdk/aws-iam": "1.83.0", + "@aws-cdk/aws-apigateway": "^1.83.0", + "@aws-cdk/aws-dynamodb": "^1.83.0", + "@aws-cdk/aws-iam": "^1.83.0", "@aws-cdk/core": "1.83.0", - "@aws-cdk/custom-resources": "1.83.0", + "@aws-cdk/custom-resources": "^1.83.0", "source-map-support": "^0.5.16" } } diff --git a/the-dynamodb-atomic-counter/typescript/test/the-dynamodb-atomic-counter.test.ts b/the-dynamodb-atomic-counter/typescript/test/the-dynamodb-atomic-counter.test.ts index e66c7741..b9f1680f 100644 --- a/the-dynamodb-atomic-counter/typescript/test/the-dynamodb-atomic-counter.test.ts +++ b/the-dynamodb-atomic-counter/typescript/test/the-dynamodb-atomic-counter.test.ts @@ -1,15 +1,50 @@ -import { expect as expectCDK, haveResourceLike, matchTemplate, MatchStyle } from '@aws-cdk/assert'; +import { expect as expectCDK, haveResourceLike, MatchStyle } from '@aws-cdk/assert'; import * as cdk from '@aws-cdk/core'; import * as TheDynamodbAtomicCounter from '../lib/the-dynamodb-atomic-counter-stack'; -test('Empty Stack', () => { +test('Atomic DynamoDB Table', () => { const app = new cdk.App(); // WHEN const stack = new TheDynamodbAtomicCounter.TheDynamodbAtomicCounterStack(app, 'MyTestStack'); - - console.log(stack); // THEN - //expectCDK(stack). - expectCDK(stack).to(haveResourceLike("AWS::DynamoDB::Table")); - //expectCDK(stack).to(haveResourceLike("AWS::IAM::Role")); + expectCDK(stack).to(haveResourceLike("AWS::DynamoDB::Table", { + "KeySchema": [ + { + "AttributeName": "atomicCounter", + "KeyType": "HASH" + } + ] + })); +}); + +test('Atomic Count API', () => { + const app = new cdk.App(); + // WHEN + const stack = new TheDynamodbAtomicCounter.TheDynamodbAtomicCounterStack(app, 'MyTestStack'); + // THEN + expectCDK(stack).to(haveResourceLike("AWS::ApiGateway::RestApi", { + "Name": "Atomic Count API" + })); +}); + +test('Atomic Count API Method', () => { + const app = new cdk.App(); + // WHEN + const stack = new TheDynamodbAtomicCounter.TheDynamodbAtomicCounterStack(app, 'MyTestStack'); + // THEN + expectCDK(stack).to(haveResourceLike("AWS::ApiGateway::Method", { + "HttpMethod": "GET", + "Integration": { + "IntegrationHttpMethod": "POST", + "IntegrationResponses": [ + { + "ResponseTemplates": { + "application/json": "#set($value = $input.json('Attributes.counterValue.N'))\r\n#set($l = $value.length())\r\n#set($l = $l - 1)\r\n$value.substring(1,$l)" + }, + "StatusCode": "200" + } + ], + "PassthroughBehavior": "NEVER" + } + })); });