Skip to content

Commit f0a8806

Browse files
committed
LHOL modifications
1 parent fb2d04c commit f0a8806

22 files changed

+87
-57
lines changed

content/authors.en.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,15 @@ weight: 100
1313
1. Sean Shriver ([switch180](https://github.com/switch180)) - Ported the whole lab to amazon-dynamodb-labs.com with a custom Hugo theme. Made the "bullet-proof" CloudFormation template for the lab. Updated the hands on lab to Python3
1414
1. Daniel Yoder ([danielsyoder](https://github.com/danielsyoder)) - The brains behind amazon-dynamodb-labs.com and the co-creator of the design scenarios
1515

16+
### 2025 additions
17+
Removing Cloud9 due to End of Life from all the workshops (October 2025):
18+
1. Esteban Serna ([@tebanieo](https://github.com/tebanieo)) - Primary author, and merger
19+
20+
Database modernizer workshop was released in August 2025:
21+
1. Esteban Serna ([@tebanieo](https://github.com/tebanieo)) - Primary author, and merger
22+
2. John Terhune - ([@terhunej](https://github.com/terhunej)) - Editor, tech reviewer.
23+
3. Sean Shriver - ([@switch180](https://github.com/switch180)) - Tech reviewer
24+
1625
### 2024 additions
1726
The Generative AI workshop LBED was released in early 2024:
1827
1. John Terhune - ([@terhunej](https://github.com/terhunej)) - Primary author

content/hands-on-labs/explore-cli/index.en.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ weight: 20
55
chapter: true
66
---
77

8-
We will be exploring DynamoDB with the AWS CLI using the [AWS cloud9 management Console](https://console.aws.amazon.com/cloud9/home). If you haven't already, choose *open IDE* to launch AWS Cloud9 environment. You can close the Welcome screen and adjust your terminal to increase screen area, or close all the windows and navigate to *Window* -> *New Terminal* to open a new terminal window.
8+
We will be exploring the Amazon DynamoDB tables using the AWS CLI with the platform we have set up during the :link[environment setup]{href="/hands-on-labs/setup/create-tables"}.
99

1010
The highest level of abstraction in DynamoDB is a *Table* (there isn't a concept of a "Database" that has a bunch of tables inside of it like in other NOSQL or RDBMS services). Inside of a Table you will insert *Items*, which are analogous to what you might think of as a row in other services. Items are a collection of *Attributes*, which are analogous to columns. Every item must have a *Primary Key* which will uniquely identify that row (two items may not contain the same Primary Key). At a minimum when you create a table you must choose an attribute to be the *Partition Key* (aka the Hash Key) and you can optionally specify another attribute to be the *Sort Key*.
1111

content/hands-on-labs/index.en.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,4 @@ This workshop is designed for developers, engineers, and database administrators
2424
### Recommended study before taking the lab
2525

2626
If you're not part of an AWS event and you haven't recently reviewed DynamoDB design concepts, we suggest you watch this video on [Advanced Design Patterns for DynamoDB](:param{key="latest_rh_design_pattern_yt"}), which is about an hour in duration.
27+

content/hands-on-labs/setup/aws-ws-event.en.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ chapter: true
2626
7. Select on **I agree with the Terms and Conditions** on the bottom of the next page and click **Join event** to continue to the event dashboard.
2727

2828
8. On the event dashboard, click on **Open AWS console** to federate into AWS Management Console in a new tab. On the same page, click **Get started** to open the workshop instructions.
29-
![Event dashboard](/static/images/aws-ws-event5.png)
29+
![Event dashboard](/static/images/common/workshop-studio-01.png)
3030

31-
9. Now that you are connected continue on to: :link[Step 1]{href="/design-patterns/setup/Step1"}.
31+
9. In addition to the AWS console you should open your Visual Studio code server, by clicking in the `VSCodeServerURL` parameter, available from the "Event Outputs" section. When prompted for a password use the value from `VSCodeServerPassword`.
32+
33+
![Event dashboard](/static/images/common/workshop-studio-02.png)
34+
35+
10. Continue with the steps as listed in the section :link[Launch Visual Studio Code]{href="/hands-on-labs/setup/vscode"}.

content/hands-on-labs/setup/cloud9.en.md

Lines changed: 0 additions & 11 deletions
This file was deleted.

content/hands-on-labs/setup/create-tables.en.md

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,15 @@ aws dynamodb create-table \
1515
AttributeName=Id,AttributeType=N \
1616
--key-schema \
1717
AttributeName=Id,KeyType=HASH \
18-
--provisioned-throughput \
19-
ReadCapacityUnits=10,WriteCapacityUnits=5 \
18+
--billing-mode PAY_PER_REQUEST \
2019
--query "TableDescription.TableStatus"
2120
aws dynamodb create-table \
2221
--table-name Forum \
2322
--attribute-definitions \
2423
AttributeName=Name,AttributeType=S \
2524
--key-schema \
2625
AttributeName=Name,KeyType=HASH \
27-
--provisioned-throughput \
28-
ReadCapacityUnits=10,WriteCapacityUnits=5 \
26+
--billing-mode PAY_PER_REQUEST \
2927
--query "TableDescription.TableStatus"
3028
aws dynamodb create-table \
3129
--table-name Thread \
@@ -35,8 +33,7 @@ aws dynamodb create-table \
3533
--key-schema \
3634
AttributeName=ForumName,KeyType=HASH \
3735
AttributeName=Subject,KeyType=RANGE \
38-
--provisioned-throughput \
39-
ReadCapacityUnits=10,WriteCapacityUnits=5 \
36+
--billing-mode PAY_PER_REQUEST \
4037
--query "TableDescription.TableStatus"
4138
aws dynamodb create-table \
4239
--table-name Reply \
@@ -46,8 +43,7 @@ aws dynamodb create-table \
4643
--key-schema \
4744
AttributeName=Id,KeyType=HASH \
4845
AttributeName=ReplyDateTime,KeyType=RANGE \
49-
--provisioned-throughput \
50-
ReadCapacityUnits=10,WriteCapacityUnits=5 \
46+
--billing-mode PAY_PER_REQUEST \
5147
--query "TableDescription.TableStatus"
5248
```
5349

content/hands-on-labs/setup/index.en.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,26 @@ In this chapter, we'll cover the prerequisites needed to get started with [Amazo
1111
The deployment architecture that you will be building in this lab will look like the below.
1212

1313
![Final Deployment Architecture](/static/images/hands-on-labs/setup/dynamodb_lab_architecture.png)
14+
15+
## Prerequisites
16+
17+
To run this lab, you'll need an AWS account, and a user identity with access to the following services:
18+
19+
* Amazon DynamoDB
20+
* Visual Studio Code Web Environment
21+
22+
You can use your own account, or an account provided through Workshop Studio Event Delivery as part of an AWS organized workshop. Using an account provided by Workshop Studio is the easier path, as you will have full access to all AWS services, and the account will terminate automatically when the event is over.
23+
24+
### Account setup
25+
26+
#### Using an account provided to you by your lab instructor
27+
28+
If you are running this workshop using a link provided to you by your AWS instructor, please use that link and enter the access-code provided to you as part of the workshop. In the lab AWS account, the Visual Studio Code instance should already be provisioned. This should be available at the "Event Output" section in your Workshop studio URL.
29+
30+
![CloudFormation parameters](/static/images/common/on-your-own-cf-03.png)
31+
32+
#### Using your own AWS account
33+
34+
If you are using your own AWS account, be sure you have access to create and manage resources in Amazon DynamoDB and EC2 instance.
35+
36+
*After completing the workshop, remember to complete the [cleanup](/hands-on-labs/cleanup.html) section to remove any unnecessary AWS resources.*

content/hands-on-labs/setup/load-sample-data.en.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ weight: 15
77
Download and unzip the sample data:
88

99
```bash
10+
cd LHOL
11+
1012
curl -O https://amazon-dynamodb-labs.com/static/hands-on-labs/sampledata.zip
1113

1214
unzip sampledata.zip
@@ -16,11 +18,17 @@ Load the sample data using the `batch-write-item` CLI:
1618

1719
```bash
1820
aws dynamodb batch-write-item --request-items file://ProductCatalog.json
21+
```
1922

23+
```bash
2024
aws dynamodb batch-write-item --request-items file://Forum.json
25+
```
2126

27+
```bash
2228
aws dynamodb batch-write-item --request-items file://Thread.json
29+
```
2330

31+
```bash
2432
aws dynamodb batch-write-item --request-items file://Reply.json
2533
```
2634

@@ -33,4 +41,6 @@ After each data load you should get this message saying that there were no Unpro
3341
```
3442

3543
#### Sample output
36-
![Cloud9 Setup](/static/images/hands-on-labs/setup/load_data.png)
44+
![Processed Items](/static/images/hands-on-labs/load-sample-data.png)
45+
46+
You can now continue with the section :link[Explore DynamoDB with the CLI]{href="/hands-on-labs/explore-cli"}.

content/hands-on-labs/setup/prerequisites.en.md

Lines changed: 0 additions & 24 deletions
This file was deleted.

content/hands-on-labs/setup/setup.en.md

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,29 @@ weight: 5
55
chapter: true
66
---
77

8-
::alert[These setup instructions are identitical for LADV, LHOL, LBED, LMR, and LGME - all of which use the same Cloud9 template. Only complete this section once, and only if you're running it on your own account.]{type="warning"}
8+
::alert[These setup instructions are identitical for LADV, LHOL, LBED, LMR, and LGME - all of which use the same Visual Studio Code template. Only complete this section once, and only if you're running it on your own account.]{type="warning"}
99

1010
::alert[Only complete this section if you are running the workshop on your own. If you are at an AWS hosted event (such as re\:Invent, Immersion Day, etc), go to :link[At an AWS hosted Event]{href="/hands-on-labs/setup/aws-ws-event"}]
1111

1212
## Launch the CloudFormation stack
1313
::alert[During the course of the lab, you will make DynamoDB tables that will incur a cost that could approach tens or hundreds of dollars per day. Ensure you delete the DynamoDB tables using the DynamoDB console, and make sure you delete the CloudFormation stack as soon as the lab is complete.]
1414

15-
1. Launch the CloudFormation template in US West 2 to deploy the resources in your account: [![CloudFormation](/static/images/cloudformation-launch-stack.png)](https://console.aws.amazon.com/cloudformation/home?region=us-west-2#/stacks/new?stackName=DynamoDBID&templateURL=:param{key="design_patterns_s3_lab_yaml"})
16-
1. *Optionally, download [the YAML template](:param{key="design_patterns_s3_lab_yaml"}) and launch it your own way*
15+
1. **[Deprecated]** - Launch the CloudFormation template in US West 2 to deploy the resources in your account: [![CloudFormation](/static/images/cloudformation-launch-stack.png)](https://console.aws.amazon.com/cloudformation/home?region=us-west-2#/stacks/new?stackName=DynamoDBID&templateURL=:param{key="design_patterns_s3_lab_yaml"})
16+
17+
1. *Optionally, download [the YAML template](https://github.com/aws-samples/aws-dynamodb-examples/blob/master/workshops/modernizer/modernizer-db.yaml) from our GitHub repository and launch it your own way*
1718

1819
1. Click *Next* on the first dialog.
1920

20-
1. In the Parameters section, note the *Timeout* is set to zero. This means the Cloud9 instance will not sleep; you may want to change this manually to a value such as 60 to protect against unexpected charges if you forget to delete the stack at the end.
21-
Leave the *WorkshopZIP* parameter unchanged and click *Next*
22-
![CloudFormation parameters](/static/images/awsconsole1.png)
21+
1. Provide a CloudFormation stack name.
22+
23+
1. In the Parameters section, note the *AllowedIP** contains a default IP Address, if you want to access the instance via SSH obtain your own public IP address. Ensure to add the `/32` network mask at the end. Do not modify any other parameter and click *Next*.
24+
25+
![CloudFormation parameters](/static/images/common/on-your-own-cf-01.png)
26+
27+
6. Scroll to the bottom and click *Next*, and then review the *Template* and *Parameters*. When you are ready to create the stack, scroll to the bottom, check the box acknowledging the creation of IAM resources, and click *Create stack*.
2328

24-
1. Scroll to the bottom and click *Next*, and then review the *Template* and *Parameters*. When you are ready to create the stack, scroll to the bottom, check the box acknowledging the creation of IAM resources, and click *Create stack*.
25-
![CloudFormation parameters](/static/images/awsconsole2.png)
26-
The stack will create a Cloud9 lab instance, a role for the instance, and a role for the AWS Lambda function used later on in the lab. It will use Systems Manager to configure the Cloud9 instance.
29+
![CloudFormation parameters](/static/images/common/on-your-own-cf-02.png)
30+
31+
The stack will create a Visual Studio Code EC2 instance, a role for the instance, and a role for the AWS Lambda function used later on in the lab. The CloudFormation template will create a set of folders that can be used to execute individually the lab modules presented in this guide.
2732

28-
1. After the CloudFormation stack is `CREATE_COMPLETE`, :link[continue onto Prerequisites]{href="/hands-on-labs/setup/prerequisites"}.
33+
7. After the CloudFormation stack is `CREATE_COMPLETE`, :link[continue onto launching your IDE]{href="/hands-on-labs/setup/vscode"}.

0 commit comments

Comments
 (0)