Oracle Application Express (APEX) 22.1では、Oracle Cloud Infrastructure(OCI)のMySQL Database Service(MDS)をベースにしたアプリケーションを直接構築するために使用できるな機能がリリースされました。Autonomous DatabaseのOracle APEXを使ってOCI MDSの表データを表示してみました。Oracle APEXのORDSの「REST対応SQLサービス」を活用することで実現できます。
作業ステップ
- (事前準備)
- (Oracle APEX環境としての)Autonomous Databaseの作成
- MySQL Database Service(MDS)の作成
- パスワードシークレットの作成
- OCIデータベース・ツールでMDSへの接続の作成
- プライベート・エンドポイント
- 接続
- Oracle APEXのアプリケーション作成
事前準備
(Oracle APEX環境としての)Autonomous Databaseの作成
OCIチュートリアル:101: ADBインスタンスを作成してみよう を参考にAutonomous Databaseを作成します。
Oracle APEXの利用が目的なのでワークロード・タイプ「APEX」として少ないコストで構成することもできます。
MySQL Database Service(MDS)の作成
OCIチュートリアル:その9 - クラウドでMySQL Databaseを使う を参考にMySQL Database Serviceインスタンスを作成します。
パスワードシークレットの作成
MySQLのデータベースユーザのパスワードを格納するパスワードシークレットをOCI VaultのOCIシークレットとして作成します。
[OCI] OCIシークレットを使ってOracle FunctionsからAutonomous DBに接続してみた。 の前半部分が参考になります。
OCIデータベース・ツールでMDSへの接続の作成
プライベート・エンドポイントの作成
-
プライベート・エンドポイントの名前を入力
接続の作成
-
接続詳細 で以下の入力
Oracle APEXのアプリケーション作成
Oracle APEX でWeb資格認証の作成
資格認証情報の収集
表示されたAPIキーの追加画面で「APIキー・ペアの生成」新規にキーペアを生成し、「秘密キーのダウンロード」ボタンをクリックし、秘密キーファイルを保存(既存のpem フォーマットの秘密鍵・公開鍵のキーペアの使用も可能)
OCIユーザの詳細画面で「構成ファイルの表示」をクリックし以下の情報を準備
Web資格証明の作成
Oracle APEXのワークスペースにログイン
(OCIチュートリアル:105: ADBの付属ツールで簡易アプリを作成しよう(APEX) を参考)
-
Web資格証明の名前を入力し、認証タイプを「Oracle Cloud Infrastructure(OCI)」を選択し以下を入力
- 「認証タイプ」:Oracle Cloud Infrastruture(OCI)
- 「OCIユーザーID」:OCIユーザのOCID
- 「OCI秘密キー」:APIキー・ペアの生成で生成した秘密キーファイルの中身
- 「OCIテナンシID」:テナンシのOCID
- 「OCI公開キー・フィンガープリント」:fingerprint
REST対応SQLサービスの作成
ワークスペース・ユーティリティから「REST対応SQLサービス」をクリック
REST対応SQLサービスの名前を入力
エンドポイントURLには データベース・ツールで作成した接続のOCIDを以下のように指定します。
https://sql.dbtools.<region>.oci.oraclecloud.com/20201005/ords/<データベース・ツールで作成したMDSへの接続のOCID>
例 東京リージョンの場合
https://sql.dbtools.ap-tokyo-1.oci.oraclecloud.com/20201005/ords/ocid1.databasetoolsconnection.oc1.nrt.XXXXXXXX
作成後、自動でREST対応SQLサービスのテストが実行され、「成功」となることを確認
Oracle APEXアプリケーションの作成
MySQL Database Service上の表を表示するAPEXアプリケーションとして対話モード・レポートを作成します。
-
対話モード・レポートの作成
MDS(MySQL Database Service)のデータをOracle APEXのアプリケーションで表示されていることを確認
おわりに
Autonomous DatabaseのOracle APEX 22.1を使ってOCI MySQL Database Serviceのデータを表示することができました。