プリザンターをAzure AppServiceにサーバレス構成でインストールする
## 概要
Microsoft Azure の AppService と SQL Database を利用しサーバレス構成でプリザンターの動作環境を構築するための手順を示したものです。
| 対象 | 環境・バージョン |
| ------------------ | :--------------------------- |
| Web | Microsoft Azure AppService |
| DB | Microsoft Azure SQL Database |
| ランタイムスタック | .NET8 |
## 注意事項
ver1.4.6以降でのインストール時に、CodeDefinerに引数を指定しないで実行した場合、言語:英語、タイムゾーン:UTCでセットアップされますので、必要に応じて言語とタイムゾーンをご指定ください。
## 前提条件
1. Azure Portal へのログインが可能であること
1. Microsoft Azure App Service(Windows/.NET8)が 1 インスタンス準備できている
1. Microsoft Azure SQL Database が 1 インスタンス準備できている
1. Microsoft Azure SQL Database の接続文字列が準備できている
1. Microsoft Azure SQL Database のファイアウォール設定で App Service 及び PC からの接続が許可されている
## 手順
構築手順は以下の通りです。
1. 事前準備
1. .NETの設定
1. プリザンターのダウンロードおよびパラメータ設定
1. プリザンターの配置
1. CodeDefinerの実行
1. プリザンターの起動確認
## 1. .NET の設定
1. [Azure Portal](https://portal.azure.com/)に接続します。
1. App Service を開きます。
![image](https://pleasanter.org/binaries/90ff8944d431483da62410cdf5f90100)
1. 作成済みの App Service インスタンスを選択します。
1. 「構成」メニューの「全般設定」を開き、下図の通り設定します。
![image](https://pleasanter.org/binaries/3522234ddfd34a649998544be0d76b9e)
|項目|設定内容|
|:--|:--|
|.NETバージョン|.NET 8 (LTS)|
|プラットフォーム|64bit|
|FTPの状態|無効|
|常時接続|オン|
## 2. プリザンターのダウンロードおよびパラメータ設定
1. [ダウンロードセンター](https://pleasanter.org/dlcenter)から、プリザンター最新バージョンをダウンロードします。
1. ダウンロードしたzipファイルを解凍します。
1. パラメータファイルを設定します。
1. データベースへの接続情報を設定します。
「pleasanter\Implem.Pleasanter\App_Data\Parameters\Rds.json」を開き、パラメータを下記の通りに設定し、保存します。
|パラメータ名|値|説明|
|:--|:--|:--|
|Dbms|SQLServer|リレーショナル・データベースに Microsoft Azure SQL Database を使用。|
|Provider|Azure|リレーショナル・データベースに Microsoft Azure SQL Database を使用。|
|SaConnectionString|**\*\*\*\***|Microsoft Azure SQL Database の接続文字列。|
|OwnerConnectionString|**\*\*\*\***|Microsoft Azure SQL Database の接続文字列。|
|UserConnectionString|**\*\*\*\***|Microsoft Azure SQL Database の接続文字列。|
|SqlCommandTimeOut|0|SQL コマンドタイムアウト時間を無期限にする。|
|MinimumTime|3|データベースが識別可能な最小時間単位をミリ秒で指定。本パラメータは変更不可。|
|DeadlockRetryCount|4|デッドロック発生時の最大再試行回数。|
|DeadlockRetryInterval|1000|デッドロック発生時に再試行を行うまでの間隔。|
|DisableIndexChangeDetection|true|バージョンアップ時にデータベースのインデックスの差異を検出しない。|
1. サービス情報を設定してください。
ご利用のバージョンで設定内容が異なります。
「pleasanter\Implem.Pleasanter\App_Data\Parameters\Service.json」を開き、パラメータを下記の通りに設定し、保存します。
### ver.1.4.5まで
|パラメータ名|値|説明|
|:--|:--|:--|
|Name|(データベース名)|Azure で作成したデータベース名を設定|
|TimeZoneDefault|Tokyo Standard Time|既定のタイムゾーンをWindowsで有効な名前で指定(※1)|
(※1) タイムゾーンは以下マニュアルページを参照ください。
[FAQ:プリザンターでサポートしている言語とタイムゾーンのパラメータの設定値を知りたい](https://pleasanter.org/manual/faq-supported-language)
### ver.1.4.6以降
|パラメータ名|値|説明|
|:--|:--|:--|
|Name|(データベース名)|Azure で作成したデータベース名を設定|
## 3. プリザンターの配置
1. App Service にてインスタンスを停止します。
1. [Kudu](https://docs.microsoft.com/ja-jp/azure/app-service/resources-kudu#access-kudu-for-your-app) にアクセスします。
1. App Service の左側のメニューの"開発ツール"から「高度なツール」をクリック
![image](https://pleasanter.org/binaries/9e9a929cb8174c9f81ac9a25479890c4)
2. [移動](/ja/manual/table-record-move)のリンクをクリック
![image](https://pleasanter.org/binaries/8639e642c6ed4b07b1b86538b8394a9f)
3. Kudu のヘッダメニューから「Debug console」>「CMD」をクリック
![image](https://pleasanter.org/binaries/8d9aeb33b8b94c62a787d8adca8360c8)
4. ディレクトリ一覧から「site」をクリックします。選択後、プロンプトが "C:\home\site" になったことを確認します。(ご利用ユーザによってはD:\home\siteの場合もあります。その場合は適宜読み替えてください。)
![image](https://pleasanter.org/binaries/1082db49c78b49afbe9ce76636e83f8b)
1. 「2. プリザンターのダウンロードおよびパラメータ設定」で準備したプリザンターファイルをApp Serviceにアップロードします。
1. 「pleasanter」フォルダに移動します。
2. 「Implem.Pleasanter」フォルダを「wwwroot」にリネームします。
3. wwwroot フォルダを zip 形式で圧縮し「wwwroot.zip」とします。
4. 「Implem.CodeDefiner」フォルダを[CodeDefiner](/ja/manual/getting-started-pleasanter-windows)にリネームします。
5. CodeDefiner フォルダを zip 形式で圧縮し「CodeDefiner.zip」とします。
6. wwwroot.zip と CodeDefiner.zip を Kudu の Size をターゲットにドラッグアンドドロップし、展開されて格納されたことを確認します。
![image](https://pleasanter.org/binaries/6a380563ed384537bce6539c052e7624)
## 4. CodeDefiner の実行
1. Kudu のディレクトリ一覧から CodeDefiner を選択し、 プロンプトが C:\home\site\CodeDefiner となることを確認します。
2. 以下のコマンドを実行して、CodeDefinerを実行します。
ご利用バージョンに応じて実行するコマンドが異なります。
### ver.1.4.5まで
```
dotnet Implem.CodeDefiner.dll _rds /p C:\home\site\wwwroot
```
### ver.1.4.6以降
※下記コマンドは初回インストール時にのみ実行します。
```
dotnet Implem.CodeDefiner.dll _rds /p C:\home\site\wwwroot /l "<言語>" /z "<タイムゾーン>"
```
|引数|値|説明|
|:--|:--|:--|
|/l|ja|Service.jsonのDefaultLanguageの値を書き換えます(※1)|
|/z|Tokyo Standard Time|Service.jsonのTimeZoneDefaultの値を書き換えます(※1)|
(※1) 言語、タイムゾーンは以下マニュアルページを参照ください。
[FAQ:プリザンターでサポートしている言語とタイムゾーンのパラメータの設定値を知りたい](https://pleasanter.org/manual/faq-supported-language)
日本語環境でご利用する場合は以下コマンドとなります。
```
dotnet Implem.CodeDefiner.dll _rds /p C:\home\site\wwwroot /l "ja" /z "Tokyo Standard Time"
```
## 5. プリザンターの起動確認
1. App Serviceにてインスタンスを起動します。
1. ブラウザでプリザンターのログイン画面を開き、「ログインID: Administrator」「初期パスワード: pleasanter」を入力し、「ログイン」ボタンをクリックします。
![image](https://pleasanter.org/binaries/5477647dc121413190827affdc7fa1ff)
1. ログイン後に「Administrator」ユーザーのパスワード変更を求められるので、任意のパスワードを入力し、「変更」ボタンをクリックします。
![image](https://pleasanter.org/binaries/d57262564d8e49568553a84b273d3797)