WSGI アプリケーションの作成
ここでは、PEP-3333Opens in a new tab 標準に従って InterSystems IRIS® データベースを使用する WSGI アプリケーションを作成する方法について説明します。
WSGI のサポートは、2024.1 での試験的機能です。
概要
InterSystems IRIS を使用する WSGI アプリケーションを作成するには、このページの説明に従って、InterSystems IRIS が実行されているサーバ上に WSGI フレームワークをインストールし、呼び出し可能なアプリケーションを作成し、InterSystems IRIS Web アプリケーションを構成するだけです。
呼び出し可能なアプリケーションの要件
呼び出し可能なアプリケーションを定義する際は、以下の要件に留意してください。
-
WSGI フレームワークによって提供されている指示に従います。
-
コードに必要な Python モジュールをインポートします。
-
プログラム・ファイルを、InterSystems IRIS インストール・ディレクトリの専用サブディレクトリ内に配置します。これまでの経緯から、多くの既存の Web アプリケーションは <install-dir>/csp/appname 形式の名前を持つディレクトリにあります。appname はアプリケーションの短い名前です。この規則により、Web アプリケーション・ファイルはインストール・ディレクトリの他のサブディレクトリと区別されます。
何を選んだとしても、Web アプリケーションを定義する際はこのディレクトリ名を使用することになります。
-
アプリケーション・ページ内では、絶対リンクではなく相対リンクを使用します。
Web アプリケーションのデータベースとして、InterSystems IRIS を使用することをお勧めします。
Web アプリケーションの構成
InterSystems IRIS Web アプリケーションはコードへのアクセスを制御し、InterSystems IRIS サーバとの通信を可能にします。この Web アプリケーションは管理ポータルで、またはプログラムによって構成できます。Web アプリケーションの構成の基本情報は、"アプリケーションの作成および編集" を参照してください。重要な設定は、[一般] タブにあります。具体的には、以下のような設定があります。
-
[名前] は一意である必要があります。規則として、プログラム・ファイル含むディレクトリと一致する部分的なディレクトリ名を使用します (例 : /csp/appname)。
この名前により、Web サーバと Web ゲートウェイがファイルを検索する既定のディレクトリが決まります (InterSystems IRIS のインストール・ディレクトリを基準とする)。
-
[ネームスペース] の選択では、既定で組み込み Python プロセスが実行される InterSystems IRIS ネームスペースを選択します。
-
[有効] の選択では、[WSGI] を選択します。
-
[アプリケーション名] には、呼び出し可能なアプリケーションを含むファイルの名前を指定します。
-
呼び出し可能なアプリケーションに既定の名前 (application) がない場合は、その名前を [呼び出し可能名] に入力します。
-
[WSGI アプリケーション・ディレクトリ] には、呼び出し可能なアプリケーションを含むディレクトリを指定します。
-
[許可された認証方法] には、このシステムで認証なしアクセスが許可されている場合 ([認証/ウェブセッションオプション] ページ ([システム管理]→[セキュリティ]→[システム・セキュリティ]→[認証/ウェブセッションオプション]) で指定) を除き、[認証なし] を使用しないでください。
このシステムで認証なしアクセスが許可されていないが、アプリケーションが認証なしアクセスを使用するように構成されている場合、アプリケーションにアクセスしようとすると 403 エラーが表示されます。
-
静的ファイルを提供する方法を決定して、[CSP ファイルの設定] セクションの [静的ファイルの提供] を確認します。
-
InterSystems IRIS で静的ファイルを提供する場合は、ファイルを <application-directory>/static に置き、[静的ファイルの提供] を [常に] に指定します。
-
Web サーバで静的ファイルを提供する場合は、[静的ファイルの提供] を [いいえ] に指定します (プロダクション Web アプリケーションには、こちらをお勧めします)。
-
[セッションの設定] オプションと [ウェブ設定] オプション ([再帰]、[自動コンパイル]、[CSP名ロック]) は無視します。
トラブルシューティング
以下に、InterSystems IRIS 上の WSGI アプリケーションで問題が発生した場合のガイダンスを簡単に示します。
-
InterSystems IRIS が WSGI アプリケーションを見つけられない場合は、Web アプリケーションの構成を再確認してください。Web アプリケーションが正しい場合は、組み込み Python で Python モジュールをインポートして、依存関係の問題があるかどうかを確認します。<install-dir>/mgr ディレクトリの messages.log ファイルと WSGI.log ファイルを確認することもできます。これらのログは、詳細が記載されている可能性があります。
-
Python アプリケーションを変更しても効果がない場合、Python モジュールのキャッシュに問題がある可能性があります。変更を確実に反映させるには、InterSystems IRIS インスタンスを再起動します。再起動できない場合は、フレームワークに付属の開発サーバを一時的に使用して、アプリケーションでインクリメンタル開発を行います。
-
データベース・アクセスが機能しない場合は、InterSystems IRIS をデータベースとして使用することをお勧めします。他のデータベースを使用する場合は、すべてのユーザにデータベース・ファイルに対する読み取り/書き込み権限を付与します。
-
HTML リンクが機能しない場合は、リンクが絶対リンクではなく相対リンクであることを確認します。IRIS は WSGI アプリケーションのプロキシとして機能するため、Web アプリケーション内の別のエンドポイントへのリンクには相対リンクを指定する必要があります。
-
403 (forbidden) エラーが表示される場合、通常以上のセキュリティの IRIS のインスタンスがインストールされていると、認証なしオプションは既定ではサポートされないことに注意してください。Web アプリケーションを構成する際は、必ず別の認証オプションを選択してください。
-
静的ファイルが提供されない場合は、上記の Web アプリケーションの [CSP ファイルの設定] の [静的ファイルの提供] オプションに関するコメントを確認してください。