ちばのてっく

積極的にアウトプット

2024-03-01から1ヶ月間の記事一覧

AWS最新情報をLINE通知させてみた

プル型ではなくプッシュ型でAWSの最新情報をキャッチアップしたいと思い、身近なツールであるLINEで通知するアプリケーションをつくってみた。 仕組みとしては、RSSで配信されているAWSの最新情報を、EventBridge + Lambdaで定期的に確認し新しいものがあれ…

Terraformで最新の無料利用対象AMI IDを出力してみた

先日の記事で、Terraformで利用するために、最新のAMI IDをAWS CLIで取得する方法を調べたが、Terraformだけで完結できそうだと気付いたためやってみる。 はじめに結論 このtfファイルを実行することで、先日の記事と同じ結果が得られる。 作成するtfファイ…

トークンバケットとリーキーバケットの違いを調べてみた

システム設計の面接試験を読んでいて、レートリミッターのアルゴリズムについてはじめはうまく理解できなかったため、頭の整理がてら調べてみる。 そもそもレートリミッターとは アクセスが集中することによる過負荷を防ぐことを目的として使われる。 プロモ…

DynamoDBのレスポンスに含まれるCountとScannedCountの違いを調べてみた

先日の記事を書きながら、DynamoDBにScanした際のレスポンスにCountとScannedCountという似たような名前で同じ値を返却しているものがあることが気になっていたため、調べてみた。 Scanレスポンス 先日の記事からコピペ。"Count": 2,"ScannedCount": 2と返却…

Flask起動したときに表示されるメッセージの意味を調べてみた

Flaskを起動したときに表示されるメッセージの意味をまったく理解してないため、調べてみる。 調べてみた これのこと。なお、デバッグモードはONにしている。(デフォルトはOFF) * Serving Flask app 'hello' * Debug mode: on WARNING: This is a developm…

AWS CLIで最新の無料利用対象AMI IDを出力してみた

TerraformでEC2インスタンスを作成しようとしたときに、AMI IDが必要となる。EC2コンソールから確認する方法はタイプミスも起こりうるし手間なので、AWS CLIを使って最新かつ無料利用対象のAMIを取得してみる。 はじめに結論 入力 aws ec2 describe-images -…

FlaskをLambda+API Gatewayでホスティングしてみた

Flaskをローカルではなくクラウド上にホスティングする方法を知っておきたい。 ということで、手始めにLambda + API Gatewayでホスティングしてみる。 やってみた Lambda + API Gatewayということで、AWS SAMを使うのが手っ取り早そう。sam initでテンプレー…

Boto3でDynamoDBに、上書きを防ぎながらデータを追加してみた

昨日の記事の続き。 既存データの上書きを防ぎながら、put_itemでデータを追加してみる。 上書きを防ぐためには、ConditionExpressionにattribute_not_exists(プライマリキー)を設定する。 すると、プライマリキーに重複するItemが存在する場合はput_itemが…

Boto3でDynamoDBにデータを追加してみた

Boto3でDynamoDBをScanしてみたの続き。 DyanmoDBにデータを追加してみる。 やってみた put_itemでデータを追加してみる。 put_itemは、プライマリキーで追加するレコードを指定し、存在しないプライマリキーであれば新規追加、存在するプライマリキーであれ…

Boto3でDynamoDBをScanしてみた

昨日の記事の続き。 Flaskは動かせるようになったため、AWSリソースへアクセスしてみる。 やってみた boto3のリファレンス を参考に、以下を作成。 from flask import Flask import boto3 app = Flask(__name__) @app.route("/") def hello_world(): return "<p></p>…

flask runではなく、python ファイル名で実行すると404エラー

発生した問題 とほほのFlask入門のチュートリアルを参考に、if __name__ほげほげブロックをapp = Flask(__name__)の直後に追記し、 from flask import Flask app = Flask(__name__) if __name__ == "__main__": app.run(host="0.0.0.0", port=5000, debug=Tr…