diff --git a/.gitignore b/.gitignore index 5e26694..7b87a68 100644 --- a/.gitignore +++ b/.gitignore @@ -117,5 +117,6 @@ cosmosdb/data functions/local.settings.json # Azurite -__blobstorage__/ -__azurite_db_*.json +azurite/__blobstorage__ +azurite/__queuestorage__ +azurite/__azurite_db_*.json diff --git a/README.md b/README.md index 4c86454..28c1510 100644 --- a/README.md +++ b/README.md @@ -206,9 +206,9 @@ Azure にリソースを構築せず、localhost 上で以下のサーバーを | ---------------------------------------------- | -------------------------------------------------------------------------------------------------------- | ---------- | | Azure Functions(HTTP Trigger の関数アプリのみ) | [Azure Functions Core Tools](https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-run-local) | 9229 | | Cosmos DB | [Azure Cosmos DB Linux Emulator](https://docs.microsoft.com/ja-jp/azure/cosmos-db/local-emulator) | 8081 | -| Blob ストレージ | [Azurite](https://marketplace.visualstudio.com/items?itemName=Azurite.azurite) | 10000 | -| Queue ストレージ | [Azurite](https://marketplace.visualstudio.com/items?itemName=Azurite.azurite) | 10001 | -| Table ストレージ | [Azurite](https://marketplace.visualstudio.com/items?itemName=Azurite.azurite) | 10002 | +| Blob ストレージ | [Azurite](https://learn.microsoft.com/ja-jp/azure/storage/common/storage-use-azurite) | 10000 | +| Queue ストレージ | [Azurite](https://learn.microsoft.com/ja-jp/azure/storage/common/storage-use-azurite) | 10001 | +| Table ストレージ | [Azurite](https://learn.microsoft.com/ja-jp/azure/storage/common/storage-use-azurite) | 10002 | localhost 環境構築後、 [Azure Cosmos DB Emulator の index.html](https://localhost:8081/_explorer/index.html) にアクセスすると、Cosmos DB 内のデータを参照・更新することができる。 @@ -216,7 +216,6 @@ localhost 環境構築後、 [Azure Cosmos DB Emulator の index.html](https://l 1. 以下をすべてインストールする。 - Azure Functions Core Tools - - Azurite - Docker - VSCode 2. 以下を記述したファイル`local.settings.json`を QuestionAnswerTranslator リポジトリの functions ディレクトリ配下に保存する。 @@ -242,36 +241,33 @@ localhost 環境構築後、 [Azure Cosmos DB Emulator の index.html](https://l ``` - 毎日 09:00(JST)に実行する「Regenerate Secrets」という workflow によって、qatranslator-je-cognitive のキー値は 1 日おきに再生成されるため、`COGNITIVE_KEY`の値も都度修正すること。 - CORS は任意のオリジンを許可するように設定しているため、特定のオリジンのみ許可したい場合は`Host` > `CORS`にそのオリジンを設定すること。 -3. VSCode を起動してコマンドパレッドを起動して`Azurite: Start`と検索してコマンドを実行し、Blob/Queue/Table ストレージをすべて起動する。実行した VSCode はそのまま放置する。 -4. ターミナルを起動して以下のコマンドを実行し、Azure Functions を起動する。実行したターミナルはそのまま放置する。 +3. ターミナルを起動して以下のコマンドを実行し、Cosmos DB、Blob/Queue/Table ストレージをすべて起動する。実行したターミナルはそのまま放置する。 ```bash - cd functions - npm run start - ``` -5. 4 とは別のターミナルで以下のコマンドを実行し、Cosmos DB を起動する。実行したターミナルはそのまま放置する。 - ```bash - cd cosmosdb - npm run start + docker compose up ``` 実行後、以下の標準出力が表示されるまで待機する。 ``` localcosmosdb | Started ``` -6. 5 とは別のターミナルで以下のコマンドを実行し、起動した Cosmos DB サーバーに対し、インポートデータファイルからインポートする(タイムアウトなどで失敗した場合、もう一度実行し直すこと)。 +4. 3 とは別のターミナルで以下のコマンドを実行し、Azure Functions を起動する。実行したターミナルはそのまま放置する。 + ```bash + cd functions + npm run start + ``` +5. 4 とは別のターミナルで以下のコマンドを実行し、起動した Cosmos DB サーバーに対し、インポートデータファイルからインポートする。 ```bash cd cosmosdb npm run import ``` + - タイムアウトなどで失敗した場合、もう一度実行し直すこと。 ### 削除手順 -1. ターミナルを起動して以下のコマンドを実行し、構築手順の 6 で起動した Cosmos DB を停止する。 +1. 構築手順の 4 で起動した Azure Functions のターミナルに対して Ctrl+C キーを入力し、起動した Azure Functions を停止する。 +2. ターミナルを起動して以下のコマンドを実行し、構築手順の 3 で起動した Cosmos DB、Blob/Queue/Table ストレージをすべて停止する。 ```bash - cd cosmosdb - npm run stop + docker compose down ``` -2. 構築手順の 4 で起動した Azure Functions のターミナルに対して Ctrl+C キーを入力し、起動した Azure Functions を停止する。 -3. 構築手順の 3 で起動した Blob/Queue/Table ストレージの VSCode に対してコマンドパレッドを起動して`Azurite: Close`と検索してコマンドを実行し、Blob/Queue/Table ストレージをすべて停止する。 ## 完全初期化 diff --git a/cosmosdb/package.json b/cosmosdb/package.json index 511f639..19c1386 100644 --- a/cosmosdb/package.json +++ b/cosmosdb/package.json @@ -2,9 +2,7 @@ "name": "question-answer-translator-cosmosdb", "version": "1.0.0", "scripts": { - "import": "NODE_TLS_REJECT_UNAUTHORIZED=0 ts-node src/import.ts", - "start": "docker compose up", - "stop": "docker compose down" + "import": "NODE_TLS_REJECT_UNAUTHORIZED=0 ts-node src/import.ts" }, "dependencies": { "@azure/cosmos": "^3.17.3", diff --git a/docker-compose.yaml b/docker-compose.yaml index c4d1660..c8df030 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -15,3 +15,12 @@ services: environment: - AZURE_COSMOS_EMULATOR_PARTITION_COUNT=3 - AZURE_COSMOS_EMULATOR_ENABLE_DATA_PERSISTENCE=true + localstorage: + image: mcr.microsoft.com/azure-storage/azurite:latest + container_name: localstorage + ports: + - 10000:10000 + - 10001:10001 + - 10002:10002 + volumes: + - ./azurite:/data