Oracle Autonomous DatabaseでのAzure Web Appsの使用 (2021/07/09)
Oracle Autonomous DatabaseでのAzure Web Appsの使用 (2021/07/09)
https://medium.com/oracledevs/using-azure-web-apps-with-oracle-autonomous-database-1d7002bdd20e
投稿者:Alex Keh
数年前に、.NET FrameworkとマネージドODP.NETを使って、Azure Web AppsをOracle Autonomous Database(ADB)に接続する方法を紹介しました。その時以来、.NET(Core)とODP.NET Coreは、.NET FrameworkとマネージドODP.NETを凌駕して、ますます人気の高い開発ツールとなりました。実際、NuGet Gallery ODP.NET Core全体のダウンロード数は、マネージドODP.NETが数年先行しているにもかかわらず、最近ではマネージドODP.NETのダウンロード数を上回っている。この結果は、.NET Frameworkがメンテナンスモードに入っており、すべての新しい技術革新が.NET(Core)で行われているため、必然的に生じたものだと思います。
開発者が.NET (Core)に移行していることを受けて、私は、Oracle Autonomous Databaseに接続する.NET 5およびODP.NET CoreアプリをAzureに展開する方法を示す新しいビデオチュートリアルを作成しました。
Azure ASP.NET Core 5 and ODP.NET Core 21c and Oracle Autonomous Database チュートリアル
基本的な設定手順は、2年前に書かれた古いチュートリアルとよく似ています。最も大きな違いであり、特に簡単になったのは、Oracle Developer Tools for Visual Studioを使ったOracle ADBの管理です。これらのツールには、Autonomous Database管理タスクを実行するためのOracle Cloud Infrastructureノードがあります。
Visual StudioでADBインスタンスを表示するOracle Cloud Infrastructureノード
「Data Connections」ノードでは、オンプレミスのデータベース管理と同様に、すべてのADBスキーマ・オブジェクトをVisual Studioで管理できます。
Visual StudioでのADBデータ接続
もっと詳しく知りたい方は、オラクルの同僚であるChristian Shay氏が、Oracle Autonomous DatabaseとVisual Studioの統合についてブログで紹介していますので、そちらをご覧ください。
では、本題に戻りましょう。
いくつかの簡単な手順で、ADBに接続する独自のAzure Webアプリを作成することができます。ODP.NET CoreとOracle ADBはどちらも無料で利用できます。ADBインスタンスを作成したら、Visual Studioを使用して、以下の手順でASP.NET Coreアプリを展開します。
- 新しい空のASP.NET Coreアプリプロジェクトを作成
- ODP.NET CoreをNuGet Galleryから追加
- Startup.csの内容を、Oracle .NET GitHubサイトのサンプルコードで置き換え
- アプリの名前空間、ユーザーパスワード、ネットサービス名、TNS管理ディレクトリ、ウォレットディレクトリに値を入力します。これらのディレクトリは、ウェブアプリのADBへの接続性を最初にテストするために、ローカルマシン上にある必要があります。ADBインスタンスの標準ADMINアカウントを使用していない場合は、ユーザーIDを変更します。
- Visual Studio内でWebアプリを実行。このステップでは、アプリとADBが正しく設定されているかどうかを確認します。
- TnsAdmin(tnsnames.oraおよびsqlnet.ora用)およびWalletLocation(cwallet.sso用)ディレクトリの値を、これらのファイルがアップロードされるAzure Webアプリのディレクトリ(例:D:homesite\wwwroot\<TNS admin and wallet subdirectories>)に変更
- アプリをAzure Webアプリサービスにデプロイします。Azure Basic以上の価格帯を選択してください。SharedレベルとFreeレベルでは、このチュートリアルで使用しているファイルベースのウォレットは使用できません。
- tnsnames.ora、sqlnet.ora、およびウォレットファイルは、デフォルトではプロジェクト全体の一部としてAzureにデプロイされません。これらのファイルを手動でデプロイするか、.NETプロジェクトファイル(.csprojファイルなど)を変更して、他のプロジェクトファイルと一緒にデプロイすることができます。例えば、プロジェクトがローカルにこれらのOracleファイルを保存する場所として「DB」というディレクトリがある場合、以下のように.NETプロジェクトファイルを追加します。
<ItemGroup>
<None Include="DB\**" CopyToPublishDirectory="Always">
</ItemGroup> - デプロイ後、Azureポータルにアクセスし、作成したばかりのWebアプリを管理します。Configuration」をクリックします。次に、「新しいアプリケーション設定」をクリックします。WEBSITE_LOAD_USER_PROFILE」設定の値を「1」にして追加します。OK」をクリックし、「保存」をクリックすると、新しい設定が適用されます。この手順により、Webサーバーがファイルベースのウォレットを使用できるようになります。
- Azure が Web サーバーを再起動したら、「参照」リンクをクリックします。
これで、Azure WebアプリがADBに接続し、販売履歴(SH)スキーマデータを取得します。SHスキーマは、すべての共有ADBインスタンスが、接続しているユーザーから読み取り専用で利用できます。専用ADBを使用している場合は、そのインスタンス上のテーブルに対する独自のクエリを供給する必要があります。このアプリはODP.NET Core 21cとASP.NET Core 5を使用してテストされましたが、古いバージョンと新しいバージョンのODP.NETおよび.NET(Core)の両方で動作することが期待されます。
コメント
コメントを投稿