web-dev-qa-db-ja.com

SQLiteデータベースファイルをAzure App Serviceのどこに配置しますか?

Q1SQLiteを配置する適切な場所はどこだと思いますかAzure Web Appファイルシステムのデータベースファイル(database.sqlite)?例えば:

  1. D:\home\data\database.sqlite
  2. D:\home\site\database.sqlite
  3. D:\home\site\wwwroot\database.sqlite
  4. その他?

Q2:誤ってデータベースファイルにアクセスできないようにするため、および誤ってデータベースファイルにアクセスできないようにするために、他に考慮すべきことデプロイ時またはアプリのスケールアップ/ダウン時に上書きされますか? (WebアプリはローカルGitリポジトリからのデプロイメント用に構成されています)

Q3:公式のソースURLであるAzure App Serviceで使用されているファイルシステムの詳細はどこで確認できますか?例えば。単一のWebアプリ内の複数のVM間でどのように共有されるか、アプリが拡大/縮小されるときの動作、D:\home(永続的)とD:\local(非永続的)の違い。

SQLiteAzure Blob Storageでは機能しないことに注意してください。オプションではありません。別のストレージソリューションを提案しないでください。この質問は特にSQLiteについてです。

参考文献

14
Grief Coder

Webアプリでは、アプリはd:\home\site\wwwrootにデプロイされます。これは、ファイルを書き込むことができる領域です。例として、ghostデプロイメントはSQLiteデータベースをd:\home\site\wwwroot\content\data\ghost.db.に書き込みます(yourapp.scm.azurewebsites.netを使用してkuduコンソールを開くと、これを簡単に確認できます)。

kudu sqlite example

このファイル領域は、Webアプリインスタンス間で共有されます。 SMBファイル共有と同様ですが、Webアプリに固有です(Azureのファイルサービスとは異なります)。

アプリサービスを削除しない限り、wwwrootの下のコンテンツは永続的です。スケールアップ/スケールダウンは、使用可能なスペースの量に影響を与えます。 (downにスケーリングし、サイズが小さいと、すでに消費しているサイズよりもディスク容量が少なくなると、どうなるかわかりません)。

7
David Makogon

最適な場所は、site/wwwrootフォルダーのapp_dataフォルダーです。フォルダが存在しない場合は作成します。

1
Puneet Gupta