table-viewerをアプリに追加

スタックにtable-viewerを追加する

lib/cdk-workshop-stack.tsを開き、TableViewer コンストラクトをスタックに追加するために、次の強調表示された行を追記します。

import cdk = require('@aws-cdk/core');
import lambda = require('@aws-cdk/aws-lambda');
import apigw = require('@aws-cdk/aws-apigateway');
import { HitCounter } from './hitcounter';
import { TableViewer } from 'cdk-dynamo-table-viewer';

export class CdkWorkshopStack extends cdk.Stack {
  constructor(scope: cdk.App, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    const hello = new lambda.Function(this, 'HelloHandler', {
      runtime: lambda.Runtime.NODEJS_8_10,
      code: lambda.Code.asset('lambda'),
      handler: 'hello.handler'
    });

    const helloWithCounter = new HitCounter(this, 'HelloHitCounter', {
      downstream: hello
    });

    // defines an API Gateway REST API resource backed by our "hello" function.
    new apigw.LambdaRestApi(this, 'Endpoint', {
      handler: helloWithCounter.handler
    });

    new TableViewer(this, 'ViewHitCounter', {
      title: 'Hello Hits',
      table: //??????
    });
  }
}

table とは

お気づきのとおり、 TableViewerには、tableプロパティを指定する必要があります。

私たちがしたいことは、HitCounterの背後にあるDynamoDBテーブルに何らかの方法でアクセスすることです。しかし、HitCounterの現在のAPIは、テーブルをパブリックメンバーとして公開しておりません。


次のセクションでは、テーブルをHitCounterプロパティとして公開し、スタックからアクセスできるようにします。