+++ title = "Add the table viewer to your app" weight = 300 +++ ## Add a table viewer to your stack Add the following highlighted lines to `src/CdkWorkshop/CdkWorkshopStack.cs` to add a `TableViewer` construct to your stack: {{}} using Amazon.CDK; using Amazon.CDK.AWS.APIGateway; using Amazon.CDK.AWS.Lambda; using Cdklabs.DynamoTableViewer; using Construct; namespace CdkWorkshop { public class CdkWorkshopStack : Stack { public CdkWorkshopStack(Construct scope, string id, IStackProps props = null) : base(scope, id, props) { // Defines a new lambda resource var hello = new Function(this, "HelloHandler", new FunctionProps { 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" }); // Defines out HitCounter resource var helloWithCounter = new HitCounter(this, "HelloHitCounter", new HitCounterProps { Downstream = hello }); // Defines an API Gateway REST API resource backed by our "hello" function. new LambdaRestApi(this, "Endpoint", new LambdaRestApiProps { Handler = helloWithCounter.Handler }); // Defines a new TableViewer resource new TableViewer(this, "ViewerHitCount", new TableViewerProps { Title = "Hello Hits", Table = //??? }); } } } {{}} ## What about the table? As you'll notice, `TableViewer` requires that you specify a `Table` property. ![](./table-viewer-props.png) What we want is to somehow access the DynamoDB table behind our hit counter. However, the current API of our hit counter doesn't expose the table as a public member. --- In the next section, we'll expose our table as a property of `HitCounter` so we can access it from our stack.