Add a table viewer to your stack #
Add the following hightlighted lines to
~/CdkWorkshopStack.java
to add a TableViewer
construct to your stack:
package com.myorg;
import io.github.cdklabs.dynamotableviewer.TableViewer;
import software.constructs.Construct;
import software.amazon.awscdk.Stack;
import software.amazon.awscdk.StackProps;
import software.amazon.awscdk.services.apigateway.LambdaRestApi;
import software.amazon.awscdk.services.lambda.Code;
import software.amazon.awscdk.services.lambda.Function;
import software.amazon.awscdk.services.lambda.Runtime;
public class CdkWorkshopStack extends Stack {
public CdkWorkshopStack(final Construct parent, final String id) {
this(parent, id, null);
}
public CdkWorkshopStack(final Construct parent, final String id, final StackProps props) {
super(parent, id, props);
// Defines a new lambda resource
final Function hello = Function.Builder.create(this, "HelloHandler")
.runtime(Runtime.NODEJS_14_X) // execution environment
.code(Code.fromAsset("lambda")) // code loaded from the "lambda" directory
.handler("hello.handler") // file is "hello", function is "handler"
.build();
// Defines our hitcounter resource
final HitCounter helloWithCounter = new HitCounter(this, "HelloHitCounter", HitCounterProps.builder()
.downstream(hello)
.build());
// Defines an API Gateway REST API resource backed by our "hello" function
LambdaRestApi.Builder.create(this, "Endpoint")
.handler(helloWithCounter.getHandler())
.build();
// Defines a viewer for the HitCounts table
TableViewer.Builder.create(this, "ViewerHitCount")
.title("Hello Hits")
.table(helloWithCounter.getTable())
.build();
}
}
We are now done making code changes. Congratulations! You can now save and exit out of your code editor if you want.
In the next section, we’ll deploy our stack one more time, and take a look at the result.