アプリのデプロイ

cdk diff

デプロイする前に、アプリをデプロイするとどうなるか見てみましょう(以下は Resources 出力のセクション

$ cdk diff hello-cdk-1
Resources
[+] AWS::IAM::Role ViewHitCounter/Rendered/ServiceRole ViewHitCounterRenderedServiceRole254DB4EA 
[+] AWS::IAM::Policy ViewHitCounter/Rendered/ServiceRole/DefaultPolicy ViewHitCounterRenderedServiceRoleDefaultPolicy9ADB8C83 
[+] AWS::Lambda::Function ViewHitCounter/Rendered ViewHitCounterRendered9C783E45 
[+] AWS::Lambda::Permission ViewHitCounter/Rendered/ApiPermission.ANY.. ViewHitCounterRenderedApiPermissionANY72263B1A 
[+] AWS::Lambda::Permission ViewHitCounter/Rendered/ApiPermission.Test.ANY.. ViewHitCounterRenderedApiPermissionTestANYA4794B81 
[+] AWS::Lambda::Permission ViewHitCounter/Rendered/ApiPermission.ANY..{proxy+} ViewHitCounterRenderedApiPermissionANYproxy42B9E676 
[+] AWS::Lambda::Permission ViewHitCounter/Rendered/ApiPermission.Test.ANY..{proxy+} ViewHitCounterRenderedApiPermissionTestANYproxy104CA88E 
[+] AWS::ApiGateway::RestApi ViewHitCounter/ViewerEndpoint ViewHitCounterViewerEndpoint5A0EF326 
[+] AWS::ApiGateway::Deployment ViewHitCounter/ViewerEndpoint/Deployment ViewHitCounterViewerEndpointDeployment1CE7C5761d44312e8424c23ba090a70e0962c36f 
[+] AWS::ApiGateway::Stage ViewHitCounter/ViewerEndpoint/DeploymentStage.prod ViewHitCounterViewerEndpointDeploymentStageprodF3901FC7 
[+] AWS::IAM::Role ViewHitCounter/ViewerEndpoint/CloudWatchRole ViewHitCounterViewerEndpointCloudWatchRole87B94D6A 
[+] AWS::ApiGateway::Account ViewHitCounter/ViewerEndpoint/Account ViewHitCounterViewerEndpointAccount0B75E76A 
[+] AWS::ApiGateway::Resource ViewHitCounter/ViewerEndpoint/Default/{proxy+} ViewHitCounterViewerEndpointproxy2F4C239F 
[+] AWS::ApiGateway::Method ViewHitCounter/ViewerEndpoint/Default/{proxy+}/ANY ViewHitCounterViewerEndpointproxyANYFF4B8F5B 
[+] AWS::ApiGateway::Method ViewHitCounter/ViewerEndpoint/Default/ANY ViewHitCounterViewerEndpointANY66F2285B 

Table Viewerは、別のAPI Gatewayエンドポイント、Lambda関数、権限、出力、あらゆる種類の構成要素を追加することに気付くでしょう。

ライブラリの構築は非常に強力な概念です。最小限の労力で複雑な機能をアプリに追加できます。ただし、大きな力には大きな責任が伴うことを理解する必要があります。コンストラクトは、IAMアクセス許可を追加したり、データを公開したり、アプリケーションが機能しないようにすることができます。アプリを保護し、スタックの潜在的なセキュリティ問題を特定するためのツールの提供に取り組んでいますが、使用する特定のコンストラクトがアプリケーションに与える影響を理解し、信頼しているベンダーのコンストラクトライブラリのみを使用するようにしてください。

cdk deploy

$ cdk deploy hello-cdk-1
...
hello-cdk-1.ViewHitCounterViewerEndpointCA1B1E4B = https://6i4udz9wb2.execute-api.us-east-2.amazonaws.com/prod/

Viewerエンドポイントが出力として表示されます。

Hit counter テーブルの表示

ブラウザーを開き、HitCounterビューアーのエンドポイントURLを参照します。次のようなものが表示されるはずです。

いくつかのリクエストを送信する

「hello」エンドポイントにさらにいくつかのリクエストを送信し、HitCounterビューアーを監視します。値がリアルタイムで更新されるはずです。

curl か、Webブラウザで次のようなURLを入力してみてください。

$ curl https://xxxxxxxxxx.execute-api.us-east-1.amazonaws.com/prod/hit1
$ curl https://xxxxxxxxxx.execute-api.us-east-1.amazonaws.com/prod/hit1
$ curl https://xxxxxxxxxx.execute-api.us-east-1.amazonaws.com/prod/hit1
$ curl https://xxxxxxxxxx.execute-api.us-east-1.amazonaws.com/prod/hit1
$ curl https://xxxxxxxxxx.execute-api.us-east-1.amazonaws.com/prod/hoooot
$ curl https://xxxxxxxxxx.execute-api.us-east-1.amazonaws.com/prod/hoooot
$ curl https://xxxxxxxxxx.execute-api.us-east-1.amazonaws.com/prod/hit1
$ curl https://xxxxxxxxxx.execute-api.us-east-1.amazonaws.com/prod/hit1
$ curl https://xxxxxxxxxx.execute-api.us-east-1.amazonaws.com/prod/hit1
$ curl https://xxxxxxxxxx.execute-api.us-east-1.amazonaws.com/prod/hit1
$ curl https://xxxxxxxxxx.execute-api.us-east-1.amazonaws.com/prod/hoooot
$ curl https://xxxxxxxxxx.execute-api.us-east-1.amazonaws.com/prod/hoooot
$ curl https://xxxxxxxxxx.execute-api.us-east-1.amazonaws.com/prod/hit1

Table Viewerがどのように動くか興味がありますか? 見つけるのは簡単です! Ctrlキー(またはCommanad)をホールドしながら、TableViewerのソースコードをクリックしてみると、ソースコードが表示されます。