どのように私は私の隣人の迷惑活動を記録するAWS


イントロ


このようにして、AIDS APIゲートウェイの直接統合をDynamoDBと一緒に簡単なアクティビティロガーを作成しました.
ドアスラム、壁へのパンチなど、私たちを悩ませる活動はほとんどありません.彼はコーディネートしていないので、更なる行動のために行く前に、彼がそれらの活動をするとき、私は追跡したかったです.私は簡単な方法としてこれらを記録したかったと簡単に必要なので、私はこの小さなアプリケーションを構築しました.
このポストは、私が週末に何時間も文字通りこれを構築した方法について説明します.

クロープス 建築


それはかなり基本的です、そこで、私はDynamoDBでAPIゲートウェイの直接統合を使いました.
APIには3つのエンドポイントしかありません.
  • アクティビティを送信する(DynamoDB表のデータを保存する)
  • 現在の(DynamODBテーブルからのクエリデータ)
  • のアクティビティを取得します
  • アクティビティーを削除します(DyanamOdbテーブルからレコードを削除)


  • 建築模型

    動作方法


    フロントエンド




    フロントエンド
  • フォームの提出と簡単なVuejsアプリケーション.
  • も現在の日の活動を示します.
  • 不正確に追加された場合の単一アクティビティーの機能を削除します.
  • ウェブページを簡単なアクセスのために私の携帯電話のショートカットとして保存しました.
  • バックエンド

  • APIゲートウェイのダイレクト統合をダイナモテーブルに設定します.
  • フロントエンドをホストするために使用される
  • S 3静的ウェブホスティング.
  • はAPI APIゲートウェイにインポートされるAPIを定義するためにAWAX SAMをOpenAPI定義で使用しました.
  • 認証:私は、与えられたIPアドレス/範囲EXのためにアプリケーションへのアクセスを制限しました:ホームネットワーク
  • AllコンソールまたはCLIから以下のように単にCSVにテーブル全体をエクスポートすることができるように、すべてのView/機能を得ません.
  • aws dynamodb scan \
        --profile [Profile] \
        --table-name [TableName] \
        --query "Items[*].[activityDate.S,time.S,activityType.S,comments.S]" \
        --output text > output.csv
    

    コード


    完全なソースコードは以下で見つかります.

    ハウツーとスタイル


    AWS SAMフレームワークを使用して、スタックを簡単に配置できます.
    必要条件:
  • AWSサムCLI + AWSプロファイル
  • NPM (フロントエンドを構築する)

    https://github.com/pubudusj/simple-activity-logger 展開


    便利な展開のために、私は両方のバックエンドとフロントエンドを展開し、アプリケーションのパブリックURLを出力するシェルスクリプトを追加しました.
  • リポジトリをクローンして、複製してください.環境変数ファイルの例.rootディレクトリ内のenv.
  • このパラメータを設定する必要があります.ご希望の値をenv.
    スタック名-スタックの名前
    プロフィール- AWS CLIプロフィール.デフォルトのプロファイルを使用する場合はデフォルトとしてください.
    領域-スタックを作成しようとするAWS領域.
    AWS APIゲートウェイステージ
    これは、プロジェクトにアクセスするホワイトリストに必要なIPです.
  • ENV変数の一度に設定されている
  • を実行してください.
  • chmod 755 deploy.sh && ./deploy.sh
    
    システムの最終的なパブリックURLが出力されます.

    掃除する


    AWSで作成されたすべてのリソースを削除するプロジェクトをクリーンアップするには、次の手順に従います.
    chmod 755 tear-down.sh && ./tear-down.sh
    

    いくつかの教訓

  • corsの問題:オープンAPI定義のために、Cors設定さえSAMテンプレートで定義されて、それは十分でありません.API定義ファイルのCORS設定を定義しなければなりません.
  • どうぞお気軽にお試しください.
    保つビル維持共有!