Skip to content

Commit

Permalink
Update operations to start azurite
Browse files Browse the repository at this point in the history
  • Loading branch information
infhyroyage committed Jan 14, 2024
1 parent ee30960 commit c4f2c6e
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 24 deletions.
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -117,5 +117,6 @@ cosmosdb/data
functions/local.settings.json

# Azurite
__blobstorage__/
__azurite_db_*.json
azurite/__blobstorage__
azurite/__queuestorage__
azurite/__azurite_db_*.json
34 changes: 15 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -206,17 +206,16 @@ 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 内のデータを参照・更新することができる。

### 構築手順

1. 以下をすべてインストールする。
- Azure Functions Core Tools
- Azurite
- Docker
- VSCode
2. 以下を記述したファイル`local.settings.json`を QuestionAnswerTranslator リポジトリの functions ディレクトリ配下に保存する。
Expand All @@ -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 ストレージをすべて停止する。

## 完全初期化

Expand Down
4 changes: 1 addition & 3 deletions cosmosdb/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
9 changes: 9 additions & 0 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit c4f2c6e

Please sign in to comment.