HitCounter APIの定義

HitCounterコンストラクト用の新しいファイルの作成

lib フォルダ配下に次のような hitcounter.tsファイルを作成します

import cdk = require('@aws-cdk/core');
import lambda = require('@aws-cdk/aws-lambda');

export interface HitCounterProps {
  /** the function for which we want to count url hits **/
  downstream: lambda.IFunction;
}

export class HitCounter extends cdk.Construct {
  constructor(scope: cdk.Construct, id: string, props: HitCounterProps) {
    super(scope, id);

    // TODO
  }
}

ファイルを保存すると、エラーが発生しますが心配いりません。 この後すぐに props プロパティを追加します。

次に何を行うのか

  • HitCounterと呼ばれるコンストラクトクラスを新しく定義します。
  • 今までどおり、scope, id, props のコンストラクター引数を設定し、基底クラスである cdk.Construct に伝搬させます。
  • props引数は、lambda.Function型のdownstream という単一プロパティを含む、HitCounterProps型である。ここで、前の章で作成したlambda.Functionをプラグインし、HitCountが使えるようにします。

次に、HitCounterのハンドラーコードを記述します。