このプロジェクトは、Azure Functions を使用して不動産情報サイト「SUUMO」から新着物件情報を収集し、CosmosDB に登録するためのものです。また、新しい物件情報が登録された際には、LINE Bot を使って通知を行います。
- 毎日20時に
suumo
関数がトリガーされ、SUUMO サイトから新着物件情報を取得します。 - 取得した物件情報を CosmosDB に登録します。CosmosDB にすでに登録されている物件は登録されません。
- 新しい物件が登録された場合、LINE Bot を使って Flex Message で通知を行います。
このプロジェクトを実行するには、以下の前提条件が必要です。
-
Python のインストール
- Python 3.8 以上がインストールされていることを確認してください。
- Python のインストール方法については、公式ドキュメント を参照してください。
-
Azure Functions の作成
- Azure ポータルにログインし、新しい Function App を作成してください。
- Function App の作成方法については、公式ドキュメント を参照してください。
-
Azure Cosmos DB の作成
- Azure ポータルにログインし、新しい Azure Cosmos DB アカウントを作成してください。
- API には Core (SQL) を選択してください。
- Cosmos DB の作成方法については、公式ドキュメント を参照してください。
-
LINE Developers アカウントの作成とチャンネルの設定
- LINE Developers にアクセスし、新しいアカウントを作成してください。
- 新しいチャンネルを作成し、Messaging API を有効化してください。
- チャンネルアクセストークン(長期)を取得し、環境変数
line_token
に設定してください。 - LINE Bot の設定方法については、公式ドキュメント を参照してください。
-
環境変数の設定
COSMOS_DB_ACCOUNT_URL
:Cosmos DB アカウントの URICOSMOS_DB_ACCOUNT_KEY
:Cosmos DB アカウントのプライマリキーline_token
:LINE Bot のチャンネルアクセストークン(長期)
以上の前提条件が満たされていることを確認した上で、プロジェクトを実行してください。
azure-functions/
├── .funcignore
├── .vscode/
│ ├── extensions.json
│ ├── launch.json
│ ├── settings.json
│ └── tasks.json
├── functions/
│ ├── suumo.py
│ └── __init__.py
├── function_app.py
├── host.json
├── requirements.txt
├── utils/
│ ├── config.py
│ ├── database.py
│ ├── line.py
│ ├── web.py
│ └── __init__.py
functions/suumo.py
: SUUMO サイトから物件情報を取得し、CosmosDB に登録する関数が含まれています。function_app.py
: Azure Functions のタイマートリガーを定義しています。毎日20時にsuumo
関数が実行されます。utils/web.py
: SUUMO サイトから物件情報を取得するための関数が含まれています。utils/database.py
: CosmosDB への接続と物件情報の登録を行う関数が含まれています。utils/line.py
: LINE Bot への Flex Message の送信を行う関数が含まれています。utils/config.py
: 環境変数から CosmosDB の接続情報を取得する関数が含まれています。
- Azure Functions をデプロイします。
- 必要な環境変数 (
COSMOS_DB_ACCOUNT_URL
、COSMOS_DB_ACCOUNT_KEY
、line_token
) を設定します。 - 毎日20時に
suumo
関数がトリガーされ、新着物件情報の取得と登録、LINE Bot への通知が行われます。
このプロジェクトでは、Azure Functions と CosmosDB、LINE Bot を組み合わせることで、不動産情報の自動収集と通知を実現しています。